具有实特征系统的非对称矩阵的更快特征向量例程?

计算科学 特征值 拉帕克
2021-12-12 17:37:32

我有带有实值特征系统的非对称实值矩阵。如何有效地计算特征向量?

使用scipy.linalg.eig(which calls dgeev) 比 (=> ) 慢 3-4 倍,比scipy.linalg.eigh(=> )dsyevd慢 2倍,但 SVD 和 Hermitian 特征值分解在这里都不合适。我猜想支持复杂值存储的需要是造成额外开销的原因。对于具有实值特征值分解的矩阵,是否有更快的例程?scipy.linalg.svdgesdd

1个回答

诀窍是试图找出为什么该矩阵首先具有真正的特征值。通常是因为一组合适的共轭把它变成一个对称矩阵,然后你可以减少到一个对称计算。

乘除以可以改写 所以你的计算相当于求特征值 of然后计算显然的特征值等于的特征值。如果是 Cholesky 分解,则它们等于的特征值,这是对称的。答对了。(AC)1

D1=C1BAC(C1BAC+I)1,
μiM=C1BACλi=μiμi+1MBAA=LLTLTBL

对于特征向量,相同的计算表明如果的特征向量,则的特征向量,因此也是的特征向量。vLTBL(LTC)1vMD1

编辑:哎呀,最后一部分确实需要倒数。