О программной реализации методов прогонки и наименьших квадратов
Автор: Бабенко А.А., Свиридова И.В., Петрова А.А., Пенькова А.Е.
Журнал: Теория и практика современной науки @modern-j
Рубрика: Основной раздел
Статья в выпуске: 12 (30), 2017 года.
Бесплатный доступ
В статье рассмотрены вопросы систем линейных алгебраических уравнений с точки зрения точности и быстродействия. В данном случае будут сравниваться два метода решения систем линейных уравнений - метод прогонки и метод наименьших квадратов. Данная программа была реализована для упрощения произведения математических расчетов.
Система, линейные уравнения, методы решения систем
Короткий адрес: https://sciup.org/140270546
IDR: 140270546
Текст научной статьи О программной реализации методов прогонки и наименьших квадратов
Система линейных алгебраических уравнений (СЛАУ) — система уравнений, каждое уравнение в которой является линейным — алгебраическим уравнением первой степени.
В классическом варианте коэффициенты при переменных, свободные члены и неизвестные считаются вещественными числами, но все методы и результаты сохраняются (либо естественным образом обобщаются) на случай любых полей, например, комплексных чисел.
Решение СЛАУ — одна из классических задач линейной алгебры, во многом определившая её объекты и методы. В настоящее время решение СЛАУ является одной из основных задач вычислительной линейной алгебры. Большая часть данных методов различна (в особенности нелинейных) и включает в себя решение СЛАУ как простейшего шага используемого алгоритма.
В данной работе будет рассмотрен и проведен сравнительный анализ методов SVD и прогонки с точки зрения точности и быстродействия.
Метод сингулярного разложения (иначе метод SVD) является удобным методом при работе с матрицами. Он показывает геометрическую структуру матрицы и позволяет наглядно представить имеющиеся данные. В свою очередь метод прогонки (иначе алгоритм Томаса) используется для решения СЛАУ трехдиагональных матриц. Данный алгоритм предполагает последовательное исключение неизвестных.
В качестве языка программирования для реализации алгоритма был выбран язык С++. В настоящее время С++ является мощным языком, который позволяет создавать программные продукты любого назначения и любого уровня сложности.
Определившись с выбором подходящего компьютера, можно приступить непосредственно к написанию самого программного обеспечения. В ходе данной работы было создано программное обеспечение, реализация которого представлена ниже.
Вначале работы с программным обеспечением открывается форма, требующая ввода размерности матрицы (рисунок 2).

Рисунок 2 – Форма, требующая ввода размерности матрицы
После ввода размерности матрицы необходимо последовательно ввести элементы заданной матрицы (рисунок 3).

Рисунок 3 – Форма, требующая ввода элементов матрицы
После ввода в форму элементов матрицы программа производит вычисление двумя методами. На рисунке 4 предоставлено решение матрицы методом SVD.

Рисунок 4 – Решение методом SVD
На рисунке 5 показано решение матрицы методом прогонки.

Рисунок 5 – Решение методом прогонки
Время расчета методом прогонки составляет 1,7 секунды, методом SVD – 1,5.
Анализируя результаты, полученные с помощью системы, можно сделать ряд следующих выводов:
Метод SVD (так же называемый метод наименьших квадратов) дает точное решение системы линейных алгебраических уравнений, однако требует перед своим применением ряда дополнительных преобразований – проверку на то, что количество строк в матрице больше количество столбцов.
Количество строк сильно зависит от матрицы исходной системы уравнений вида Ax=b. Чем больше количество строк в уравнении, тем больше времени потребуется программному обеспечению, чтобы найти корни данной системы.
На количество шагов во многом влияет начальное приближение. Чем оно ближе к точному решению, тем меньше потребуется шагов для сходимости метода.
В итоге можно сделать общий вывод: метод SVD (наименьших квадратов) является наиболее подходящим при решении системы линейных алгебраических уравнений, он в свою очередь является менее объемным и требует меньше времени для нахождения корней, чем метод прогонки.
Список литературы О программной реализации методов прогонки и наименьших квадратов
- М. Шлее. Qt 4.8. Профессиональное программирование на C. - СПб.: БХВ-Петербург, 2012. - с. 452
- Численное решение переопределенных СЛАУ. Метод наименьших квадратов. [Электронный ресурс] - Режим доступа http://www.intuit.ru/studies/courses/1012/168/lecture/4594
- Сингулярное разложение. [Электронный ресурс] - Режим доступа http://andrew.gibiansky.com/blog/mathematics/cool-linear-algebra-singular-valuedecomposition