DevGang
Авторизоваться

Numpy linalg matrix_power: Как рассчитать мощность матрицы

Numpy linalg.matrix_rank() используется для вычисления степени квадратной матрицы. Что это означает, что  если у нас есть квадратная матрица 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() принимает два параметра:

  1. М: Это квадратная матрица, над которой мы хотим работать.
  2. 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 мы получили матрицу той же формы, что и данная матрица.

Источник:

#Python #Numpy
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

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

Попробовать

Оплатив хостинг 25$ в подарок вы получите 100$ на счет

Получить