numpy.linalg.matrix_power#

linalg.matrix_power(a, n)[原始碼]#

將方陣自乘(整數)次方 n

對於正整數 n,次方是透過重複的矩陣平方和矩陣乘法計算得出。如果 n == 0,則會傳回與 M 形狀相同的單位矩陣。如果 n < 0,則會計算反矩陣,然後自乘到 abs(n) 次方。

注意

目前不支援物件矩陣堆疊。

參數:
a(…, M, M) array_like

要進行「次方」運算的矩陣。

nint

指數可以是任何整數或長整數,正數、負數或零。

回傳值:
a**n(…, M, M) ndarray 或矩陣物件

回傳值的形狀和型別與 M 相同;如果指數為正數或零,則元素的型別與 M 的元素相同。如果指數為負數,則元素為浮點數。

引發:
LinAlgError

對於非方陣或(對於負次方)無法以數值方式反轉的矩陣。

範例

>>> import numpy as np
>>> from numpy.linalg import matrix_power
>>> i = np.array([[0, 1], [-1, 0]]) # matrix equiv. of the imaginary unit
>>> matrix_power(i, 3) # should = -i
array([[ 0, -1],
       [ 1,  0]])
>>> matrix_power(i, 0)
array([[1, 0],
       [0, 1]])
>>> matrix_power(i, -3) # should = 1/(-i) = i, but w/ f.p. elements
array([[ 0.,  1.],
       [-1.,  0.]])

更精巧的範例

>>> q = np.zeros((4, 4))
>>> q[0:2, 0:2] = -i
>>> q[2:4, 2:4] = i
>>> q # one of the three quaternion units not equal to 1
array([[ 0., -1.,  0.,  0.],
       [ 1.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  1.],
       [ 0.,  0., -1.,  0.]])
>>> matrix_power(q, 2) # = -np.eye(4)
array([[-1.,  0.,  0.,  0.],
       [ 0., -1.,  0.,  0.],
       [ 0.,  0., -1.,  0.],
       [ 0.,  0.,  0., -1.]])