/* -*- MaTX -*- * * 【名前】 * inv() - 逆数,逆行列 * * 【形式】 * y = inv(x) * (Integer|Real|Complex) y; * (Integer|Real|Complex) x; * * y = inv(x) * (Rational|Rational) y; * (Polynomial|Rational) x; * * Y = inv(X) * Array Y; * Array X; * * Y = inv(X) * Matrix Y; * Matrix X; * * Y = inv(X,tol) * Matrix Y; * Matrix X; * Real tol; * * 【機能説明】 * inv(x)は,スカラ型(整数, 実数, 複素数) x の逆数を求める。 * * X が配列のとき,inv(X)は配列 X の各成分の逆数からなる配列 * Y を求める。Y の大きさは X の大きさと同じになる。 * * X が行列のとき,inv(X)は X の逆行列をピボッティング付き * ガウスの消去法で求める。inv(X,tol) はピボット値の絶対値が * tol より小さいと,警告を表示する。tol が負のとき,ピボット * 値の絶対値が tol の絶対値をより小さくなると,エラー停止する。 * * 【アルゴリズム】 * ピボッティング付きガウスの消去法で逆行列を求める。 * * 【例題】 * >> y = inv(2) * y = 0 * >> y = inv(2.0) * y = 0.5 * >> y = inv((2,3)) * y = (0.153846,-0.230769) * >> Y = inv(Array([[1 2][3 4]])) * === [Y] : ( 2, 2) === * ( 1) ( 2) * ( 1) 1.00000000E+00 5.00000000E-01 * ( 2) 3.33333333E-01 2.50000000E-01 * >> Y = inv([[1 2][0 1e-10]]) * === [Y] : ( 2, 2) === * ( 1) ( 2) * ( 1) 1.00000000E+00 -2.00000000E+10 * ( 2) 0.00000000E+00 1.00000000E+10 * >> Y = inv([[1 2][0 1e-10]], 1e-9) * inv((2x2), 1E-09) : Singular: result may be inaccurate in Mat_Inv(). * === [Y] : ( 2, 2) === * ( 1) ( 2) * ( 1) 1.00000000E+00 -2.00000000E+10 * ( 2) 0.00000000E+00 1.00000000E+10 * * 【関連項目】 * lu(), det() */