计算对应于最大幅度特征值的密集矩阵的特征向量的最有效方法是什么?
计算科学
线性代数
算法
本征系统
2021-12-19 05:14:41
2个回答
最快的方法可能取决于矩阵的频谱和正态性,但在所有情况下,Krylov 算法都应该严格优于幂迭代。GW Stewart 在Matrix Algorithms, Volume II: Eigensystems的第 4 章第 3 节中对这个问题进行了很好的讨论:
幂法基于以下观察:如果有一个占主导地位的特征对,然后在温和的限制下向量对主要特征向量产生越来越准确的近似值。然而,在每一步,幂方法只考虑单个向量,这相当于丢弃了先前生成的向量中包含的信息。事实证明,这些信息很有价值……”
他继续表明,因为对角矩阵与'第对角线值设置为(从),经过 25 次迭代后,Krylov 子空间捕获的主要特征向量比幂次迭代好 8 个数量级。
幂迭代是最简单的,但如上所述,如果矩阵非常非正态,它可能会非常缓慢地收敛。你会得到一个“驼峰”现象,在渐近行为开始之前,序列似乎会在多次迭代中发散。
由于您的矩阵是对称的,您可以考虑 RQI 迭代,在对称情况下会产生三次收敛:http ://en.wikipedia.org/wiki/Rayleigh_quotient_iteration 。
是什么让 Arnoldi 或 Lanczos 迭代非常好(至少在我看来,但我不研究数值线性代数)是它们非常通用。通常可以控制他们给你哪些特征值,以及你得到多少。在对称情况下尤其如此(如果您的矩阵是确定的,那就更好了)。对于对称问题,它们非常健壮。作为一个黑匣子,它们运行良好,但它们也非常容易接受新的问题信息,例如解决涉及矩阵的系统的能力。
其它你可能感兴趣的问题