連立方程式用インライン・テンプレート関数
[詳解]
連立方程式用インライン・テンプレート関数
- 著者
- tadah_fussy
- 日付
- 2015/11/15 コメント追加
-
2017/04/09 連立方程式計算関数の引数変更
-
2019/03/27 コメントの見直し
-
2019/04/04 VerifyLinearEquationSystem, VerifyLinearEquationSystem_Multi の追加と若干の修正、コメントの見直し
-
2019/04/07 Matrix::clone の廃止に伴う変更
-
2019/04/16 error_library.h の見直しに伴う変更。LinearEquationSystem の廃止。
-
2019/04/18 エラーメッセージの定数化。ConjugateGradientMethod の計算最適化と収束条件の見直し。
-
2019/04/24 解行列を解く・チェックする関数のエラー処理の修正
-
2019/04/27 全ての解法について関数オブジェクトの形式に変更
-
2021/03/14 名前空間の変更
-
2021/04/02 文字コードを UTF-8 に変更
◆ Inverse()
template<class MATRIX , class Solver >
void tadah_fussy::matrix_lib::Inverse |
( |
const MATRIX & |
mat, |
|
|
SquareMatrix< typename MATRIX::value_type > * |
inv, |
|
|
Solver |
solver |
|
) |
| |
逆行列を求める
内部で連立方程式を解いて逆行列を求めている。連立方程式の解法は選択が可能。 例えば、GaussianElimination を利用する場合は次のように記述する。
math_lib::matrix::Inverse( mat, &inv, GaussianElimination() );
- inv が未定義の場合、assert を呼び出す
- 連立方程式の計算処理の過程で例外 std::runtime_error が投げられる場合がある
- 覚え書き
- mat が正則行列でない場合、理論上は処理途中で 例外 std::runtime_error が投げられる。 しかし、誤差により処理が継続される場合もあり、正しい結果が得られない可能性があることに注意。
- 引数
-
mat | 対象の行列 |
inv | 求めた逆行列を書き込む正方行列へのポインタ |
solver | 連立方程式計算用ソルバ |
- 戻り値
- なし