- •Тема 6.9. Системы линейных уравнений
- •6.9.1. Постановка задачи
- •6.9.2. Метод Гаусса
- •6.9.3. Метод итераций
- •6.9.4. Метод Зейделя
- •6.9.5. Метод прогонки
- •6.9.6. Технология решения систем линейных уравнений средствами математических пакетов
- •6.9.6.1. Технология решения систем линейных уравнений средствами MathCad
- •6.9.6.2. Технология решения систем линейных уравнений в среде MatLab
- •6.9.7. Тестовые задания по теме «Системы линейных уравнений»
- •Тема 6.9. Системы линейных уравнений Страница 187
6.9.5. Метод прогонки
При преобразовании системы 6.9.1-1 к треугольному виду получаем следующую систему:
(6.9.5-1)
-
элементы главной диагонали (
);
- элементы над главной диагональю;
-
элементы под главной диагональю.
Метод прогонки состоит из двух этапов:
прямая прогонка,
обратная прогонка.
С
помощью прогоночных коэффициентов
и
выражаем
,
,
(6.9.5-2)
Рекуррентная формула для любого номера i =2,3,...,n-1
(6.9.5-3)
Обратная прогонка состоит в последовательном вычислении
далее
.
Доказано,
что при выполнении условия
причем хотя бы для одного значения i,
имеет место строгое неравенство, система
имеет единственное решение.
Замечания:
условие является достаточным условием устойчивости метода прогонки относительно погрешности округления;
метод прогонки позволяет решать большие системы уравнений.
Схема алгоритма решения систем линейных уравнений методом прогонки приведена на рис. 6.9.5-1.
Рис. 6.9.5-1. Схема алгоритма метода прогонки
6.9.6. Технология решения систем линейных уравнений средствами математических пакетов
6.9.6.1. Технология решения систем линейных уравнений средствами MathCad
В пакете Mathcad системы линейных уравнений решаются с использованием вычислительного блока Given и функции Find. Однако в том случае, когда система линейных уравнений невырождена, то есть ее определитель отличен от нуля, более изящным (хотя и не самым эффективным с точки зрения вычислительной математики) является матричный способ решения.
Пример 6.9.6-1. Решить линейную систему уравнений.
Пример 6.9.6-2. Решить линейную систему уравнений с помощью встроенной функции lsolve( ).
При условии, что заданы матрицы коэффициентов и свободных членов, решение может быть получено следующим образом:
Если система линейных уравнений не имеет точного решения, то вместо функции Find(x,y) следует использовать функцию Minner(x,y), позволяющую получить приближенное решение системы. При этом если точное решение существует, то функции Find( ) и Minner( ) дают одинаковые результаты.
Пример 6.9.6-3. Решить линейную систему уравнений с помощью встроенных функций Find( ) и Minner( ).
Наряду
с использованием встроенных функций
пользователь может самостоятельно
реализовать численный метод решения
системы линейных уравнений, например,
метод итераций. Для этого исходную
систему уравнений
следует
привести к виду:
.
В методе итераций последовательность
приближений к решению определяется
соотношением
,
гдеk=0,1,
..(n-1),
а (n-1)
–
количество неизвестных. В качестве
начального приближения может быть
выбран любой вектор. Известно, что метод
итераций сходится, если для нормы матрицы
выполнено условие
.
Пример 6.9.5-4. В данном примере справа от уравнений указаны преобразования, которые выполнены с целью обеспечения сходимости.

Приведем полученную систему уравнений к виду, удобному для итераций:

Норма матрицы, состоящая из сумм модулей коэффициентов при неизвестных в правых частях уравнения, равна {0.53; 0.75; 0.57}=0.75<1.
Для вычисления используем следующую итеративную формулу метода итераций:
.
Выбрав в качестве начальных приближений значения свободных членов, выполним 3 итерации, обеспечив точность результатов 0.01.
-


1-я итерация

2-я итерация

3-я итерация







