Pull to refresh

Comments 4

Наверное, минуснул бы, если бы мог.


Ответ на вопрос в заголовке не требует статьи. "Потому что он самый простой и понятный".


А вот упомянув другие методы — вы вообще не сказали, зачем они нужны, раз есть такой чудесный метод Гаусса. Не упомянули его недостатки, из-за которых эти методы приходится искать (проблема накопления погрешности при плохо обусловленной матрице и иногда даже при нормальной; сложность выбора ведущего элемента). Не сказали, в каких условиях какой метод нужен. Много букв ни о чём.

Давным давно в далекой галактике одном научном институте пришлось мне программировать решение системы линейных уравнений как небольшую и (как тогда казалось) тривиальную часть другой задачи.
Но почему-то метод Крамера, который я быстренько написал, давал совершенно идиотские результаты — подстановка решения в систему не давало нулей справа. Оказалось — всего лишь матрица была слабо обусловленной.

Мой научный руководитель предложил посмотреть библиотеку математических методов и поискать там. Так вот, в библиотек оказалось несколько десятков уже запрограммированных методов. Каждый — наилучшим образом подходящий для решения систем с какими-то определенными свойствами.

Это я к тому, что задача решения систем линейных уравнений не так проста, как кажется на первый взгляд. И проблем там на пару порядков больше, чем упомянуто в этой статье. И выбор правильного метода — это не «кому какой нравится», а сначала анализ своей системы уравнений, и уже на основе этого анализа подбор метода, который даст хороший результат именно в этом случае. Выбор же неправильного метода приведет к тому, что решение будет просто неправильным.

В общем, это не про программирование, а, скорее, про математику. В общем, тема не так, чтобы раскрыта :-)
Итерационные алгоритмы практичнее, они эффективны по памяти и работают на больших и очень больших (разреженных) матрицах. Гаусс не выдерживает большого количества переменных. Крамер тем более. Управлять погрешностями тоже непросто. Сложнее распараллеливается. Так что правильнее говорить: «почему НЕ Гаусс?».

На сколько мне известно для численного решения СЛАУ используется LU-разложение, что открывает дополнительные возможности помимо решения СЛАУ
Если вкратце, то, матрицу можно представить как произведение нижней треугольной матрицы L и верхней треугольной матрицы U (A=LU) то и решение СЛАУ можно выразить из Ax=b в LUx=b, что можно представить в виде системы Ly=b и Ux=y, это если не вдаваться в подробности откуда взялась последняя система

Sign up to leave a comment.

Articles