Обратная матрица методом Гаусса
Как найти обратную матрицу методом Гаусса: расширение [A|E], элементарные преобразования строк до [E|A⁻¹], разбор примера 3×3 с целым ответом и сравнение с методом дополнений.
Пример, разобранный на этой странице
Ответ:
Записали матрицу, дописали справа единичную — и элементарными преобразованиями строк превратили левый блок в единичную матрицу. Справа при этом сама собой соберётся обратная: . Метод Жордана–Гаусса, он же способ присоединённой матрицы, выигрывает у дополнений уже на размере . Конкретную матрицу посчитает решатель обратной матрицы, а здесь — механика руками.
Идея метода одной строкой#
Почему это работает: каждое элементарное преобразование строк — умножение слева на некоторую обратимую матрицу . Если цепочка преобразований перевела в , то , а значит, . Правый блок за то же время превращается из в . Никакой магии — просто два счёта в одном бланке.
Есть и второй взгляд: обращение матрицы — это решение систем сразу. Столбцы правого блока — правые части систем , и Гаусс решает их параллельно, поскольку прямой ход у всех общий. Отсюда и экономия: один прогон вместо отдельных.
Алгоритм: шесть шагов#
- Припишите к справа единичную матрицу того же размера: получите блочную запись .
- Прямой ход: обнуляйте элементы под главной диагональю левого блока. Ведущий элемент оказался нулём — переставьте строки.
- Нормируйте строки: делите каждую так, чтобы на диагонали левого блока стояли единицы.
- Обратный ход: обнулите элементы над диагональю вычитанием уже готовых строк.
- Левый блок стал единичным — прочитайте из правого блока.
- Проверьте умножением: обязана дать .
Разбор флагманского примера#
Обращаем . Дописываем единичную и вычитаем первую строку из второй и третьей, затем из третьей вычитаем удвоенную вторую:
Обратный ход поднимаем снизу вверх: из второй строки вычитаем удвоенную третью, из первой — третью, затем из первой — вторую. Левый блок превращается в , и справа проявляется ответ:
Умножение на полученную матрицу возвращает — проверено. Целые числа вышли не случайно: исходный определитель равен единице, поэтому и обратная оказалась целочисленной. Выбирайте такие тренировочные матрицы сами — счёт идёт чище и ошибка виднее.
Гаусс или Жордан: два прохода или один#
Классический вариант — два прохода: сначала нули под диагональю, потом над. Жорданов — один: строкой с ведущим элементом обнуляйте всё и сверху, и снизу сразу. Арифметики за шаг больше, зато промежуточных бланков меньше. Для разница невелика — выбирайте то, что требует меньше переписывания. Потренировать саму механику строк можно на степпере:
Дроби, ведущие элементы и диагноз det = 0#
Промежуточные дроби появляются, когда ведущий элемент не делит соседей нацело. Две меры предосторожности: переставляйте строки так, чтобы ведущим становился элемент попроще, и не спешите нормировать — иногда выгоднее вычесть «нужное количество раз» и только потом делить. Если же в левом блоке всплыла нулевая строка, останавливайтесь: ранг меньше размера, , обратной не существует. Метод сам ставит диагноз, не требуя считать определитель отдельно — в этом его тихое преимущество перед дополнениями.
Три типовые ошибки#
- Трогать столбцы. Перестановка или сложение столбцов меняет саму матрицу так, что правый блок теряет смысл: работаем только со строками.
- Преобразовать левый блок и забыть правый. Правая половина живёт той же жизнью: каждое вычитание и нормировка применяются ко всей строке целиком.
- Остановиться на ступенчатом виде. Треугольник нулей под диагональю — ещё не : без обратного хода справа будет недоделка, а не обратная матрица.
После прямого хода в левом блоке появилась нулевая строка. Что это значит?
Какие операции допустимы при обращении ?