Введите матрицу, откройте вкладку Дополнительно и нажмите A⁻¹. Если матрица вырожденная, вы получите понятное сообщение вместо неверного ответа. Панель пошагового решения показывает промежуточные значения точными дробями — 3/5, а не 0,6000000001 — потому что работает в рациональной арифметике, а не в плавающей точке.
Когда обратная существует
Обратная A⁻¹ — это матрица, которая отменяет исходную: A·A⁻¹ = A⁻¹·A = I. Она существует только для квадратных матриц и только когда определитель отличен от нуля. Матрицу с нулевым определителем называют вырожденной, и обратной у неё нет вовсе — ни большой, ни приближённой, никакой. Преобразование уничтожило информацию, и никакая матрица её не вернёт.
Короткая формула для 2×2
Поменяйте местами главную диагональ, смените знак у побочной, поделите на определитель:
| a | b |
| c | d |
| d | −b |
| −c | a |
Деление на ad − bc — то место, где вырожденность заявляет о себе: если определитель равен нулю, делить не на что, и формула ломается ровно тогда, когда обратная перестаёт существовать.
Гаусс-Жордан на расширенной матрице
Это общий метод и именно его калькулятор показывает по шагам. Запишите A рядом с единичной матрицей и выполняйте преобразования строк, пока левая половина не станет единичной. То, во что превратилась правая половина, и есть A⁻¹:
| 4 | 7 | 1 | 0 |
| 2 | 6 | 0 | 1 |
| 1 | 0 | 3/5 | −7/10 |
| 0 | 1 | −1/5 | 2/5 |
Если в какой-то момент строка слева станет полностью нулевой, остановитесь: матрица вырожденная и обратной нет. Всегда проверяйте умножением — A·A⁻¹ должно дать в точности единичную матрицу, и кнопка A × B выполняет эту проверку в два клика.
Загруженная выше матрица 3×3 даёт целые числа, потому что её определитель равен ровно −1:
| 2 | 1 | 1 |
| 1 | 3 | 2 |
| 1 | 0 | 0 |
| 0 | 0 | 1 |
| −2 | 1 | 3 |
| 3 | −1 | −5 |
Посмотрите на последнюю строку исходной матрицы: она выбирает первую координату и отбрасывает две другие. Обратная обязана вернуть эту информацию, поэтому её элементы велики по сравнению с элементами обращаемой матрицы. Это общая закономерность: чем ближе определитель к нулю, тем больше обратная, ведь det(A⁻¹) = 1/det(A).
Формула через присоединённую матрицу
A⁻¹ = adj(A) / det(A), где присоединённая — это транспонированная матрица алгебраических дополнений. Постройте матрицу дополнений C(i,j) = (−1)^(i+j)·M(i,j), транспонируйте её и поделите на определитель.
Формула изящна, и именно её используют доказательства, потому что она выражает обратную в замкнутом виде, а не как результат алгоритма. Она же непрактична: нужно n² определителей порядка n−1. Начиная с 4×4 берите Гаусса-Жордана.
Почти вырожденная — уже проблема
Матрице не обязательно быть вырожденной, чтобы доставить хлопот. Если определитель просто мал по сравнению с величиной элементов, матрица плохо обусловлена: крошечное изменение входа даёт огромное изменение обратной, а в плавающей точке таким изменением может оказаться чистая ошибка округления. Решение системы через такую обратную способно вернуть ответ, в котором нет ни одной верной цифры и который при этом выглядит вполне правдоподобно.
Это практическая причина совета ниже. Панель пошагового решения обходит проблему целиком, работая в точных дробях: то, что вы читаете, — настоящая обратная, а не её приближение с плавающей точкой.
Почему сама обратная нужна редко
Чаще всего цель не обратная матрица, а решение Ax = b, и обратная — просто путь, запомнившийся с занятий. Путь дорогой. Вычислить A⁻¹ и затем умножить стоит примерно втрое больше арифметики, чем прямое приведение [A | b], и теряет точность на двух этапах вместо одного.
Своё место обратная занимает там, где нужна сама матрица, а не одно решение: чтобы прочитать, как каждый вход влияет на каждый выход, чтобы скомпоновать её с другими преобразованиями или подставить в формулу, записанную через A⁻¹. Если вам нужен только x, берите приведение к ступенчатому виду; если нужно много решений для одной и той же A — берите LU-разложение, оно ещё дешевле.
Частые ошибки
- Обращать элементы по одному. Обратная — это не матрица обратных величин:
1/a(i,j)не имеет к ней отношения. - Путать порядок.
(A·B)⁻¹ = B⁻¹·A⁻¹, а неA⁻¹·B⁻¹. - Решать системы через обратную. Для
Ax = bприведение[A | b]требует меньше операций и точнее численно. - Использовать присоединённую матрицу на больших матрицах. Ей нужно
n²определителей порядкаn−1. Начиная с 4×4 это гораздо медленнее приведения. - Путать обратную с транспонированной. Они совпадают только у ортогональных матриц. В общем случае между ними нет связи.