Курсовая работа: Разработка программы для решения систем линейных уравнений
Курсовая работа носит учебный характер. В ходе её программист реализовал имеющиеся знания из курса линейной алгебры по решению СЛАУ в программной интерпретации на языке программирования С. А знание компьютера и наличие опыта в программировании в наше время особенно приветствуется в фирмах, работающих в сфере информационных технологий.
1 Анализ задания и выбор метода решения
1.1 Анализ задания
В соответствии с заданием на курсовую работу необходимо разработать программу для решения СЛАУ методом простых итераций и методом Зейделя. Предусмотреть ввод числа уравнений, матрицы коэффициентов и вектора свободных членов, а также вывод вектора решений на экран.
Для удобства тестирования программа должна обладать понятным и логичным интерфейсом, рассчитанным на неопытного пользователя.
1.2 Выбор метода решения
В соответствии с заданием на курсовую работу в программе реализованы итерационные методы: простых итераций и Зейделя.
Пусть ищется решение невырожденной системы уравнений[1]
.
(1)
Первым шагом в итерационном методе является преобразование исходной системы к виду[1]
,
(2)
где матрицы С, В и вектор d определяются по матрицы А и вектору b. Причём системы (1) и (2) являются эквивалентными, т.е. их решения совпадают, а построение обратной матрицы С-1 проще, чем А-1. [1]
Вторым шагом является расстановка индексов или номеров приближений в (2) и задание нулевого приближения. Например,
(3)
где - заданный вектор [1]
Третьим шагом итерационного метода является обоснование сходимости последовательных приближений , полученных из (3), к точному решению х системы и оценка погрешности k-го приближения[1]
(4)
Оценка (4) при заданном позволяет остановить итерационный про-цесс (3). [1]
Различные итерационные методы отличаются первыми двумя шагами, а выбор конкретного метода должен производиться на основании оценки(4). [1]
1.2.1 Метод простых итераций
В методе простых итераций матрица С (2) выбирается единичной: С=Е. Итерационный процесс описывается формулой
(5)
где - заданный вектор. [1]
1.2.2 Метод Зейделя
Отличие метода Зейделя от простой итерации состоит лишь в том, что при вычислении (k+1)-го приближения полученные компоненты вектора сразу же используются в вычислениях. В матричной записи это можно представить так:
где матрицы U и L получены разложением В в сумму:
матрица U – верхняя треугольная часть B, включая диагональ; L – нижняя поддиагональная часть В. [1]