Metoda Gaussa - Seidela jest metodą iteracyjną i pozwala nam obliczyć układ n równań z n niewiadomymi Ax = b. Wektor xu będący początkowym przybliżeniem rozwiązania układu będzie dany (zwykle przyjmuje się go jako wektor złożony z samych zer). By zastosować tą metodę należy najpierw tak zamienić kolejność równań układu, aby na głównej przekątnej były elementy różne od zera Na początku macierz współczynników A rozłożymy na sumę trzech macierzy A = L + D + U, odzie L iest macierzą w której znajdują się elementy których numer wiersza iest większy od numeru kolumny. D to macierz diagonalna z elementami tylko na głównej przekątnej, a U to macierz, w której znajdują się elementy których numery wiersza są mniejsze od numerów kolumny. Można to zapisać następująco:
*1,2 |
... au |
n |
■ 0 |
0 ... |
0 ■ | ||
*2,1 |
*2,2 |
... ax |
n |
— |
*2,1 |
0 ... |
0 |
■an. 1 |
*«.2 |
- *«. |
n J |
■*o |
^:2 - |
0 . |
■ *1.1 |
0 |
... 0 ■ |
■ 0 |
Q\, 2 — Q\, n ' | |
0 |
*2,2 |
... 0 |
+ |
0 |
0 ... ax n |
. 0 |
0 |
••• an, nm |
. 0 |
0 ... 0 . |
Następnie obliczymy macierz odwrotną do macierzy D, czyli D'1. Otrzymamy ją po podniesieniu do potęgi -1 wszystkich wartości na głównej przekątnej macierzy.
Po tych operacjach możemy przystąpić już do iteracyjn obliczania kolejnych przybliżeń rozwiązania według następującego wzoru:
(indeksy n oznaczają tutaj numer iteracji)
PRZYKŁAD
Obliczymy następujący układ równań:
4xi - x2 - 0.2x3 + 2x4 = 30 -1x1 + 5x2 - 2x4 = 0 0.2x1 +x2 + 10x3 -x4 = -10
= b
‘ *i ' | |
x2 | |
x3 | |
• Xą i |
- 2x2 - x3 + 4x4 = 5 Zapiszmy go teraz w postaci Ax
4 |
-1 |
-0.2 |
2 |
-1 |
5 |
0 |
-2 |
0.2 |
1 |
10 |
-1 |
0 |
-2 |
-1 |
4 |
0
-10
Podzielmy teraz macierz A na sumę macierzy
L + D + U
■ |
4 |
-1 |
-0.2 |
2 |
■ |
■ 0 |
■— o o o | |||
-1 |
5 |
0 |
— |
2 |
-1 0 0 0 | |||||
0.2 |
1 |
10 |
— |
1 |
0.2 |
1 0 0 | ||||
. |
0 |
-2 |
-1 |
4 |
. 0 |
-2-1 0. | ||||
’ 4 |
0 |
0 |
o ■ |
0 |
-1 |
-0.2 2 |
■ | |||
+ |
0 |
5 |
0 |
0 |
+ |
0 |
0 |
o 1 K> | ||
0 |
0 |
10 |
0 |
0 |
0 |
0 -1 | ||||
. 0 |
0 |
0 |
4 . |
0 |
0 |
0 0 |
Obliczmy teraz macierz D'1
" |
7.5 ' |
0 |
0 |
0 |
0 ' | |||
0 |
-0.2 |
0 |
0 |
0 | ||||
-1 |
0.02 |
0.1 |
0 |
0 | ||||
a |
1.25 . |
0 |
-0.5 |
-0.25 |
0 . | |||
• 0 - |
0.25 -0.05 |
0.5 ' | ||||||
:> |
0 |
0 |
0 |
-0.4 | ||||
0 |
0 |
0 |
-0.1 | |||||
. 0 |
0 |
0 |
0 . |
Rozpoczynamy od zerowego przybliżenia czyli
’4 |
0 |
0 |
0 ■ |
■0.25 |
0 |
0 |
0 ■ |
-1 | |
0 |
5 |
0 |
0 |
0 |
0.2 |
0 |
0 | ||
0 |
0 |
10 |
0 |
0 |
0 |
0.1 |
0 | ||
.0 |
0 |
0 |
4 . |
4 . |
. 0 _ 4 . _ |
0 4 . _ |
0 |
0.25. |
A teraz kolejno D'7ó, D'7Z_, D'7U
= 0, x2° = 0, x3° = 0, x4° = 0
Obliczmy pierwszą iterację metody, według przytoczonego na początku wzoru:
x11 = 7,5 + 0,25X2° + 0,05x3° - 0,5x4°
Xi1 = 7,5 x21 =0 + 0,2x11 + 0,4x4°
*2 = 1,5
x31 = -1 - 0,02x11 - 0,1x21 + 0,1x4° x31 =-1,30
x41 = 1,25 + 0,5x2 + 0,25x31 x41 = 1,675 Kolejna iteracja
x12 = 7,5 + 0,25x21 + 0,05x3 - 0,5x4 ’ x2 = 6,9725 x2 = 0 + 0,2x2 + 0,4x41 x22 = 2,0645
x 2 = -1 - 0,02x 2 - 0,1x22 + 0,1x41 x32 =-1,1784
x 2 = 1,25 + 0,5x2 + 0,25x32 x42 = 1,98765
Można teraz obliczyć kolejną iterację.
Każda z nich przybliża nas do dokładnego wyniku.