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. javaの線形方程式
- 4. matlabで未決定の方程式系を解く
- 5. MATLAB、equationsToMatrixは非線形方程式
- 6. sympy解く線形方程式XOR、NOT
- 7. 線形方程式を解く
- 8. マップで線形方程式を解く
- 9. シンボリック線形方程式の均質な劣決定システムを解く
- 10. matlabで線形方程式の系を解くことを試みている
- 11. Pythonの非線形方程式(ラグランジュ乗数推定あり)
- 12. 方程式系のnetlogoの行列拡張
- 13. sympy方程式のシステムを行列形式にする方法
- 14. 行列式を線方程式で反復する
- 15. 解決均一系方程式Ax = 0使用してnumpyの
- 16. 線形SVM回帰直線の方程式を得る
- 17. 線形方程式と同様の代数JavaScriptの問題を解決する
- 18. Juliaの線形方程式/不等式をプロットする
- 19. スパース行列ライブラリが必要
- 20. Rubyのスパース行列ライブラリ
- 21. Excelで方程式の系を解く
- 22. Javascript:方程式系を解く
- 23. 線分が通過する八角形を決定する
- 24. アルゴリズム - 1つの変数で線形方程式を解く
- 25. wolfram mathematicaの微分方程式の非線形システムを解く
- 26. Rの和を含む非線形方程式R
- 27. 非線形連立方程式の解法(Matlab、Python、Fortran)
- 28. Pythonで制約付き線形方程式を解く
- 29. 非線形方程式を解くためのlevenberg-marquardt法
- 30. matlabで疎線形方程式を解く
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