我尝试使用ARPACK使用一些例子(here),但我甚至无法弄清楚如何输入我的矩阵。从这个question,似乎Python和Matlab中的实现是避免ARPACK复杂性的唯一解决方案。是否有一些(基于Fortran)的方法来做到这一点,还避免计算所有的特征值/特征向量?
答案 0 :(得分:1)
我写了一个包装器,它只需要设置矩阵A和特征值的数量(例如,如果你只需要第一个特征值,则nev = 1)。代码改编自可以找到的特定应用程序here。 我的类模块版本只需要设置矩阵A ,特征数量,特征值数量和哪个>应该采取强有力的措施(' LM' - 最大的数量'。
该代码可用作Gist here。
注意:ARPACK与LAPACK不同,因为它通常针对密集矩阵进行优化,而这是针对大型稀疏矩阵进行优化的。
ARPACK包旨在计算一些特征值并对应 大稀疏或结构矩阵的特征向量,使用 隐式重启Arnoldi方法(IRAM),或者在情况下 对称矩阵,Lanczos的相应变体 算法。它被许多流行的数字计算环境使用 如SciPy,Mathematica,GNU Octave和MATLAB提供此功能 功能。 (来源:维基百科)