- •Системы линейных уравнений Элементы теории линейных векторных пространств Понятие вектора
- •Операции над векторами Сложение векторов:
- •Умножение вектора на константу
- •Скалярное произведение двух векторов
- •Элементы матричной алгебры Основные определения
- •Виды матриц
- •Операции над матрицами
- •Числовые характеристики матрицы Норма матрицы
- •Определитель матрицы
- •Ранг матрицы, минор, алгебраические дополнения
- •Методы обращения матрицы Метод Крамера
- •Метод Гаусса-Жордана
- •Системы линейных алгебраических уравнений (слау)
- •Классификация слау
- •Условия совместности и определенности систем
- •Обусловленность слау
- •О методах решения линейных систем
- •Метод Гаусса
- •Блок-схема метода Гаусса
- •Итерационные методы решения слау
- •Метод простой итерации Приведение системы к итерационной форме
- •Оценка сходимости решения
- •Выполнение итерации
- •Проверка условия окончания решения
- •Метод Гаусса-Зейделя
- •Уточнение решения
Метод Гаусса-Зейделя
Этот
метод является модификацией метода
простой итерации. Стратегия этого метода
отличается тем, что при расчете элементов
вектора
наряду с элементами предыдущего
приближения
учитываются
также и элементы, которые уже определены
на данной итерации
.
Расчетная формула метода
![]()
Пример. Решить ту же СЛАУ методом Гаусса-Зейделя.
x1 = -0.1111*x2 - 0.3333*x3 +2.2222 = -0.1111*3.0000 - 0.3333*4.2000+2.2222 = 0.4889
x2 = -0.1428*x1 - 0.2857*x3 + 3.000 = -0.1428*0.4889 - 0.2857*4.2000 + 3.0000 = 1.7302
x3 = -0.4000*x1 - 0.4000*x2 + 4.200 = -0.4000*0.4889 - 0.4000*1.7302 + 4.2000 = 3.3124
Остальные итерации выполняются аналогично:
|
Итерация |
х1 |
х2 |
х3 |
Норма |
|
2 |
0.9258 |
1.9213 |
3.0611 |
0.5391 |
|
3 |
0.9884 |
1.9842 |
3.0110 |
0.1018 |
Обычно метод Зейделя дает лучшую сходимость, чем метод простой итерации, но он приводит к более громоздким вычислениям. Процесс Зейделя может сходиться даже в том случае, если расходится процесс итерации. Однако это бывает не всегда. Возможны случаи, когда процесс Зейделя сходится медленнее процесса итерации. Более того, могут быть случаи, когда процесс итерации сходится, а процесс Зейделя расходится.
Уточнение решения
Полученные решения могут содержать погрешности, вызванные округлениями при выполнении операций над числами с плавающей точкой на ЭВМ с ограниченным числом разрядов. В ряде случаев эти погрешности могут быть значительными, и необходимо найти способ их уменьшения.
Пусть имеется система уравнений
a11x1 + a12x2 + … + a1nxn = b1
a21x1 + a22x2 + … + a2nxn = b2
… … … … …
an1x1 + an2x2 + … + annxn = bn
и с помощью некоторого метода вычислены приближенные значения неизвестных:
x1(0) , x2(0) , … , xn(0) .
Подставляя эти решения в левые части исходной системы получаем некоторые значения bi(0), отличные от bi (i=1, 2, … , n):
a11x1(0) + a12x2(0) + … + a1nxn(0) = b1(0)
a21x1(0) + a22x2(0) + … + a2nxn(0) = b2(0)
… … … … …
an1x1(0) + an2x2(0) + … + annxn(0) = bn(0)
Введем обозначения:
Dxi(0) - погрешности значений неизвестных, т.е. Dx i(0) = xi - xi(0) и
Dbi(0) - невязки, т.е. Db i(0) = bi - bi(0) .
Тогда, вычитая из исходной системы уравнений вторую, с учетом введенных обозначений легко получить:
a11Dx 1(0) + a12Dx 2(0) + … + a1nDx n(0) = Db 1(0)
a21Dx 1(0) + a22Dx 2(0) + … + a2nDx n(0) = Db 2(0)
… … … … …
an1Dx 1(0) + an2Dx 2(0) + … + annDx n(0) = Db n(0)
Решая эту систему, находим значения погрешностей Dx i(0), которые можно использовать в качестве поправок к решению. Следующие приближения неизвестных имеют вид:
x1(1) = x1(0) + Dx 1(0)
x2(1) = x2(0) + Dx 2(0)
… … …
xn(1) = xn(0) + Dx n(0)
Таким же способом можно найти новые поправки к решению Dx i(1) и следующие приближения неизвестных xi(2) = xi(1) + Dx i(1) и т.д. Процесс продолжается до тех пор, пока все очередные значения погрешностей (поправок) Dx i не станут достаточно малыми.
Можно заметить, что этот процесс фактически представляет собой итерационный метод решения системы линейных уравнений. При этом на каждой итерации решается система уравнений с одной и той же матрицей, являющейся матрицей исходной системы, но при разных правых частях.
Пример. Пусть при решении СЛАУ
10х1 - 7х2 = 7
-3х1 + 2.099х2 + 6х3 = 3.901
5х1 - х2 + 5х3 = 6
были найдены решения х1 = -1, х2 = 2, х3 = 0. Уточнить найденное решение.
Подставляем найденные значения в левые части системы:
10*(-1) - 7*2 = -24
-3*(-1) + 2.099*2 + 6*0 = 7.198
5*(-1) - 2 + 5*0 = -7
Тогда вектор невязок равен
Db1(0) = b1 - b1(0) .= 7 - (-24) = 31
Db 2(0) = b2 - b2(0) .= 3.901 - 7.198 = - 3.297
Db 3(0) = b3 - b3(0) .= 6 - (-7) = 13 .
Значит необходимо решить систему:
10Dх1 - 7Dх2 = 31
-3Dх1 + 2.099Dх2 + 6Dх3 = -3.297
5Dх1 - Dх2 + 5Dх3 = 13
После ее решения (используя выбор главного элемента), получаем
Dх3 = 1
Dх2 =-3
Dх1 = 1
Тогда
x1(1) = x1(0) + Dx 1(0) = -1 + 1 = 0
x2(1) = x2(0) + Dx 2(0) = 2 + (-3) = -1
x3(1) = x3(0) + Dx 3(0) = 0 + 1 = 1
Таким образом, после первой же итерации уточнения, было найдено точное решение.
