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

Pythonで行列のスタックのムーアペンローズ疑似逆行列を計算します


行列のスタックの(ムーア-ペンローズ)疑似逆行列を計算するには、Pythonでnumpy.linalg.pinv()メソッドを使用します。特異値分解(SVD)を使用し、すべての大きな特異値を含めて、行列の一般逆行列を計算します。

最初のパラメーターaは、疑似反転される行列または行列のスタックです。 2番目のパラメーターであるrcodnは、小さな特異値のカットオフです。 rcond*largest_singular_value以下の特異値はゼロに設定されます。マトリックスのスタックに対してブロードキャストします。 3番目のパラメーターであるエルミート(Trueの場合)は、エルミートであると見なされ、特異値を見つけるためのより効率的な方法を可能にします。デフォルトはFalseです。

ステップ

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

import numpy as np

array()を使用して配列を作成します。

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)

行列のスタックの(ムーア-ペンローズ)疑似逆行列を計算するには、Pythonでnumpy.linalg.pinv()メソッドを使用します。

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

import numpy as np

# Create an array using 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)

# To Compute the (Moore-Penrose) pseudo-inverse of a stack of matrices, use the numpy.linalg.pinv() method in Python.
print("\nResult...\n",np.linalg.pinv(arr))

出力

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)

Result...
[[[-2. 1. ]
[ 1.5 -0.5 ]]

[[-0.33333333 0.66666667]
[ 0.66666667 -0.33333333]]

[[-0.125 0.375 ]
[ 0.375 -0.125 ]]]

  1. Pythonで複雑なエルミート行列または実対称行列の固有値を計算します

    複雑なエルミート行列または実対称行列の固有値を計算するには、numpy.eigvalsh()メソッドを使用します。このメソッドは、固有値を昇順で返し、それぞれがその多重度に従って繰り返されます。 最初のパラメーターaは、固有値が計算される複素数値または実数値の行列です。 2番目のパラメーターであるUPLOは、計算がaの下三角部分(「L」、デフォルト)で行われるか、上三角部分(「U」)で行われるかを指定します。この値に関係なく、エルミート行列の概念を維持するために、対角線の実数部のみが計算で考慮されます。したがって、対角線の虚数部は常にゼロとして扱われます。 ステップ まず、必要なライブラリ

  2. Pythonで配列要素の双曲線接線を計算します

    配列要素の双曲線正接を計算するには、PythonNumpyのnumpy.tanh()メソッドを使用します。このメソッドは、np.sinh(x)/np.cosh(x)または-1j * np.tan(1j * x)と同等です。対応する双曲線正接値を返します。 xがスカラーの場合、これはスカラーです。最初のパラメーターxはinputarrayです。 2番目と3番目のパラメーターはオプションです。 2番目のパラメーターは、結果が格納される場所であるndarrayです。提供される場合、入力がブロードキャストされる形状を持っている必要があります。指定しない場合またはなしの場合、新しく割り当てられた配列が