Numpy linalg matrix_power: Как рассчитать мощность матрицы
Numpy linalg.matrix_rank() используется для вычисления степени n квадратной матрицы. Что это означает, что если у нас есть квадратная матрица M и целое число n, и эта функция используется для вычисления Mn?
Numpy linalg matrix_power()
Чтобы вычислить степень матрицы m, используйте функцию np.matrix_power()
. Метод matrix_power()
увеличивает квадратную матрицу до (целой) степени n.
Если значение n = 0
, то вычисляется та же матрица, а если значение n < 0
, то эта функция сначала инвертирует матрицу, а затем вычисляет степень abs(n)
.
Синтаксис
numpy.linalg.matrix_power(M,n)
Параметры
Функция matrix_power()
принимает два параметра:
- М: Это квадратная матрица, над которой мы хотим работать.
- n: это значение мощности матрицы.
Возвращаемое значение
После вычисления мощности метод возвращает целое число.
Пример программирования
Программируйте, когда значение N больше 0
from numpy import linalg as LA
import numpy as np
arr1 = np.array([[1, 2, 3], [3, 2, 4], [1, 0, 1]])
print("The array is:\n", arr1)
# When n=2
print("Matrix Power is:\n", LA.matrix_power(arr1, 2))
arr2 = np.array([[1, 2], [2, 1]])
print("The array is:\n", arr2)
# When n=1
print("Matrix Power is:\n", LA.matrix_power(arr2, 1))
Результат
The array is:
[[1 2 3]
[3 2 4]
[1 0 1]]
Matrix Power is:
[[10 6 14]
[13 10 21]
[ 2 2 4]]
The array is:
[[1 2]
[2 1]]
Matrix Power is:
[[1 2]
[2 1]]
Объяснение
В этом примере мы сначала импортировали numpy и linalg. Затем мы создали матрицу размером 3 × 3, а затем вычислили matrix_power, когда значение n равно 2.
После этого мы объявили еще одну матрицу размером 2 × 2 и вызвали matrix_power при n = 1. У нас есть массив такой же формы после вызова функции матрицы power.
Программа, когда значение N равно 0 или меньше 0
См. cледующий код:
from numpy import linalg as LA
import numpy as np
arr1 = np.array([[1, 2, 3], [3, 2, 4], [1, 0, 1]])
print("The array is:\n", arr1)
# When n=0
print("Matrix Power is:\n", LA.matrix_power(arr1, 0))
arr2 = np.array([[1, 2], [2, 1]])
print("The array is:\n", arr2)
# When n=-2
print("Matrix Power is:\n", LA.matrix_power(arr2, -2))
Результат
The array is:
[[1 2 3]
[3 2 4]
[1 0 1]]
Matrix Power is:
[[1 0 0]
[0 1 0]
[0 0 1]]
The array is:
[[1 2]
[2 1]]
Matrix Power is:
[[ 0.55555556 -0.44444444]
[-0.44444444 0.55555556]]
Объяснение
В этом примере мы сначала импортировали numpy и linalg. Затем мы создали матрицу размером 3 × 3, а затем вычислили matrix_power, когда значение n равно 0.
В этом случае в результате мы получили матрицу, в которой только одна диагональ имеет значение 1, а остальные - 0. После этого мы объявили еще одну матрицу размером 2 × 2 и вызвали matrix_power при n = -2.
В этом случае после вычисления степени n мы получили матрицу той же формы, что и данная матрица.