Python中的广义特征值

时间:2012-04-07 20:28:50

标签: python eigenvalue

我试图解决广义特征值问题A.c =(lam).B.c其中A和B是nxn矩阵,c是nx1向量。 (lam)是特征值。

我正在使用python。我从numpy.linalg尝试了类似eig(dot(inv(B),A))的东西,但事实证明它在我的问题中非常不稳定,因为它涉及到反转。所以我一直在阅读它可以在MATLAB中完成,但我找不到任何在python中执行它的函数或方法。任何想法将不胜感激。感谢...

1 个答案:

答案 0 :(得分:6)

为什么不尝试使用scipy?它在线性代数模块scipy.linalg.eig中有一个方法,可用于“解决普通或广义特征值问题。”

scipy.linalg.eig(a, b=None, left=False, right=True, overwrite_a=False, overwrite_b=False)[source]

    Solve an ordinary or generalized eigenvalue problem of a square matrix.

    Find eigenvalues w and right or left eigenvectors of a general matrix:

    a   vr[:,i] = w[i]        b   vr[:,i]
    a.H vl[:,i] = w[i].conj() b.H vl[:,i]

    where .H is the Hermitean conjugation.