如何计算Fortran中的第一个特征值和特征向量

时间:2017-08-07 18:56:20

标签: fortran eigenvalue eigenvector arpack

我尝试使用ARPACK使用一些例子(here),但我甚至无法弄清楚如何输入我的矩阵。从这个question,似乎Python和Matlab中的实现是避免ARPACK复杂性的唯一解决方案。是否有一些(基于Fortran)的方法来做到这一点,还避免计算所有的特征值/特征向量?

1 个答案:

答案 0 :(得分:1)

我写了一个包装器,它只需要设置矩阵A和特征值的数量(例如,如果你只需要第一个特征值,则nev = 1)。代码改编自可以找到的特定应用程序here。 我的类模块版本只需要设置矩阵A 特征数量特征值数量哪个应该采取强有力的措施(' LM' - 最大的数量'。

该代码可用作Gist here

注意:ARPACK与LAPACK不同,因为它通常针对密集矩阵进行优化,而这是针对大型稀疏矩阵进行优化的。

  

ARPACK包旨在计算一些特征值并对应   大稀疏或结构矩阵的特征向量,使用   隐式重启Arnoldi方法(IRAM),或者在情况下   对称矩阵,Lanczos的相应变体   算法。它被许多流行的数字计算环境使用   如SciPy,Mathematica,GNU Octave和MATLAB提供此功能   功能。 (来源:维基百科)