计算稀疏矩阵的最小特征向量,有它的逆

计算科学 线性代数 稀疏矩阵 特征值 矩阵分解
2021-11-28 20:58:10

我对解决特征值问题的大量文献感到有些困惑。我有一个稀疏(大)矩阵,我已经考虑了(通过 Cholesky 或 LDU)。我想计算与最小特征值相关的这个矩阵的几个特征向量。是否有任何方法:1)在计算时间方面有效 2)稳健 3)可以重新使用原始矩阵的分解?

谢谢 !

2个回答

在 inv(A) 上使用 Arnoldi 迭代,它应该快速收敛到 A 的最小特征对。ARPACK(及其反向通信接口)可能是快速充实工作代码的最简单途径。

编辑:澄清一下,您实际上并没有计算 inv(A),只要 ARPACK 要求您执行 matvec(例如,通过应用 L\D\U\x),您只需将 inv(A) 应用于向量 x .

一个相当直接的方法是使用逆幂μ=0.

该方法将收敛到 A 的最小幅值的特征值。您要注意的一件事是,如果最小的特征值在幅度上不是非常接近 0,或者您有几个具有相同幅度的值,所有这些都是最小值,您最终可能会出现缓慢的收敛或振荡。通常这些缺点可以通过改变来解决μ每隔几次迭代,但这将需要重构矩阵。如果它只是收敛缓慢,并且您不想重构矩阵,则可以对其进行更多迭代。如果有多个相同大小的特征值,你将不得不改变μ并至少重构一次,这可能值得也可能不值得。

幸运的是,即使使用您自己的实现也只需几行代码即可尝试,因此您可以尝试一下,看看它是如何收敛的,看看它是否适用于您的情况。