2

一般化された固有値問題Ac=(lam).Bcを解こうとしています。ここで、AとBはnxn行列で、cはnx1ベクトルです。(lam)は固有値です。

私はPythonを使用しています。numpy.linalgのeig(dot(inv(B)、A))のようなものを試しましたが、反転が含まれているため、問題が非常に不安定であることがわかりました。だから私はMATLABでそれを行うことが可能であると読んでいますが、Pythonでそれを行うための関数やメソッドを見つけることができませんでした。任意のアイデアをいただければ幸いです。ありがとう...

4

1 に答える 1

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