用A和B作Hermitian求解广义A * V = B * V * D在Matlab中给出COMPLEX特征值

时间:2017-03-19 04:56:07

标签: matlab eigenvalue

在Matlab中,我有两个142 x 142 Hermitian复矩阵A和B,经过验证

isequal(A,A')
ans =
       1
isequal(B,B')
ans =
       1

A-A'=(all exact zeros)
B-B'=(all exact zeros)

我试图解决广义特征值问题A V = B V * D

[V,D] = eig(A, B);

我期待两件事:

  1. Real eigenvalues,V

  2. 特征向量是正交的。也就是说,V' B V是一个单位矩阵。

  3. 但是,我得到了COMPLEX特征值,V' B V到处都有非零值。此外,如果我使用qz算法,事情并没有改变。哪里可能出错?几个星期以来,我一直陷入这个瓶颈。任何帮助都非常感谢!

1 个答案:

答案 0 :(得分:0)

来自matlab文档:

  

[V,D] = eig(A,B)返回广义特征值的对角矩阵D和全矩阵V,其列是对应的右特征向量,因此A V = B V * D

使用以下命令获得更准确的结果:

 [V,D]=eig(A,B,'qz')

仔细阅读以下文件,了解eig功能无法返回准确结果的情况: Matlab Doc