Pythonでは、行列の累乗を計算するためのいくつかの方法があります。ここでは、それらの方法を紹介します。
numpy.linalg.matrix_powerを使用する
numpy.linalg.matrix_power
関数を使用すると、指定した行列の累乗を計算することができます。以下にその使用例を示します。
import numpy as np
# 3次正方行列
a = np.arange(1, 10).reshape(3, 3)
a_5 = np.linalg.matrix_power(a, 5)
print(a_5)
このコードは、3次正方行列a
の5乗を計算します。
対角化を利用する
行列の累乗は、対角行列と固有ベクトルを用いて計算することもできます。以下にその使用例を示します。
import numpy as np
def diagonalization(x):
eig = np.linalg.eig(x)
e = np.diag(eig[0])
p = eig[1]
return e, p
np.random.seed(0)
A = np.random.randint(0,10,(3,3))
e = diagonalization(A)
D = e[0]
P = e[1]
P_inv = np.linalg.inv(P)
A_3 = P @ (D**3) @ P_inv
print(A_3)
このコードは、行列A
の3乗を計算します。
以上、Pythonで行列の累乗を計算する方法を紹介しました。これらの方法を活用して、Pythonでの行列演算をより効率的に行ってみてください。