On this page
numpy.linalg.matrix_power
- numpy.linalg.matrix_power(a, 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. Ifn == 0, the identity matrix of the same shape as M is returned. Ifn < 0, the inverse is computed and then raised to theabs(n).Note Stacks of object matrices are not currently supported. - Parameters
- 
      - a(…, M, M) array_like
- 
        Matrix to be “powered”. 
- nint
- 
        The exponent can be any integer or long integer, positive, negative, or zero. 
 
- Returns
- 
      - a**n(…, M, M) ndarray or matrix object
- 
        The return value is the same shape and type as M; if the exponent is positive or zero then the type of the elements is the same as those ofM. If the exponent is negative the elements are floating-point.
 
- Raises
- 
      - LinAlgError
- 
        For matrices that are not square or that (for negative powers) cannot be inverted numerically. 
 
 Examples>>> 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.]])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.]]) >>> matrix_power(q, 2) # = -np.eye(4) array([[-1., 0., 0., 0.], [ 0., -1., 0., 0.], [ 0., 0., -1., 0.], [ 0., 0., 0., -1.]])
© 2005–2020 NumPy Developers
Licensed under the 3-clause BSD License.
 https://numpy.org/doc/1.19/reference/generated/numpy.linalg.matrix_power.html