迭代地找到非对称复矩阵的左右特征向量

计算科学 Python 本征系统 正则 scipy
2021-12-05 20:29:58

我有一个复杂的非厄米矩阵,为此我需要在广义特征值问题中找到一些特征值和特征向量:A

Ax=λBx,

与实对称正定矩阵我目前使用的是 ARPACK 例程的 Python 包装器。Bscipy.sparse.linalg.eigs

我已经成功地找到了特征值和右特征向量,但是我还需要相应的左特征向量满足:

yA=λyB.

(根据我的符号,这些左特征向量不需要复共轭,但显然撤消复共轭很容易)。

据我所知,scipy 和 ARPACK 都没有为这个问题提供现成的解决方案,它们不能被轻易地修改以提供两组向量。我遇到的可能的解决方案是:

  1. 转置我的矩阵并再次调用. 这显然是低效的,我不确定返回的特征值是否保证具有相同的值并且具有相同的顺序,因此匹配左右特征向量可能不可靠。Aeigs

  2. 使用逆迭代,从数值食谱第 2 版第 11.7 节推断。解决

    (ATλB)y=b

    迭代为,从一些随机向量开始。这种方法的问题在于,在退化特征值的情况下,它可能找不到完整的特征向量,我希望在某些情况下会看到这种情况。xb

是否有更好的解决方案可用,或者可以修复我提出的解决方案以克服其(感知的)限制的方法?

0个回答
没有发现任何回复~