Python
 Computer >> コンピューター >  >> プログラミング >> Python

【Python・NumPy】np.linalg.det()で2次元配列の行列式を計算する方法

線形代数において2次元配列(行列)の行列式を計算したい場合は、PythonのNumPyライブラリが提供する np.linalg.det() を使用します。第1引数 a には、行列式を求めたい入力配列を指定します。このメソッドは、指定した配列 a の行列式を戻り値として返します。

実行手順

まず、必要なライブラリをインポートします。

import numpy as np

次に、行列式を計算するための配列を作成します。

arr = np.array([[ 5, 10], [12, 18]])

作成した配列を表示して確認しましょう。

print("Our Array...\n",arr)

配列の次元数を確認します。

print("\nDimensions of our Array...\n",arr.ndim)

配列のデータ型を取得します。

print("\nDatatype of our Array object...\n",arr.dtype)

配列の形状(シェイプ)を取得します。

print("\nShape of our Array object...\n",arr.shape)

ここまで確認できたら、np.linalg.det() を使って2次元配列の行列式を計算します。

print("\nResult...\n",np.linalg.det(arr))

完全なサンプルコード

import numpy as np

# 配列を作成
arr = np.array([[ 5, 10], [12, 18]])

# 配列を表示
print("Our Array...\n",arr)

# 次元数を確認
print("\nDimensions of our Array...\n",arr.ndim)

# データ型を取得
print("\nDatatype of our Array object...\n",arr.dtype)

# 形状を取得
print("\nShape of our Array object...\n",arr.shape)

# np.linalg.det() を使って2次元配列の行列式を計算
# 第1引数 a は行列式を計算する対象の入力配列
# メソッドは配列 a の行列式を返す
print("\nResult...\n",np.linalg.det(arr))

実行結果

Our Array...
[[ 5 10]
[12 18]]

Dimensions of our Array...
2

Datatype of our Array object...
int64

Shape of our Array object...
(2, 2)

Result...
-30.000000000000014

補足:浮動小数点誤差について

上記の実行結果では -30.000000000000014 と表示されています。数学的には正確な値は -30 ですが、np.linalg.det() は内部でLU分解などの浮動小数点演算を行うため、このような微小な誤差が生じることがあります。厳密な値が必要な場合は、round()np.round() を使って丸めるか、許容誤差の範囲で比較することをおすすめします。

  1. Python NumPyのlinalg.norm()で行列・ベクトルのノルムを計算する方法

    線形代数において行列またはベクトルのノルム(Norm)を返すには、Python NumPyのnumpy.linalg.norm()メソッドを使用します。この記事では、LA.norm()メソッドの基本的な使い方と各パラメータの意味を、実際のコード例とともにわかりやすく解説します。numpy.linalg.norm()メソッドのパラメータ第1引数:xノルムを計算する対象となる入力配列です。axisがNoneの場合、xは1次元または2次元である必要があります(ordがNoneの場合を除く)。axisとordがどちらもNoneの場合は、x.ravel()の2-ノルムが返されます。第2引数:ordノルム

  2. 【Python入門】numpy.linalg.cholesky()でコレスキー分解を求める方法

    線形代数におけるコレスキー分解(Cholesky decomposition)とは、エルミート行列かつ正定値である正方行列 a を、下三角行列 L とその共役転置 LH の積「L * LH」に分解する手法です。NumPyでは numpy.linalg.cholesky() メソッドを使うことで、この分解を簡単に求めることができます。numpy.linalg.cholesky()メソッドの概要numpy.linalg.cholesky() は、引数として渡された正方行列のコレスキー分解を計算し、下三角行列 L を返します。このメソッドには以下のような特徴があります。前提条件: 入力行列 a はエ