对于矩阵A, 已知它的一个近似的特征值,
一般特征值问题在已知特征值后,可确定齐次线性方程
不断循环,最后再将结果归一化,可收敛至近似的特征向量。
A
运行结果:
V =-0.9923 0.1113 -0.0447 -0.02180.0574 0.1589 -0.0903 -0.96640.0725 0.3513 -0.9249 0.23720.0826 0.9159 0.3666 0.0970E =0.9546 0 0 00 4.2419 0 00 0 2.8804 00 0 0 1.9230Vec0 =0.9924-0.0581-0.0716-0.0811
可以注意到,即使是在随机取的初始向量的情况下,仅需两次迭代,即可得到比较准确的特征向量。(若已知近似的特征向量,仅需1次迭代即可获得高精度特征向量)。这说明,在已知近似的特征值后,可以以较高的效率求得特征向量。进而用
该方法收敛性证明见:http://homepage.divms.uiowa.edu/~atkinson/m171.dir/sec_9-6.pdf
注:1. 利用Gersgorin圆盘定理判定特征值的范围,若特征值范围较小,则可更快速地估计特征向量及更准确的特征值。
2. 对一些在线数据,新增加的数据对已有的数据的统计量(如协方差矩阵)影响较小,这时可用以上方法快速估计特征向量。效率比每次都做特征值分解高。
——补充———
补充计算了一个100维矩阵的特征值分解,发现matlab的eig函数效率还是比较高的,而在已知近似特征值的情况下,需要对每个特征向量做非齐次方程求解。相较之下效率与直接eig相差不大(或许是for循环速度慢)。
clc