numpy で逆行列を求めるときは、numpy.linalg.inv
を使います。ここではこの関数の使い方についてわかりやすく解説していきます。また復習として、逆行列とは何かということも解説します。それでは始めましょう。
1. 逆行列とは
逆行列とは、ある行列 \(A\) で線形変換した空間を元に戻す行列 \(A^{-1}\) のことです。そのため、ある行列とその逆行列は、\(A^{-1}A=AA^{-1}=I\) という関係にあります。以下のアニメーションで、視覚的に確認することができます。
詳しくは『逆行列とは何か?その求め方・条件・性質の徹底解説』で解説しているので、復習したい方はぜひご覧ください。
逆行列は手計算で求めるのは少し面倒ですが、numpy.linalg.inv
関数を使えば、あっという間に計算してくれます。
2. linalg.inv の使い方
numpy.linalg.inv
の書き方は以下の通りです。なお慣習的に、linalg
モジュールは import numpy.linalg as LA
とインポートします。そのため、このモジュール内の関数を使うときは LA.inv()
書きます。
使い方は簡単です。逆行列を求めたい行列を渡すだけです。
例えば、以下は2次正方行列の逆行列を求めています。
import numpy as np
import numpy.linalg as LA
A=np.array([[2,-1],[-1,3]])
LA.inv(A)
次に3次正方行列の逆行列も求めてみましょう。
A=np.array([[2,-1,2],[-1,3,0],[-1,-1,-2]])
LA.inv(A)
簡単ですね。もちろん、どれだけ大きなサイズの行列だとしても瞬時に求めてくれます。
なお逆行列が存在するのは、元の行列が正方行列であり、正則行列である場合です。それ以外の場合はエラーになります。
3. まとめ
以上が numpy で逆行列を求める方法です。逆行列はよく使うので覚えておきましょう。
コメント