我已经尝试过 matlab eig 命令,它会产生真实的特征值但错误的特征向量。我还尝试了 rayleigh qotient 的直接迭代,它更好但没有给出所有特征向量我也尝试了给出特征值但不给出特征向量的 QR 方法是否有任何算法可以用来查找特征值和相应的特征向量?
如何数值计算 a 的所有特征向量n × nn×n复杂的三对角矩阵?
计算科学
本征系统
2021-12-26 22:04:23
2个回答
MATLAB 的 eig() 函数将特征向量归一化为具有单位范数;它不会标准化特征值。您可以检查向量的范数以验证它们的正确性。请记住,如果是的特征向量,那么也是如此。
您可以使用“关闭”规范化
[v,d] = eig(A,'nobalance')
但这也会禁用预处理,并可能给出不太准确的结果。
就它如何帮助我们帮助您而言,“错误的”特征向量是一个糟糕的问题陈述。他们只是错误的标志吗?由于标志是任意的,因此无法控制,但如果您不喜欢它们,您可以轻松翻转标志。
一个常见的约定是始终强制第一个非零元素的符号为正,但如果第一个元素非常接近零,这有时也会成为问题。多近才够近?
是否存在重复的特征值?如果是这样,则该组复制特征值的特征向量不是唯一的。您基本上可以任意旋转跨越该子空间的特征向量,它们仍然是同样有效的特征向量。
因此,除非您就 eig 产生“不正确”特征向量的原因给予我们更多帮助,否则我们最多只能猜测真正的问题。
其它你可能感兴趣的问题