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

Pythonで行列のスタックの対数行列式を計算する


行列のスタックの対数行列式を計算するには、Pythonでnumpy.linalg.slogdet()メソッドを使用します。最初のパラメーターsは入力配列であり、正方形の2次元配列である必要があります。符号付きのメソッドは、行列式の符号を表す数値を返します。実際の行列の場合、これは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]], [[1, 2], [2, 1]], [[1, 3], [3, 1]] ])

配列を表示する-

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

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

# Display the array
print("Our Array...\n",arr)

# Check the Dimensions
print("\nDimensions of our Array...\n",arr.ndim)

# Get the Datatype
print("\nDatatype of our Array object...\n",arr.dtype)

# Get the Shape
print("\nShape of our Array object...\n",arr.shape)

# The determinant of an array in linear algebra
print("\nDeterminant...\n",np.linalg.det(arr))

# To compute log-determinants for a stack of matrices, use the numpy.linalg.slogdet() method in Python
(sign, logdet) = np.linalg.slogdet(arr)
print("\nResult....\n",(sign, logdet))

出力

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

[[1 2]
[2 1]]

[[1 3]
[3 1]]]

Dimensions of our Array...
3

Datatype of our Array object...
int64

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

Determinant...
[-2. -3. -8.]

Result....
(array([-1., -1., -1.]), array([0.69314718, 1.09861229, 2.07944154]))

  1. ソートをカウントするためのPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −配列が与えられたので、カウントソートの概念を使用して配列をソートする必要があります。 ソートのカウントは、特定の範囲のキーを処理する手法です。これには、異なるキーと値を持つオブジェクトの数を数えることが含まれます。最後に、算術計算を行って各オブジェクトの位置を取得し、出力を表示します。 次に、以下の実装のソリューションを見てみましょう- 例 def countSort(arr):    # The output character array that will have sorte

  2. 配列ローテーション用のPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −テキストとパターンが与えられた場合、パターンのすべての出現とその順列(またはアナグラム)をテキストで印刷する必要があります。 次に、以下の実装のソリューションを見てみましょう- 例 # maximum value MAX = 300 # compare def compare(arr1, arr2):    for i in range(MAX):       if arr1[i] != arr2[i]:       &nbs