Почему компьютер не решает Ax=b через обратную матрицу
Есть такая классическая линаловая задача: дана система линейных уравнений, надо найти неизвестные. В компактной матричной записи она выглядит так:
Ax = b
Решение через обратную матрицу тоже понятное, почти по-школьному:
x = A⁻¹b
В целом понятно, но будет ли ~мистер кланкер~ компьютер именно так считать? Вообще нет!
Обратная матрица тут как из пушки по воробьям, это как я например в незнакомом здании смотрю где расположены ближайшие туалеты не по указателям а по плану эвакуации всего здания (и иногда вместо туалета прихожу к коморкам для уборки). Но это потому что план обычно уже есть, а представляете что если бы каждый раз когда надо было найти туалет приходилось бы сначала строить подобный инженерно-архитектурный план? Ну бред же
Найти A⁻¹ компьютеру фактически сложно, для этого приходится решить сразу целую пачку систем уравнений. Но прикол в том что нам нужна только одна с конкретной правой частью b. Поэтому, на практике применяют исключение Гаусса ну или раскладывают матрицу на более удобные кусочки (тот же A = LU) а потом последовательно решают две простые системы
Таким образом в стиле "карта не территория" формула x = A⁻¹b отвечает на математический вопрос что является решением?, но не на практчиеский "как это решение лучше посчитать?". За это отчасти я и люблю грязную вычислительную математику: одинаковый ответ можно получить разными маршрутами, но один съест меньше времени, другой меньше памяти, но нам нужен третий, который ещё и не развалится от ошибок округления (арифметика с такими числами умеет накапливать ошибку, а мы не любим когда такое происходит). А ещё явное вычисление обратной матрицы добавляет лишние операции, а значит и лишние возможности эту ошибку раздуть. Если для учебной матрицы разницу можно не заметить, то у большой задачи будет своё мнение на этот счёт. Слышали какие там матрицы вращают все эти ЛЛМ? Вот то-то
На первом курсе а у некоторых менее везучих ещё и на последних классах школы, матрицы часто подаются как странные таблицы, которые надо практически ритуально перемножать. Это нормально, надо же сначала набить руку, но потом выясняется, что за выбором одного матричного действия вместо другого стоят время вычислений, устройство компьютерной памяти да и вопрос, можно ли вообще доверять полученному числу.
В общем, обратная матрица это прекрасный математический объект и ужасный список инструкций. формула верная, способ подозрительный 🏴☠️
Как обычно, я это вёл к другой мысли но по пути не смог не поддаться искушению уточнить какую-то параллельную мысль, так что stay tuned, я вспомню и продолжу