原文:https://docs.scipy.org/doc/numpy/reference/generated/numpy.linalg.matrix_power.html
校对:(虚位以待)
numpy.linalg.
matrix_power
(M, n)[source]将方阵转化为(整数)幂n。
对于正整数n,通过重复的矩阵平方和矩阵乘法计算功率。如果n == 0
,则返回与M相同形状的单位矩阵。如果n 0
,则计算逆,然后提高到abs(n)
。
参数: | M:ndarray或矩阵对象
n:int
|
---|---|
返回: | M ** n:ndarray或矩阵对象
|
上升: | LinAlgError
|
也可以看看
matrix
**
,而不是^
)等效的函数。例子
>>> from numpy import linalg as LA
>>> i = np.array([[0, 1], [-1, 0]]) # matrix equiv. of the imaginary unit
>>> LA.matrix_power(i, 3) # should = -i
array([[ 0, -1],
[ 1, 0]])
>>> LA.matrix_power(np.matrix(i), 3) # matrix arg returns matrix
matrix([[ 0, -1],
[ 1, 0]])
>>> LA.matrix_power(i, 0)
array([[1, 0],
[0, 1]])
>>> LA.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 quarternion units not equal to 1
array([[ 0., -1., 0., 0.],
[ 1., 0., 0., 0.],
[ 0., 0., 0., 1.],
[ 0., 0., -1., 0.]])
>>> LA.matrix_power(q, 2) # = -np.eye(4)
array([[-1., 0., 0., 0.],
[ 0., -1., 0., 0.],
[ 0., 0., -1., 0.],
[ 0., 0., 0., -1.]])