寻找大矩阵的 k-最小特征值及其对应的特征向量
Finding k-smallest eigen values and its corresponding eigen vector for large matrix
对于大小为 300,000*300,000 的对称稀疏方阵,在任何语言或程序包中,在一个小时左右的时间内找到 10 个最小特征值及其对应特征向量的最佳方法是什么。
在 Hermitian 矩阵上运行的 Lanczos 算法是一种找到最小和最大特征值以及相应特征向量的好方法。请注意,根据定义,实对称矩阵是 Hermitian 矩阵。 Lanczos 需要 O(N)
存储空间和大约 O(N)
时间来评估极端 eigenvalues/eigenvectors。这与需要 O(N^2)
存储空间和 O(N^3)
运行 时间的蛮力对角化形成对比。出于这个原因,Lanczos 算法使得以前在计算上不可行的许多问题的近似解成为可能。
Here is a useful link 到加州大学戴维斯分校网站,其中列出了 Lanczos 在许多 languages/packages 中的实现,包括 FORTRAN、C/C++ 和 MATLAB。
对于大小为 300,000*300,000 的对称稀疏方阵,在任何语言或程序包中,在一个小时左右的时间内找到 10 个最小特征值及其对应特征向量的最佳方法是什么。
在 Hermitian 矩阵上运行的 Lanczos 算法是一种找到最小和最大特征值以及相应特征向量的好方法。请注意,根据定义,实对称矩阵是 Hermitian 矩阵。 Lanczos 需要 O(N)
存储空间和大约 O(N)
时间来评估极端 eigenvalues/eigenvectors。这与需要 O(N^2)
存储空间和 O(N^3)
运行 时间的蛮力对角化形成对比。出于这个原因,Lanczos 算法使得以前在计算上不可行的许多问题的近似解成为可能。
Here is a useful link 到加州大学戴维斯分校网站,其中列出了 Lanczos 在许多 languages/packages 中的实现,包括 FORTRAN、C/C++ 和 MATLAB。