Функция linalg.inv
Функция linalg.inv вычисляет обратную матрицу
для квадратной матрицы. Обратная матрица A⁻¹
удовлетворяет условию A * A⁻¹ = I, где I -
это единичная матрица. Функция принимает один обязательный
параметр - квадратную матрицу. Если матрица вырожденная
(её определитель равен нулю), функция выбрасывает исключение
LinAlgError.
Синтаксис
np.linalg.inv(a)
Параметры:
-
a- квадратная матрица, для которой требуется вычислить обратную.
Пример
Давайте вычислим обратную матрицу для матрицы 2x2:
import numpy as np
arr = np.array([[4, 7], [2, 6]])
res = np.linalg.inv(arr)
print(res)
Результат выполнения кода:
[[ 0.6 -0.7 ]
[-0.2 0.4 ]]
Пример
Давайте проверим, что полученная матрица действительно является обратной, умножив её на исходную:
import numpy as np
arr = np.array([[4, 7], [2, 6]])
inv_arr = np.linalg.inv(arr)
res = np.dot(arr, inv_arr)
print(res)
Результат выполнения кода:
[[1. 0.]
[0. 1.]]
Пример
Давайте вычислим обратную матрицу для матрицы 3x3:
import numpy as np
arr = np.array([[1, 2, 3],
[0, 1, 4],
[5, 6, 0]])
res = np.linalg.inv(arr)
print(res)
Результат выполнения кода:
[[-24. 18. 5.]
[ 20. -15. -4.]
[ -5. 4. 1.]]
Пример
Попробуем вычислить обратную матрицу для вырожденной матрицы (с нулевым определителем):
import numpy as np
arr = np.array([[1, 2], [2, 4]])
try:
res = np.linalg.inv(arr)
print(res)
except np.linalg.LinAlgError as e:
print("Error:", e)
Результат выполнения кода:
"Error: Singular matrix"
Смотрите также
-
функцию
pinv,
которая вычисляет псевдообратную матрицу для вырожденных матриц -
функцию
solve,
которая решает системы линейных уравнений -
функцию
det,
которая вычисляет определитель матрицы -
функцию
matrix_power,
которая возводит матрицу в целочисленную степень