この記事では、その概念を理解する前に、Python の NumPy 逆行列について見ていきます。行列の逆数は、方程式を解いて未知の変数の値を見つけるために使用される単一の数値に対する通常の算術で行うのと同様、行列の逆数にすぎません。行列の逆行列は、元の行列と乗算すると単位行列が得られる行列です。
行列の逆行列は、行列が次の場合にのみ存在します。 非特異的、つまり行列式は 0 であってはなりません 。行列式と随伴行列を使用すると、次の式を使用して正方行列の逆行列を簡単に見つけることができます。
ああ、ジャワ
if det(A) != 0 A-1 = adj(A)/det(A) else 'Inverse doesn't exist'>
行列方程式:
どこ、
あ-1: 行列 A の逆行列
バツ: T 未知の変数列
B: ソリューションマトリックス
NumPyを使用した逆行列
Python は、逆行列を計算する非常に簡単な方法を提供します。関数 numpy.linalg.inv() NumPy モジュールで利用でき、Python で逆行列を計算するために使用されます。
構文: numpy.linalg.inv(a)
パラメーター:
a: 逆行列の行列
戻り値: 行列 a の逆行列。
例 1: この例では、3 × 3 の NumPy 配列行列を作成し、np.linalg.inv() 関数を使用して逆行列に変換します。
Python3
# Import required package> import> numpy as np> # Taking a 3 * 3 matrix> A> => np.array([[> 6> ,> 1> ,> 1> ],> > [> 4> ,> -> 2> ,> 5> ],> > [> 2> ,> 8> ,> 7> ]])> # Calculating the inverse of the matrix> print> (np.linalg.inv(A))> |
>
>
出力:
[[ 0.17647059 -0.00326797 -0.02287582] [ 0.05882353 -0.13071895 0.08496732] [-0.11764706 0.1503268 0.05228758]]>
例 2: この例では、4 × 4 の NumPy 配列行列を作成し、np.linalg.inv() 関数を使用してそれを Python の逆行列に変換します。
Python3
# Import required package> import> numpy as np> # Taking a 4 * 4 matrix> A> => np.array([[> 6> ,> 1> ,> 1> ,> 3> ],> > [> 4> ,> -> 2> ,> 5> ,> 1> ],> > [> 2> ,> 8> ,> 7> ,> 6> ],> > [> 3> ,> 1> ,> 9> ,> 7> ]])> # Calculating the inverse of the matrix> print> (np.linalg.inv(A))> |
>
>
出力:
rdbms の関係代数
[[ 0.13368984 0.10695187 0.02139037 -0.09090909] [-0.00229183 0.02673797 0.14820474 -0.12987013] [-0.12987013 0.18181818 0.06493506 -0.02597403] [ 0.11000764 -0.28342246 -0.11382735 0.23376623]]>
例 3: この例では、複数の NumPy 配列行列を作成し、np.linalg.inv() 関数を使用して逆行列に変換します。
Python3
# Import required package> import> numpy as np> # Inverses of several matrices can> # be computed at once> A> => np.array([[[> 1.> ,> 2.> ], [> 3.> ,> 4.> ]],> > [[> 1> ,> 3> ], [> 3> ,> 5> ]]])> # Calculating the inverse of the matrix> print> (np.linalg.inv(A))> |
>
>
出力:
[[[-2. 1. ] [ 1.5 -0.5 ]] [[-1.25 0.75] [ 0.75 -0.25]]]>