Ax = b系を解くにはライブラリが必要です。ここで、Aは非対称スパース行列で、行ごとに8つのエントリがあります(かなり大きいかもしれません)。私はbiconjugateグラデーションを実装するライブラリはうまくいくはずだと思いますが、動作するものを見つけることができません(iml ++を試しましたが、iml ++/sparselib ++パッケージにいくつかのヘッダーがありません)。任意のヒント?スパース行列過決定線形方程式系C/C++ライブラリ
3
A
答えて
3
オーバー決定されたシステムを処理する標準的な方法があります。例えば、Wikipediaは次のように書いています。
一連の線形連立方程式は、Ax = yとして行列形式で書くことができます。変数より多くの方程式がある場合、システムは過決定と呼ばれ、(一般的に)解はありません。次に、システムは、(A TA)x = A Tに変更することができる。新しいシステムは、変数(行列A T Aは正方行列です)と同数の式を持ち、通常の方法で解くことができます。この解は、元のシステムの2つの辺の不一致の尺度であるユークリッドノルム|| Ax-y ||を最小化する、元の過決定システムの最小二乗解です。
したがって、任意の標準正方行列スパースソルバを使用できます。
個人的に私はティム・デイビスのCSparseの直接ソルバーを使用しています。ティムは多くの優れた直接スパースソルバを書いています。実際には、彼のUMFPACKが別の優れたオプションであり、MATLABなどで使用されています。これらのソルバーの両方がCインターフェースを提供することに注意してください。ネイティブのC++インターフェイスで何かを探しているなら、私は何も提供しません。
私は反復ソルバーでいくつかの経験があります。しかし、私が見ていた問題では、反復法は大きな行列では不安定になりました。私はダイレクトソルバーではるかに成功しました。もちろん、あなたの問題がスローアップするマトリックスのタイプに応じて、逆の経験をすることも可能です。
0
0
David Heffernanの答え:重要なことの一つを忘れないでください:行列Aは直線的に独立した列を持つことを確認しなければなりません。そうでなければ(A^TA)は単数形です。コース)。
関連する問題
- 1. 非線形方程式系の陽性解の指定
- 2. C++で線形ディオファントス方程式系を解く
- 3. 線形方程式を解く
- 4. Pythonの非線形方程式(ラグランジュ乗数推定あり)
- 5. 線形方程式と同様の代数JavaScriptの問題を解決する
- 6. Excelで方程式の系を解く
- 7. Javascript:方程式系を解く
- 8. スパース行列ライブラリが必要
- 9. Rubyのスパース行列ライブラリ
- 10. 方程式の系を並列に解く
- 11. 非線形微分方程式の解答
- 12. 非線形連立方程式の解法(Matlab、Python、Fortran)
- 13. matlabで疎線形方程式を解く
- 14. アルゴリズム - 1つの変数で線形方程式を解く
- 15. MATLABで複数の非線形方程式を解く
- 16. Pythonで動的な数の非線形方程式を解く
- 17. スパース行列を使用した2次形式の行列乗算のアルゴリズム
- 18. 放物線偏微分方程式
- 19. スパース行列のFortran 90/95ライブラリ?
- 20. 解決機能方程式は、プログラム
- 21. ブール方程式のxor系を解く方法は?
- 22. Pythonを使って一対の非線形方程式を解く方法は?
- 23. 曲線 'datetime'の形式で時系列にフィットしますか?ここ
- 24. どのように方程式のランダム非線形システムを解決するには?
- 25. 圧縮スパース列(CSC)または圧縮スパース行(CSR)スパース行列?
- 26. 実行上昇過程
- 27. matplotlibの(暗黙の)方程式の系をプロットする
- 28. 最小化制約を持つ方程式系(scipy.optimize.minimize)
- 29. 有限体上の方程式系を解く
- 30. 線形方程式に対する高速、近似解はありますか?
http://www.boost.org/doc/libs/1_47_0/libs/numeric/ublas/doc/index.htmを見ましたか? – andand
しかし、私はウブラスは単なるテンプレートライブラリだと思う、私はスパースシステムを解決するための反復メソッドを見ることができない、私は間違っていますか? – tuccio
スパース行列クラスがあります。私はそれについてのソルバーがあるかどうかについては詳細を見ていませんが、http://www.boost.org/doc/libs/1_47_0/libs/numeric/ublas/docを見てみてください。 /matrix_sparse.htmそこに何かがあるかどうかを確認してください。 – andand