matlab求矩阵的本征值,matlab矩阵本征值问题

在我做的这个问题里,涉及到两个矩阵A,B,我要先分别求出A,B的本征值组[Ai], [Bj]和本征矢量组[ai],[bj],然后再去计算一个Wij,W是与前面计算的本征矢量和本征值相关的。

因此需要知道matlab是按什么样的规则来给本征值排序的,并且怎么去修改?

举例如下,

>> A=[322489372.17319584,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;

0,229120414.78213057,-93368957.39106528,0,0,0,0,0,0,0,0,0,0,0,0,0;

0,-93368957.39106528,170794414.7821306,0,0,0,0,0,0,0,0,0,0,0,0,0;

0,0,0,135751457.3910653,-118103427.24439159,0,0,0,0,0,0,0,0,0,0,0;

0,0,0,-118103427.2443916,77425457.39106531,-144646566.8113383,0,0,0,0,0,0,0,0,0,0;

0,0,0,0,-144646566.8113383,43081457.39106527,0,0,0,0,0,0,0,0,0,0;

0,0,0,0,0,0,42382500,-125267601.42882203,0,0,0,0,0,0,0,0;

0,0,0,0,0,0,-125267601.42882206,-15943500,-167023468.5717627,0,0,0,0,0,0,0;

0,0,0,0,0,0,0,-167023468.5717627,-50287500,-208779335.71470335,0,0,0,0,0,0;

0,0,0,0,0,0,0,0,-208779335.71470335,-6609750

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先需要构造紧束缚模型一维SSH的哈密顿矩阵。SSH模型的哈密顿矩阵可以表示为: $$H = \sum_{n=1}^{N/2}\begin{pmatrix}0 & t_1+t_2e^{ik}\\ t_1+t_2e^{-ik} & 0\end{pmatrix}$$ 其中,$N$为系统大小,$t_1$和$t_2$为耦合常数,$k$为动量。 在Matlab中,可以使用以下代码构造SSH模型的哈密顿矩阵: ``` N = 100; % 系统大小 t1 = 1; % 耦合常数1 t2 = 2; % 耦合常数2 k = linspace(-pi, pi, N); % 动量 H = zeros(2*N, 2*N); for n = 1:N/2 H(2*n-1:2*n, 2*n-1:2*n) = [0, t1+t2*exp(1i*k(n)); t1+t2*exp(-1i*k(n)), 0]; end ``` 接下来,可以使用Matlab中的`eig`函数计算SSH模型的本征值和本征向量: ``` [eigenvectors, eigenvalues] = eig(H); eigenvalues = diag(eigenvalues); ``` 其中,`eigenvectors`为SSH模型的本征向量矩阵,`eigenvalues`为SSH模型的本征值向量。可以通过`plot`函数将SSH模型的本征值可视化: ``` plot(real(eigenvalues), imag(eigenvalues), '.'); xlabel('Real Part'); ylabel('Imaginary Part'); title('Eigenvalues of SSH Model'); ``` 完整的Matlab代码如下: ``` N = 100; % 系统大小 t1 = 1; % 耦合常数1 t2 = 2; % 耦合常数2 k = linspace(-pi, pi, N); % 动量 H = zeros(2*N, 2*N); for n = 1:N/2 H(2*n-1:2*n, 2*n-1:2*n) = [0, t1+t2*exp(1i*k(n)); t1+t2*exp(-1i*k(n)), 0]; end [eigenvectors, eigenvalues] = eig(H); eigenvalues = diag(eigenvalues); plot(real(eigenvalues), imag(eigenvalues), '.'); xlabel('Real Part'); ylabel('Imaginary Part'); title('Eigenvalues of SSH Model'); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值