Решение Ax = b через обратную матрицу
Зная обратную матрицу, систему $A\vec{x} = \vec{b}$ решают одной формулой — но на практике чаще выбирают метод Гаусса.
Решение через обратную: если $A$ обратима, то единственное решение системы $A\vec{x} = \vec{b}$ равно $\vec{x} = A^{-1}\vec{b}$.
Это самый прямой ответ на вопрос «какой вектор $A$ переводит в $\vec{b}$?». Раз $A$ — преобразование, то $A^{-1}$ его отменяет, и применив $A^{-1}$ к $\vec{b}$, мы откатываемся к исходному $\vec{x}$. Разберём формулу и поймём, почему численно всё же предпочитают Гаусса.
Вывод формулы
Умножим обе части $A\vec{x} = \vec{b}$ слева на $A^{-1}$:
$$A^{-1} A \vec{x} = A^{-1} \vec{b} \;\Longrightarrow\; I\vec{x} = A^{-1}\vec{b} \;\Longrightarrow\; \vec{x} = A^{-1}\vec{b}$$
Поскольку $A^{-1}A = I$, а $I\vec{x} = \vec{x}$, слева остаётся чистый $\vec{x}$. Формула элегантна и сразу даёт ответ через одно матрично-векторное умножение — если обратная уже известна.
def det2(M):
return M[0][0] * M[1][1] - M[0][1] * M[1][0]
def inv2(M):
d = det2(M)
a, b = M[0]; c, dd = M[1]
return [[dd / d, -b / d], [-c / d, a / d]]
def matvec(A, v):
return [sum(A[i][j] * v[j] for j in range(len(v)))
for i in range(len(A))]
# система: 2x + y = 5, x - y = 1
A = [[2, 1], [1, -1]]
b = [5, 1]
x = matvec(inv2(A), b)
print("x =", [round(v, 4) for v in x])Вывод:
x = [2.0, 1.0]
Тот же ответ, другой путь
Мы получили $\vec{x} = (2, 1)$ — ровно то решение, что в разделе про метод Гаусса. Два разных пути (исключение строк и умножение на обратную) приводят к одному ответу, потому что решение единственно, когда $\det A \neq 0$.
Как работает под капотом
Формула $\vec{x} = A^{-1}\vec{b}$ красива, но на практике вычислять обратную матрицу специально ради решения системы — расточительно и менее точно. Чтобы найти $A^{-1}$, нужно по сути решить $n$ систем (по одной на столбец $I$), тогда как метод Гаусса решает нужную систему сразу за один проход. Поэтому в численных библиотеках $A\vec{x} = \vec{b}$ решают разложениями (LU, опирающимся на тот же Гаусс), а обратную матрицу явно строят редко — в основном когда она нужна сама по себе. Тем не менее формула $\vec{x} = A^{-1}\vec{b}$ незаменима в теории: она доказывает существование и единственность решения для обратимых $A$.
Частые ошибки
- Умножать на обратную не с той стороны. Нужно $A^{-1}\vec{b}$ (слева), потому что $A^{-1}$ должна «встретиться» с $A$ в произведении $A^{-1}A$.
- Применять формулу к вырожденной $A$. Если $\det A = 0$, обратной нет — нужно анализировать ранг и совместность.
- Считать, что обратная матрица — самый эффективный способ решать системы. Для разовой системы Гаусс быстрее и устойчивее.
Итог
- Если $A$ обратима, то $\vec{x} = A^{-1}\vec{b}$ — единственное решение системы.
- Формула выводится умножением $A\vec{x} = \vec{b}$ слева на $A^{-1}$.
- Теоретически элегантно, но численно метод Гаусса/LU обычно предпочтительнее.
- Существование и единственность решения гарантированы при $\det A \neq 0$.