numpy.linalg.matrix_power
numpy.linalg.matrix_power(a, n)
Функция linalg.matrix_power() возводит матрицу в степень указанного целого числа.
Для натуральных чисел n степень матрицы вычисляется путем повторного возведения в квадрат и умножения матриц. Для n = 0 возвращается единичная матрица, с той же формой, что и a. Для n < 0 сначала вычисляется обратная матрица, а зотем она возводится в степень np.abs(n)
.
Данная функция может принимать многомерные массивы с двумя одинаковыми последними осями, и находить степень каждого такого подмассива отдельно, после чего она возвращает массив той же формы со степенями подмассивов по последним двум осям исходного массива.
-
- a - массив NumPy или подобный массиву объект.
- Входные данные.
- n - целое число.
- Степень в которую возводится матрица.
-
- результат - массив NumPy
- Результат возведения матрицы a в степень n, с той же формой, что и a. Для n > 0 и n = 0 тип данных не преобразуется, для n < 0 тип данных всегда преобразуется к float. Если входной массив это последовательность квадратных матриц, то возвращается последовательность степеней его подмассивов.
Замечание
Если матрица не является квадратной или если матрица является вырожденной (определитель равен 0) и возводится в отрицательную степень то вызывается исключение LinAlgError.
Примеры
>>> import numpy as np
>>>
>>> a = np.array([[1, 2], [3, 4]])
>>>
>>> np.linalg.matrix_power(a, 0)
array([[1, 0],
[0, 1]])
>>>
>>> np.linalg.matrix_power(a, 2)
array([[ 7, 10],
[15, 22]])
>>>
>>> np.linalg.matrix_power(a, 3)
array([[ 37, 54],
[ 81, 118]])
>>>
>>> np.linalg.matrix_power(a, -3)
array([[-14.75 , 6.75 ],
[ 10.125, -4.625]])
>>>
>>>
>>> b = np.arange(12).reshape(3, 2, 2)
>>>
>>> np.linalg.matrix_power(b, 2)
array([[[ 2, 3],
[ 6, 11]],
[[ 46, 55],
[ 66, 79]],
[[154, 171],
[190, 211]]])
>>>
>>> np.linalg.matrix_power(b[0], 2)
array([[ 2, 3],
[ 6, 11]])