用于近似大对称矩阵的最高3个特征值和特征向量的快速方法

Pau*_*ger 6 c++ python algorithm matrix eigenvalue

在我的例子中,我正在编写代码来计算非常大的矩阵的经典多维缩放(缩写为MDS). nnn = 500,000

在MDS一步,我需要计算创3个特征值及其对应的特征向量n通过n矩阵.该矩阵称为B矩阵.我只需要这三个特征向量和特征值.计算大矩阵的特征向量和特征值的常用方法需要很长时间,而且我不需要非常准确的答案,因此我正在寻找特征向量和特征值的估计.

一些参数:

  1. B矩阵是对称的,真实的,并且相当密集
  2. B理论上的特征值分解应该总是产生实数.
  3. 我不需要完全精确的估计,只需要快速估算.我需要它在几个小时内完成.
  4. 我用python和C++编写

我的问题:是否有快速估算这种大B矩阵的三个特征向量和特征值的方法?

我的进展:我找到了一种近似矩阵最高特征值的方法,但我不知道是否可以将其推广到最高的三个.我也发现这篇论文写于1996年,但它非常技术性,对我来说很难阅读.

Han*_*son 8

G.Golub和CF Van Loan矩阵计算第9章第2节说明Lanczos算法是一个选择(除了矩阵理想地应该是稀疏的 - 它明显适用于非稀疏矩阵)

https://en.wikipedia.org/wiki/Lanczos_algorithm