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

Pythonで配列の行列式の符号と自然対数を計算する方法(numpy.linalg.slogdet)

配列の行列式の符号(sign)と自然対数(logdet)を計算するには、Pythonのnumpy.linalg.slogdet()メソッドを使用します。第1引数「s」は入力配列であり、正方の2次元配列である必要があります。

このメソッドは、signとして行列式の符号を表す数値を返します。実数行列の場合は「1」「0」「-1」のいずれかとなり、複素行列の場合は絶対値が1の複素数、または0が返されます。また、logdetとしては、行列式の絶対値の自然対数が返されます。

なお、行列式がゼロの場合、signは「0」、logdetは「-Inf」になります。そしてすべての場合において、行列式は sign * np.exp(logdet) と等しくなるという関係が成り立ちます。

手順

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

import numpy as np

配列を作成します。

arr = np.array([[ 1, 2],
   [ 3, 4]])

配列を表示します。

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)

線形代数における配列の行列式を求めます。

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

続いて、numpy.linalg.slogdet()メソッドを使って、行列式の符号と自然対数を計算します。行列式がゼロの場合はsignが0、logdetが-Infとなり、常に「行列式 = sign * np.exp(logdet)」という関係が成立します。

(sign, logdet) = np.linalg.slogdet(arr)
print("\nResult....\n",(sign, logdet))

サンプルコード

import numpy as np

# 配列を作成
arr = np.array([[ 1, 2],
   [ 3, 4]])

# 配列を表示
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)

# 行列式を計算
print("\nDeterminant...\n",np.linalg.det(arr))

# numpy.linalg.slogdet()で行列式の符号と自然対数を計算
(sign, logdet) = np.linalg.slogdet(arr)
print("\nResult....\n",(sign, logdet))

出力結果

Our Array...
[[1 2]
[3 4]]

Dimensions of our Array...
2

Datatype of our Array object...
int64

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

Determinant...
-2.0000000000000004

Result....
(-1.0, 0.6931471805599455)

  1. Pythonで複素数値入力の自然対数を計算する方法

    自然対数は指数関数の逆関数であり、log(exp(x)) = x という関係が成り立ちます。自然対数とは、e(ネイピア数)を底とする対数のことです。NumPyの np.log() メソッドは、入力xの自然対数を要素ごとに計算して返します。xがスカラーの場合はスカラー値を返します。np.log() の主なパラメータ第1パラメータは入力値で、配列状のオブジェクト(array-like)を指定します。第2パラメータの out は、計算結果を格納する場所です。指定する場合は、入力がブロードキャストされる形状と一致している必要があります。省略した場合や None を指定した場合は、新しく確保された配列が

  2. 【Python】NumPyで自然対数(log)を計算する方法

    自然対数(log)は指数関数の逆関数であり、log(exp(x)) = x という関係が成り立ちます。自然対数とは、ネイピア数 e を底とする対数のことです。NumPy の np.log() メソッドは、入力 x の自然対数を要素ごとに計算して返します。x がスカラーであれば、戻り値もスカラーになります。 主なパラメータ 第1引数(x): 入力値。配列様(array-like)オブジェクトを指定します。 第2引数(out): 結果を格納する場所。指定する場合は、入力がブロードキャストされる形状と一致している必要があります。省略した場合や None を指定した場合は、新たに確保された配列が返さ