小编典典

解决Numpy中的广义特征值问题

python

我正在寻找解决以下类型的问题: Aw = xBw其中x一个标量(特征值),w一个特征向量,A并且B是相等维数的对称方形numpy矩阵。d如果AB是,我应该能够找到x
/ w对d x d。我如何解决这个问题?我正在寻找Scipy文档,却没有找到想要的东西。


阅读 126

收藏
2020-12-20

共1个答案

小编典典

对于对称密集矩阵,您可以scipy.linalg.eigh()用来解决此广义特征值问题:

from scipy.linalg import eigh

eigvals, eigvecs = eigh(A, B, eigvals_only=False)

您会发现这eigvecs很复杂ndarray,所以也许您必须使用eigvecs.real

在同一个模块中eigvalsh(),对于您的情况,该模块可能会执行得更快,但不会返回特征向量。

2020-12-20