numpy.linalg.matrix_power(M, n)
[source]
Raise a square matrix to the (integer) power n
.
For positive integers n
, the power is computed by repeated matrix squarings and matrix multiplications. If n == 0
, the identity matrix of the same shape as M is returned. If n < 0
, the inverse is computed and then raised to the abs(n)
.
Parameters: |
M : ndarray or matrix object Matrix to be “powered.” Must be square, i.e. n : int The exponent can be any integer or long integer, positive, negative, or zero. |
---|---|
Returns: |
M**n : ndarray or matrix object The return value is the same shape and type as |
Raises: |
LinAlgError If the matrix is not numerically invertible. |
See also
matrix
**
, not ^
).>>> 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.]])
Somewhat more sophisticated example
>>> 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.]]) >>> 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.]])
© 2008–2017 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.14.2/reference/generated/numpy.linalg.matrix_power.html