对于大小为300,000 * 300,000的对称稀疏方阵,最好的方法是在一个小时左右的时间内以任何语言或程序包找到10个最小的特征值及其对应的特征向量。
答案 0 :(得分:1)
在Hermitian矩阵上运行的Lanczos算法是找到最低和最大特征值以及相应特征向量的一种好方法。注意,根据定义,实对称矩阵是埃尔米特矩阵。 Lanczos需要O(N)
的存储空间,并且还需要大约O(N)
的时间来评估极值特征值/特征向量。这与蛮力对角化形成对比,蛮力对角化需要O(N^2)
存储和O(N^3)
运行时间。因此,Lanczos算法为许多以前在计算上不可行的问题提供了近似解决方案。
Here is a useful link到UC Davis网站,其中列出了Lanczos以多种语言/程序包的实现,包括FORTRAN,C / C ++和MATLAB。