NumPyで逆行列を求める方法 – linalg.inv の使い方

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() 書きます。

numpy.linalg.inv

書き方

LA.inv(a)

パラメーター

引数 解説
a   array_like     逆行列を求める行列を入力します。

公式ドキュメント:numpy.linalg.inv

使い方は簡単です。逆行列を求めたい行列を渡すだけです。

例えば、以下は2次正方行列の逆行列を求めています。

In [1]:
import numpy as np
import numpy.linalg as LA
A=np.array([[2,-1],[-1,3]])
LA.inv(A)
Out[1]:
array([[0.6, 0.2],
       [0.2, 0.4]])

次に3次正方行列の逆行列も求めてみましょう。

In [2]:
A=np.array([[2,-1,2],[-1,3,0],[-1,-1,-2]])
LA.inv(A)
Out[2]:
array([[ 3. ,  2. ,  3. ],
       [ 1. ,  1. ,  1. ],
       [-2. , -1.5, -2.5]])

簡単ですね。もちろん、どれだけ大きなサイズの行列だとしても瞬時に求めてくれます。

なお逆行列が存在するのは、元の行列が正方行列であり、正則行列である場合です。それ以外の場合はエラーになります。

3. まとめ

以上が numpy で逆行列を求める方法です。逆行列はよく使うので覚えておきましょう。



よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次
閉じる