線形連立方程式を解く
lsolve(M, v) - LU 分解を使用して線形連立方程式 M·x = v の解 x を返します。
引数
M は実数または複素数の行列です。正方行列の場合は、非特異行列でなければなりません。
vM と行数が同じ実数または複素数のベクトルまたは行列です。
その他の情報
行列式が 0 のとき行列は特異です。行列の条件数が高いとき、その行列はほぼ特異です。これらの条件により、問題を解くための逆行列の計算が困難になります。このような場合は、lsolve 関数が機能しなかったり正常な結果が得られなかったりすることがあります。ほぼ特異な行列には、別の分解を使ってください。
lsolve 関数は、Press, W. H., et. al., Numerical Recipes in C: The Art of Scientific Computing, second ed., Cambridge University Press, Cambridge, 1992 に記載されているルーチンに基づいています。LU 分解には Intel の BLAS/LAPACK ライブラリが使用されます。
rank(M) = cols(M) かどうか、つまり M のすべての列が一次独立かどうかをチェックすることによって、連立方程式が単一解を持つかどうかを調べることができます。
逆行列を使うと、このタイプの連立方程式を直接解くことができますが、lsolve の方が高速で、多くの場合に正確です。通常の表記法の線形連立方程式を解くには、ソルブブロックを使用できます。
連立方程式が不能な場合、lsolve は最小二乗法による解を返します。この解は geninv(M)·v でも返されます。
v が行列値の場合、lsolve(M, v<i>)geninv(M)·v の i 番目の列を返します。
これは役に立ちましたか?