numpy.linalg.matrix_power #

利纳尔格。矩阵幂( a , n ) [来源] #

将方阵求n次(整数)次方。

对于正整数n,幂是通过重复矩阵​​平方和矩阵乘法计算的。如果,则返回与 M 形状相同的单位矩阵。如果,则计算逆数,然后将其提升至。n == 0n < 0abs(n)

笔记

当前不支持对象矩阵堆栈。

参数
一个(…, M, M) 类似数组

矩阵被“供电”。

整数

指数可以是任何整数或长整数、正数、负数或零。

返回
a**n (..., M, M) ndarray 或矩阵对象

返回值的形状和类型与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.]])