scipy.sparse.linalg.

matrix_power#

scipy.sparse.linalg.matrix_power(A, степень)[источник]#

Возвести квадратную матрицу в целую степень, степень.

Для неотрицательных целых чисел, A**power вычисляется с использованием повторных умножений матриц. Отрицательные целые числа не поддерживаются.

Параметры:
A(M, M) квадратный разреженный массив или матрица

разреженный массив, который будет возведён в степень степень

степеньint

Показатель степени, используемый для возведения разреженного массива A

Возвращает:
A**power(M, M) разреженный массив или матрица

Выходная матрица будет той же формы, что и A, и сохранит класс A, но формат вывода может быть изменён.

Примечания

Это использует рекурсивную реализацию возведения матрицы в степень. Для вычисления степени матрицы с достаточно большим степень, это может быть менее эффективно, чем вычисление произведения напрямую, используя A @ A @ … @ A. Это зависит от количества ненулевых элементов в матрице.

Добавлено в версии 1.12.0.

Примеры

>>> from scipy import sparse
>>> A = sparse.csc_array([[0,1,0],[1,0,1],[0,1,0]])
>>> A.todense()
array([[0, 1, 0],
       [1, 0, 1],
       [0, 1, 0]])
>>> (A @ A).todense()
array([[1, 0, 1],
       [0, 2, 0],
       [1, 0, 1]])
>>> A2 = sparse.linalg.matrix_power(A, 2)
>>> A2.todense()
array([[1, 0, 1],
       [0, 2, 0],
       [1, 0, 1]])
>>> A4 = sparse.linalg.matrix_power(A, 4)
>>> A4.todense()
array([[2, 0, 2],
       [0, 4, 0],
       [2, 0, 2]])