NumPy参考 >例行程序 >线性代数(numpy.linalg) > numpy.linalg.matrix_power
numpy.linalg.
matrix_power
(a,n )[来源] ¶将平方矩阵提高到(整数)幂n。
对于正整数n,乘方是通过重复的矩阵平方和矩阵乘法来计算的。如果为,则返回与M形状相同的单位矩阵。如果,则计算逆,然后提高到。n == 0
n < 0
abs(n)
注意
当前不支持对象矩阵堆栈。
矩阵被“加电”。
指数可以是任何整数或长整数,正数,负数或零。
返回值的形状和类型与M相同;如果指数为正或零,则元素的类型与M的类型相同。如果指数为负,则元素为浮点数。
对于非正方形的矩阵或(对于负幂)的矩阵无法进行数值反转。
例子
>>> 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.]])