В математике обратная матрица — это величина, обратная числу. Обратная матрица идентична, но мы пишем ее A^-1. Когда мы умножаем число на его обратное число, мы получаем 1.
Зачем нужна инверсия?
Нам нужна обратная матрица, потому что матрицы мы не делим! Понятия деления на матрицу не существует. Но мы можем умножить на обратное, чтобы получить то же самое. Итак, давайте посмотрим, как инвертировать матрицу numpy в Python.
Что такое функция np.linalg.inv() в Python?
np.linalg.inv() в Python — это библиотечная функция numpy, которая вычисляет обратную (мультипликативную) матрицу.
Она также определяется как сформированная матрица, которая дает единичную матрицу при умножении на исходную матрицу. Обратная матрица возникает только в том случае, если это невырожденная матрица, т. е. определитель матрицы должен быть равен 0.
Уравнение для получения обратной матрицы
|
1 2 3 |
A*x= B A^-1 A*x= A-1 B x= A-1 B |
- Где A^-1: обозначает обратную матрицу.
- x: обозначает неизвестный столбец.
- B: обозначает матрицу решения.
Теперь давайте посмотрим, как использовать Numpy для поиска обратной матрицы.
Синтаксис
|
1 |
numpy.linalg.inv(A) |
Параметры
A: Это означает, что Матрица должна быть инвертирована.
Возвращаемое значение
Возвращается обратная матрица A.
Примечание.
Функция inv() вызывает LinAlgError, если A не является квадратной матрицей, поскольку, если A не является квадратной матрицей, инверсия завершается ошибкой.
Примеры
Инверсия матрицы 4*4
|
1 2 3 4 5 6 7 8 |
import numpy as np A = np.array([[-5, -2, 3, 4], [3, 1, 2, 7], [2, 7, -5, 2], [6, -6, 8, 4]]) print(np.linalg.inv(A)) |
Выход
|
1 2 3 4 |
[[-0.19186047 0.1627907 -0.11046512 -0.0377907 ] [ 0.64534884 -1.09302326 1.09883721 0.71802326] [ 0.73837209 -1.23255814 1.12209302 0.85755814] [-0.22093023 0.58139535 -0.43023256 -0.33139535]] |
Объяснение
Здесь на вход функции была дана матрица, а на выходе была возвращена обратная матрица.
Вычисление инверсий нескольких матриц
|
1 2 3 4 5 6 |
import numpy as np A = np.array([[[3., 4.], [4., 5.]], [[6, 7], [7, 9]]]) print(np.linalg.inv(A)) |
Выход
|
1 2 3 4 5 |
[[[-5. 4. ] [ 4. -3. ]] [[ 1.8 -1.4] [-1.4 1.2]]] |
Объяснение
Здесь мы дали несколько матриц на вход функции, после чего на выходе была возвращена обратная матрица.
