Spec-Zone.ru › NumPy 1.14

numpy.linalg.matrix_power

numpy.linalg.matrix_power(M, n) [source]

Возведение квадратной матрицы в (целую) степень n.

Для положительных целых n, степень вычисляется посредством многократного возведения матрицы в квадрат и умножения матриц. Если n == 0, возвращается единичная матрица той же формы, что и M. Если n < 0, вычисляется обратная матрица, а затем возводится в abs(n).

Параметры:

M : ndarray или объект матрицы

Матрица, которая будет возведена в степень. Должна быть квадратной, т.е. M.shape == (m, m), где m — положительное целое число.

n : int

Показатель степени может быть любым целым или длинным целым числом, положительным, отрицательным или нулевым.

Возвращаемое значение:

M**n : ndarray или объект матрицы

Возвращаемое значение имеет такую же форму и тип, что и M; если показатель степени положительный или нулевой, то тип элементов такой же, как у M. Если показатель степени отрицательный, элементы являются числами с плавающей точкой.

Исключения:

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 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.]])

© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.14.5/reference/generated/numpy.linalg.matrix_power.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API