2

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

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

4

1 回答 1

6

Why don't you try using scipy? It has a method in it's linear algebra module scipy.linalg.eig that can be used to "solve an ordinary or generalized eigenvalue problem."

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.
于 2012-04-07T21:31:40.170 回答