2017-08-07 101 views
0

いくつかの例(here)を使用してARPACKを使用しようとしましたが、私の行列を入力する方法も分かりませんでした。このquestionから、PythonとMatlabの実装はARPACKの複雑さを避ける唯一の解決策であるようです。これを行ういくつかの(Fortranベースの)方法がありますか、すべての固有値/固有ベクトルを計算することも避けますか?Fortranで最初の固有値と固有ベクトルを計算する方法

+0

*それはどうでしょうか?あなたの実際の問題は何ですか?あなたはARPACKをまったく使用できましたか?質問は何ですか?行列を正しく入力するには?それがうまくいかないときはどうしたのですか?どのように問題が出現しましたか?エラーメッセージ?間違った結果?あなたのコードはどのように見えましたか? –

+0

質問はすべてタイトルにあります。 ARPACKが私の問題に対して複雑すぎるとわかりました。私はFortranでそれを行う簡単な方法があるかどうかを知りたいと思います。 – Garini

+0

図書館の推薦の質問は話題にならないのですか?その代わりに、問題を説明し、「これを解決するためにこれまでに何が行われているか」* –

答えて

1

行列Aと固有値の数(例えば、最初の固有値のみが必要な場合はnev = 1)を設定する必要があるラッパーを記述しました。このコードは、hereという特定のアプリケーションに適合しています。 私のモジュールのような版のみ行列、機能の数、それらのが取られるべきである固有値と数(「LM」を設定する必要があります - 。最大の大きさ」を

コードを要旨hereとして入手可能である

NB:これは、大規模なスパース行列のために最適化されている間、それは、通常、密行列のために最適化されているため、ARPACKは、LAPACK異なる

ARPACKパッケージは 対称行列、ランチョス の対応する変異体の場合に 暗黙リスタートアーノルディ法(IRAM)またはを使用して、いくつかの固有値を計算し、大規模なスパースまたは構造化行列の 固有ベクトルに対応するように設計されていますアルゴリズム。これは、 の機能を提供するために、SciPy、Mathematica、GNU Octave、MATLABなど多くの一般的な数値計算環境 で使用されています。 (出典:ウィキペディア)

関連する問題