РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
252 of 541 menu

Функция linalg.matrix_power

Функция linalg.matrix_power вычисляет степень квадратной матрицы. Первый параметр - квадратная матрица для возведения в степень. Второй параметр - целое число, показатель степени. Функция возвращает новую матрицу, являющуюся результатом возведения в степень. Для положительных степеней матрица последовательно умножается сама на себя. Для нулевой степени возвращается единичная матрица того же размера. Для отрицательных степеней матрица сначала обращается, затем возводится в положительную степень.

Синтаксис

np.linalg.matrix_power(a, n)

Пример

Возведём квадратную матрицу во вторую степень:

import numpy as np arr = np.array([[1, 2], [3, 4]]) res = np.linalg.matrix_power(arr, 2) print(res)

Результат выполнения кода:

[[ 7 10] [15 22]]

Пример

Возведём матрицу в нулевую степень:

import numpy as np arr = np.array([[1, 2], [3, 4]]) res = np.linalg.matrix_power(arr, 0) print(res)

Результат выполнения кода:

[[1 0] [0 1]]

Пример

Возведём матрицу в отрицательную степень (эквивалентно обращению матрицы):

import numpy as np arr = np.array([[1, 2], [3, 4]]) res = np.linalg.matrix_power(arr, -1) print(res)

Результат выполнения кода:

[[-2. 1. ] [ 1.5 -0.5]]

Пример

Выполним последовательное возведение матрицы в степени от -2 до 2 и сравним результаты:

import numpy as np arr = np.array([[2, 1], [1, 2]]) for n in (-2, -1, 0, 1, 2): res = np.linalg.matrix_power(arr, n) print(f"n = {n}:\n{res}\n")

Результат выполнения кода:

n = -2: [[ 0.55555556 -0.22222222] [-0.22222222 0.55555556]] n = -1: [[ 0.66666667 -0.33333333] [-0.33333333 0.66666667]] n = 0: [[1 0] [0 1]] n = 1: [[2 1] [1 2]] n = 2: [[5 4] [4 5]]

Пример

Попытка возведения в отрицательную степень сингулярной матрицы (необратимой) вызывает ошибку:

import numpy as np arr = np.array([[1, 2], [2, 4]]) # Сингулярная матрица try: res = np.linalg.matrix_power(arr, -1) except np.linalg.LinAlgError as e: print("Ошибка:", e)

Результат выполнения кода:

"Ошибка: Singular matrix"

Смотрите также

  • функцию det,
    которая вычисляет определитель матрицы
  • функцию inv,
    которая вычисляет обратную матрицу
  • функцию matmul,
    которая выполняет умножение двух матриц
  • функцию svd,
    которая выполняет сингулярное разложение матрицы
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить