2011-11-24 2 views
5

、私は多項式固有値問題を解決したいと思います:どのようにPythonで多項式の固有値を解決するには?私のPythonコードで

A0 + lambda*A1 + lambda^2*A2 + lambda^3*A3 + .... = 0 
Anは密行列で

、およびlambdaは一定です。 matlabでは、polyeig functionを使ってこの問題を解決することが可能です。 scipyには同等の機能はないようです。これまで私がそれを行うと考えることができる唯一の方法は、対応するコンパニオンマトリックスを形成することです。これは既存のscipyソルバに与えられる等価な線形固有値問題を生成するが、それははるかに大きく、かなり病気になる可能性があると私は信じている。

誰でもこの問題を解決できる既存のオープンソースまたは自由に利用できるライブラリを提案できますか?私は、f2pyまたはC/C++ライブラリを介してcython経由でリンクすることができるfortranライブラリにはとても満足しています。

編集:Pythonで非線形固有値問題を解くことに興味がある人は、この問題を解決するために私自身が書いたコードをhereで見つけることができます。非線形固有値問題(ラムダに非線形依存するという意味で)のより一般的な場合を扱うことに注意してください。この方法を理解するには、コードコメントに記載されている論文をお読みください。

答えて

2

This discussionは、多項式固有値問題を一般化固有値問題に変換する一般的な方法を指します。これは後でscipy's linear algebra関数を使用して解くことができます。お役に立てれば!

+0

これは既に私が知っているアプローチであり、何か良いものが見つからない場合はこれを使用します。それは非効率的で潜在的に悪い条件が付いているので、私はそれを最後の手段としています。とにかくありがとう。 – DaveP

+0

これは申し訳ありません。それは議論の1人の男が、それがmatlab関数の基礎であると述べたので、私はそれが効率的であると考えました。 – matehat

関連する問題