Numpy は科学計算用の Python ライブラリであり、強力な多次元配列オブジェクトと対応する演算関数を提供します。 Numpy では、線形代数モジュール (numpy.linalg
) を使用して逆行列を計算できます。この記事では、Numpy が行列の逆行列を計算する方法を詳しく紹介し、具体的なコード例を示します。
線形代数では、正方行列 A が与えられ、AB=BA=I (I は単位行列を表す) となる別の正方行列 B が存在する場合、B は A の逆行列と呼ばれます。 A^-1として。逆行列は行列の特殊なケースであり、次の特性があります:
Numpy の線形代数モジュール (numpy.linalg
) は関数 inv()
,行列の逆行列を計算するために使用されます。 inv()
関数の呼び出しメソッドは次のとおりです。
numpy.linalg.inv(a)
ここで、a
は入力行列です。
逆行列があるのは正方行列のみであることに注意してください。そのため、逆行列を計算する前に、入力行列が正方行列であることを確認してください。
次は、Numpy を使用して逆行列を計算するサンプル コードです:
import numpy as np # 定义一个3x3的矩阵 a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) # 计算逆矩阵 inv_a = np.linalg.inv(a) print("原始矩阵 a:") print(a) print("逆矩阵 inv_a:") print(inv_a) # 验证逆矩阵是否正确 result = np.dot(a, inv_a) identity_matrix = np.eye(3) # 生成一个3x3的单位矩阵 print("验证结果是否为单位矩阵:") print(result == identity_matrix)
上記のコードを実行すると、次の結果が出力されます:
原始矩阵 a: [[1 2 3] [4 5 6] [7 8 9]] 逆矩阵 inv_a: [[-1.00000000e+00 2.00000000e+00 -1.00000000e+00] [ 2.00000000e+00 -4.00000000e+00 2.00000000e+00] [-1.00000000e+00 2.77555756e-16 1.00000000e+00]] 验证结果是否为单位矩阵: [[ True True True] [ True True True] [ True True True]]
上記の例では、最初に 3x3 行列 a を定義し、次に np.linalg.inv()
関数を使用して逆行列 inv_a を計算します。最後に行列の乗算により計算結果が正しいかどうかを検証しました。
Numpyを使うと行列の逆行列をとても便利に計算できます。 np.linalg.inv()
関数を呼び出すと、入力行列の逆行列を取得できます。ただし、逆行列があるのは正方行列のみであることに注意してください。計算結果の正確性を検証するために、計算結果を行列乗算によって単位行列と比較できます。逆行列は、線形方程式の解法やパラメータ推定など、科学計算や工学アプリケーションで広く使用されています。
以上がNumpyを使用して逆行列を計算するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。