我有一个稀疏对称矩阵 A(nxn)。Lanczos 方法将矩阵 A 转换为三对角和对称矩阵 T 以及矩阵 V 中的 Lanczos 向量。从那里我如何计算 k 个最小或最大特征值和相应的特征向量?
如何使用 Lanczos 方法计算特征值和特征向量
计算科学
matlab
本征系统
稀疏矩阵
特征值
2021-12-04 10:11:37
1个回答
对于特征值,只需取的最大或最小特征值. 它们是很好的近似值,前提是 Lanczos 的迭代次数与.
如果我们也想要特征向量,事情就有点棘手了。
最简单的方法是将每个特征向量相乘的 经过向左,在哪里正如你所说,是 Lanczos 向量的集合。但是这种方法对于许多类别的矩阵都不够用,因为舍入误差会导致 Lanczos 向量失去它们的正交性 (1)。
更好的方法是重新正交化 Lanczos 向量通过执行 Gram-Schmidt 步骤。
让成为-th Lanczos 向量被计算,并让是以前的 Lanczos 向量。我们变异以消除所有组件平行于任何:事实证明,我们需要重新正交化两次以保证 Lanczos 向量 (2) 的数值正交性。
参考
- J. Demmel,应用数值线性代数
- B. Parlett,对称特征值问题
其它你可能感兴趣的问题