問題タブ [arpack]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - C++: ライブラリ、複数の定義を含む (ARPACK++)
現在 ARPACK++ などの他の C++ ライブラリを使用しようとしていますが、ARPACK++ のインクルード フォルダー内の複数の定義で問題が発生しました。
これは、必要ないくつかのライブラリを含む私のコンパイル行です。
そして、コンパイラは私にこのエラーを渡しています:
インクルード ヘッダー " arerrorh.h " が適切な内部でラップされているため、これは少し奇妙です。
リンクまたはコンパイルの部分で何か間違ったことをしている可能性がありますか? それは私が最も自信がない部分だからです。誰かが私がここで間違っていることを教えてくれたらうれしいです。
前もって感謝します!
python - scipy.sparse.linalg.eigs の反復回数
eigs/eigsh が収束するまでに何回反復したかを調べることは可能ですか?
c++ - ARPACK リバース通信行列ベクトル ルーチンの呼び出し
ARPACK が提供する fortran 関数を使用して非対称の実数値スパース行列の固有値を計算するドライバーを C++ で作成しようとしていますが、リバース コミュニケーション アプローチに少し問題があります。
一般的に、私は通常の固有値方程式を解こうとしています:
行列 A とのやり取りは、関数 'av' を介して ARPACK で行われます。
これは、位置「ipntr[0]」から始まる配列「workd」に保持されているベクトルを乗算し、その結果を位置「ipntr[1]」から始まる配列「workd」に挿入します。このアプローチの例は、http://www.caam.rice.edu/software/ARPACK/のマニュアルと ARPACK/EXAMPLES/SIMPLE/dnsimp.f コードにも記載されています。
私が知りたいのは、行列 A を実際にどのように使用するかということです。ルーチンに渡されない場合、提供されたベクトルでそのアクションを見つけるにはどうすればよいでしょうか?
コード例 dnsimp.f では、それらの行列 A は関数 'av' 内で計算され、'2 次元対流拡散演算子の標準中心差分離散化から導出' されます。しかし、これは問題固有のものだと思いますか? また、行列 A の導関数を関数にコード化する必要があることもあまり役に立ちません。マニュアルからもこれに関する多くの情報を見つけることができません。
これはユーザー定義関数であるため、「av」の定義を変更して行列 A をパラメーターとして含めることができるため、それほど問題ではないようです。ただし、潜在的な互換性の問題が発生した場合に備えて、それがどのように適切に行われるかを知りたい.
ありがとうございました!
python - ARPACK を使用して固有値の問題を解決しましたが、Matlab で一貫性のない結果が得られました
私は ARPACK を初めて使用します。次のようなスクリプトをダウンロードしました
非常に単純な固有値の問題を解決します (行列A
は対称ではありません。私は に設定A[0,8]
しました30
)。ARPACKの結果によると、3.6766133
(設定で)に最も近い3つの固有値は次のとおりです。sigma=3.6766133
次に、MATLAB に移動して、同じ固有値問題を解きます。結果は次のとおりです。
どうやら、2 番目のモードの3.642801014184622 + 0.497479798520641i
方が に近いようsigma=3.6766133
ですが、ARPACK はそれを選択しませんでした。
何が問題なのですか?これを理解するのを手伝ってもらえますか? どうもありがとう。
ubuntu-12.04 - Ubuntu 12.04 で ARPACK がコンパイルされない
それに応じて ARmake.inc ファイルを変更しました。プラットフォームをLINUXに変更。以下が問題です。
eigenvalue - Arpack で固有値を計算する
Arpack を使用して、複雑なシフトを伴う逆シフト法で問題 \lambda Mx = Ax の固有値を計算しています。次に、znaupd e zneupd を使用します。すべて問題ないようです。Arpack で計算された固有値と固有ベクトルを取り、それらを元の問題に入れる関数を書きました。残差のノルムは、ほぼゼロまたは非常に小さいと想定されています。とにかく、かなり高い 10^-3 の誤差が得られます。問題がどこから来るのか、何か考えがありますか?