我正在尝试解决广义特征值问题 Ac = (lam).Bc 其中 A 和 B 是 nxn 矩阵,c 是 nx1 向量。(lam) 是特征值。
我正在使用python。我从 numpy.linalg 尝试了类似 eig(dot(inv(B),A)) 的东西,但结果证明它在我的问题中非常不稳定,因为它涉及反转。所以我一直在阅读可以在 MATLAB 中执行此操作,但我找不到任何函数或方法可以在 python 中执行此操作。任何想法将不胜感激。谢谢...
我正在尝试解决广义特征值问题 Ac = (lam).Bc 其中 A 和 B 是 nxn 矩阵,c 是 nx1 向量。(lam) 是特征值。
我正在使用python。我从 numpy.linalg 尝试了类似 eig(dot(inv(B),A)) 的东西,但结果证明它在我的问题中非常不稳定,因为它涉及反转。所以我一直在阅读可以在 MATLAB 中执行此操作,但我找不到任何函数或方法可以在 python 中执行此操作。任何想法将不胜感激。谢谢...
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.