Analiza matematyczna równań modelujących plazmę w silniku ...
Układ Liniowych Równań Algebraicznych - Ogłoszeniamichal/pdfy/Metody11.pdf · to zamiast...
Transcript of Układ Liniowych Równań Algebraicznych - Ogłoszeniamichal/pdfy/Metody11.pdf · to zamiast...
Michał Pazdanowski Instytut Technologii Informacyjnych w Inżynierii Lądowej
Wydział Inżynierii Lądowej Politechnika Krakowska
1
Układ Liniowych Równań Algebraicznych Z liniowym układem równań algebraicznych mamy do czynienia w sytuacji, gdy wszystkie zmien-ne występujące w równaniach układu występują jedynie w pierwszej potędze; można go skrótowo zapisać przy pomocy następującego wzoru:
midxan
jijij , ... ,3,2,1 ,
1==⋅∑
=..., (1)
w którym oznaczono odpowiednio:
ija - elementy macierzy głównej układu,
jx - elementy wektora niewiadomych,
id - elementy wektora prawej strony.
W zależności od proporcji liczby liniowo niezależnych równań m do liczby występujących w nich zmiennych n , możemy mieć do czynienia z trzema sytuacjami:
1. nm > - nadokreślony układ równań, 2. nm = - oznaczony układ równań, 3. nm < - niedookreślony układ równań.
W dalszej części tego rozdziału zajmiemy się przypadkiem drugim z wymienionych powyżej, czyli oznaczonym układem równań. Dla układu równań liniowych, w którym liczba zmiennych n jest równa liczbie równań m warunek liniowej niezależności jest równoważny żądaniu by macierz główna układu A , o elementach ija , miała wyznacznik różny od zera ( 0)det( ≠A ). W takiej sytu-acji układ równań (1) ma jedno i tylko jedno rozwiązanie. Poniżej omówimy podstawowe metody jego znajdowania. Metody te możemy podzielić na dwie kategorie:
1. metody eliminacyjne, do których zaliczamy: • metodę eliminacji Gaussa, • metodę rozkładu L U, • metodę Choleskiego - Banachiewicza;
2. metody iteracyjne, do których należą: • metoda Jacobiego, • metoda Gaussa – Seidla.
Do zalet metod eliminacyjnych należą między innymi łatwość rozwiązywania układu równań z wie-loma prawymi stronami (sytuacja często występująca w praktyce), możliwość precyzyjnego osza-cowania czasu obliczeń na podstawie rozmiaru zadania czy wreszcie gwarancja uzyskania wyniku po wykonaniu możliwej do określenia z góry liczby operacji. Zaletą metod iteracyjnych jest prosto-ta algorytmu i niewielkie zapotrzebowanie na pamięć operacyjną w trakcie obliczeń. Wszystkie te metody zostaną przedstawione poniżej w najbardziej podstawowej wersji, pomimo że każda z nich ma wiele wariantów dostosowanych np. do szczególnych postaci macierzy A .
Metoda eliminacji Gaussa Z układu równań (1), który w postaci macierzowej możemy krótko zapisać jako:
DXA =⋅ , (2)
gdzie:
Michał Pazdanowski Instytut Technologii Informacyjnych w Inżynierii Lądowej
Wydział Inżynierii Lądowej Politechnika Krakowska
2
⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢
⎣
⎡
=
mnmjm
iniji
nj
aaa
aaa
aaa
A
LLMMM
LLMMM
LL
1
1
1111
,
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=
n
i
x
x
x
XM
M1
,
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=
n
i
d
d
d
DM
M1
. (3)
uwzględniając fakt, że nm = , tworzymy tablicę (4), którą następnie równoważnie przekształcamy tak, aby doprowadzić ją do postaci trójkątnej górnej (5). Operację tę nazywamy krokiem w przód.
→
↓
⎥⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢⎢
⎣
⎡k
nnnnknin
jjnjkjij
iinikiii
nki
j
daaaa
daaaa
daaaa
daaaa
LLLMMMMM
LLLMMMMM
LLLMMMMM
LLL
1
1
1
111111
, (4)
⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢
⎣
⎡
nnn
iinii
ni
da
daa
daaa
LLMMMM
LLMMMM
LL
00
0
11111
. (5)
Przekształcenia prowadzimy korzystając z faktu, że: • przestawienie dwóch wierszy, • przemnożenie wszystkich elementów wiersza przez tę samą liczbę, • dodanie do elementów jednego wiersza odpowiednio elementów innego wiersza, • dodanie do elementów jednego wiersza odpowiednio kombinacji liniowej elementów in-
nych wierszy,
przekształcają tablicę równoważnie, czyli w sposób nie zmieniający rozwiązania układu równań.
Obliczenia rozpoczynamy od pierwszej kolumny tablicy (4). Naszym celem jest takie przekształce-nie wierszy tej tablicy o numerach mj ,...,2= , aby w pierwszej kolumnie pojawiło się w nich zero. W tym celu dla każdego wiersza j wyznaczamy mnożnik 1111 aam jj −= a następnie mnożymy przez ten mnożnik elementy pierwszego wiersza i dodajemy do odpowiednich elementów wiersza j . Następnie operację tę powtarzamy dla drugiej kolumny, rozpoczynając przekształcenia od wier-
sza trzeciego i kontynuujemy dla kolejnych kolumn i za każdym razem rozpoczynając przekształ-cenia od wiersza o numerze 1+= ij , aż dojdziemy do kolumny 1−n i wiersza m . Ogólne wzory, pozwalające wyznaczyć nowe, zmienione wartości elementów tablicy (4) po wyeliminowaniu ele-mentu jia w kolumnie i (patrz wzór (4)) mają postać:
niikdmdd
niijamaa
niaa
m
ijijj
ikjijkjk
ii
jiji
,...,2,1
,...,2,1
1,...,2,1
++=⋅+=
++=⋅+=
−=−=
. (6)
Michał Pazdanowski Instytut Technologii Informacyjnych w Inżynierii Lądowej
Wydział Inżynierii Lądowej Politechnika Krakowska
3
Na kolejnym etapie obliczeń, nazywanym krokiem wstecz, dokonujemy albo eliminacji elementów tablicy powyżej przekątnej głównej, albo, korzystając ze wzorów (7), wyznaczamy wartości wszystkich składowych wektora X w kolejności od nx do 1x :
ii
n
ijjijii a
xadx 11
⋅⎥⎦
⎤⎢⎣
⎡⋅−= ∑
+= , 1,...,1, −= nni . (7)
Dla lepszego przedstawienia opisanego powyżej sposobu postępowania rozwiążemy metodą elimi-nacji Gaussa układ trzech liniowych równań algebraicznych przedstawiony poniżej (8).
⎥⎥⎦
⎤
⎢⎢⎣
⎡=
⎥⎥
⎦
⎤
⎢⎢
⎣
⎡⋅
⎥⎥⎦
⎤
⎢⎢⎣
⎡−−
−
430
123431212
3
2
1
xxx
. (8)
Obliczenia w kroku w przód rozpoczynamy od utworzenia z tego układu równań przez dołączenie wektora wyrazów wolnych do macierzy współczynników stosownej tablicy mającej postać (9):
⎥⎥⎦
⎤
⎢⎢⎣
⎡−−
−
000,4000,1000,2000,3000,3000,4000,3000,1000,0000,2000,1000,2
, (9)
mnożniki służące do wyeliminowania elementów 21a i 22a są równe odpowiednio:
500,1
23
500,021
11
3131
11
2121
−=−=−=
==−=
aam
aam
(10)
i zapiszemy je przy odpowiednich wierszach tablicy, pamiętając, że mnożymy przez nie elementy wiersza pierwszego i dodajemy je odpowiednio do elementów wierszy drugiego i trzeciego:
500,1500,0
000,4000,1000,2000,3000,3000,4000,3000,1000,0000,2000,1000,2
−××
⎥⎥⎦
⎤
⎢⎢⎣
⎡−−
− . (11)
W wyniku otrzymamy równoważną tablicę (12), w której wszystkie elementy pierwszej kolumny poniżej przekątnej głównej są równe 0 :
⎥⎥⎦
⎤
⎢⎢⎣
⎡−
−
000,4000,4500,0000,0000,3000,3500,2000,0000,0000,2000,1000,2
. (12)
Analogicznie przekształcamy kolumnę drugą, rozpoczynając działania od elementu 32a . Stosowny mnożnik będzie równy:
200,0500,2
500,0
22
3232 =
−=−=
aam , (13)
i zapiszemy go podobnie jak poprzednio przy odpowiednim wierszu tablicy, pamiętając również, że mnożymy przez niego elementy wiersza drugiego i dodajemy je do elementów wiersza trzeciego:
200,0000,4000,4500,0000,0
000,3000,3500,2000,0000,0000,2000,1000,2
×⎥⎥⎦
⎤
⎢⎢⎣
⎡−
− . (14)
Michał Pazdanowski Instytut Technologii Informacyjnych w Inżynierii Lądowej
Wydział Inżynierii Lądowej Politechnika Krakowska
4
w rezultacie otrzymując równoważną tablicę (15) sprowadzoną do postaci trójkątnej górnej:
⎥⎥⎦
⎤
⎢⎢⎣
⎡−
−
600,4600,4000,0000,0000,3000,3500,2000,0000,0000,2000,1000,2
. (15)
Krok wstecz zrealizujemy wyznaczając z kolejnych równań, poczynając od ostatniego, poszczegól-ne niewiadome ix , 3,2,1=i :
000,1000,0000,1
000,0000,2000,1000,2000,3000,3500,2
600,4600,4
1
2
3
321
32
3
===
⇒⇒⇒
=⋅−⋅+⋅=⋅+⋅−
=⋅
xxx
xxxxx
x . (16)
Na zakończenie zwróćmy jeszcze uwagę na kilka sytuacji szczególnych z jakimi możemy się ze-tknąć stosując metodę eliminacji Gaussa w obliczeniach:
1. w trakcie obliczeń może się zdarzyć, że na przekątnej głównej tablicy pojawi się 0 ( 0=iia ); nie można wówczas wprost skorzystać ze wzoru (6)1 (dzielenie przez 0 ), jednak wystarczy zauwa-żyć, że przecież rozwiązanie układu liniowych równań algebraicznych nie zależy od kolejności tych równań, i wobec tego wystarczy zamienić równanie z zerem na przekątnej głównej z do-wolnym innym równaniem znajdującym się poniżej przekątnej głównej a nie posiadającym zera w kolumnie i , aby móc kontynuować obliczenia;
2. gdyby jednak okazało się, że wszystkie elementy w kolumnie i na oraz poniżej przekątnej głównej są równe 0 oznaczałoby to że macierz główna układu równań (1) jest osobliwa, i wobec tego ten układ równań nie ma jednoznacznego rozwiązania;
3. w celu poprawy stabilności numerycznej metody należy stosować procedurę zwaną wymianą wierszy i ewentualnie wymianę kolumn; wymiana wierszy polega na tym, że przed rozpoczę-ciem zerowania elementów tablicy w danej kolumnie wyszukujemy największy z nich co do modułu, i tak zamieniamy wiersze aby wprowadzić go na przekątną główną, dalsza procedura eliminacji przebiega bez zmian; wymiana kolumn przebiega analogicznie, tyle, że w poszukiwa-niu największego co do modułu elementu przeszukujemy wiersz a nie kolumnę, niestety ubocz-nym skutkiem wymiany kolumn jest konieczność zapamiętywania sekwencji wymian (zamiana kolumn zmienia kolejność składowych w wektorze niewiadomych!);
4. obliczenie wyznacznika wyjściowej macierzy A jest trywialne w przypadku gdy zostanie ona sprowadzona do postaci trójkątnej górnej (wniosek z twierdzenia o obliczaniu wyznacznika przez rozwinięcie względem wiersza lub kolumny).
Metoda rozkładu L·U
Metoda ta polega na zastąpieniu jednego układu liniowych równań algebraicznych o n niewiado-mych, opisanego macierzą pełną, dwoma układami równań o tej samej liczbie niewiadomych, lecz opisanymi macierzami trójkątnymi górną U i dolną L . Jak to już zostało pokazane powyżej (krok wstecz w metodzie eliminacji Gaussa) rozwiązanie układu równań opisanego macierzą trójkątną jest łatwe, wystarczy tylko zachować odpowiednią kolejność wyznaczania wartości niewiadomych. Postępowanie rozpoczyna się od wyznaczenia macierzy L i U takich, że:
ULA ⋅= , (17)
gdzie macierz A jest macierzą główną układu (1). Wówczas zachodzi
DXULXA =⋅⋅=⋅ , (18)
jeżeli teraz wprowadzimy oznaczenie
Michał Pazdanowski Instytut Technologii Informacyjnych w Inżynierii Lądowej
Wydział Inżynierii Lądowej Politechnika Krakowska
5
YXU =⋅ , (19)
to zamiast układu równań (1) o n niewiadomych otrzymamy dwa układy równań (20) również o n niewiadomych:
DYLYXU
=⋅=⋅
. (20)
Do wyznaczenia elementów macierzy L i U wykorzystamy zależność (17). Jest ona źródłem 2n niezależnych równań. Ponieważ jednak poszukiwanych niewiadomych jest nn +2 , to dokładnie n z nich możemy określić arbitralnie. Wobec tego przyjmijmy, że współczynniki 1=iil . Wówczas:
ni
niiku
ulal
niikulau
ii
i
jjikjki
ki
i
jjkijikik
,...,2,1
,...,2,1
,...,1,
1
1
1
1
=
⎪⎪
⎭
⎪⎪
⎬
⎫
++=⋅−
=
+=⋅−=
∑
∑−
=
−
=
. (21)
Przy właściwej kolejności prowadzenia obliczeń (np. algorytm Crouta, w którym naprzemiennie wyznaczamy wiersz macierzy U i kolumnę macierzy L ) zawsze mamy do czynienia z sytuacją w której z jednego równania wyznaczamy tylko jedną niewiadomą iku lub kil .
Tok postępowania prześledźmy na przykładzie rozwiązania układu równań:
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡⋅
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−−−
−−
489
10
1512274132
3
2
1
xxx
. (22)
Warunek (17) można w naszym przypadku przedstawić jako:
A
U
lll
uuuuuu
L
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−−−
−−
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1512274132
101001
000
3231
21
33
2322
131211
, (23)
co prowadzi do następującego zestawu równań na wyznaczenie niewiadomych iku oraz kil :
24411
213
2
111
2171
241131
21
33
32
23
22
31
21
13
12
11
3323321331
22321231
231321
221221
1131
1121
13
12
11
−===
−=−=
=−=−=
=
⇒⇒⇒⇒⇒⇒⇒⇒⇒
=⋅+⋅+⋅−=⋅+⋅
=⋅+⋅−=⋅+⋅
−=⋅=⋅−=⋅−=⋅
=⋅
ulu
ull
uuu
uululululuul
uululul
uuu
, (24)
Michał Pazdanowski Instytut Technologii Informacyjnych w Inżynierii Lądowej
Wydział Inżynierii Lądowej Politechnika Krakowska
6
czyli ostatecznie układy równań (20) przyjmą postać:
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡⋅
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−−
−−⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡⋅
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−
3
2
1
3
2
1
3
2
1
200410132
489
10
141012001
yyy
xxx
yyy
, (25)
a po wyznaczeniu z kolejnych równań niewiadomych 3,2,1 , =iyi oraz 1,2,3 , =ixi (26) znaj-dziemy ostateczne rozwiązanie problemu (22) w postaci (27):
213
611
10
101321141
6248141
912101
1
2
3
3
2
1
321
32
3
321
21
1
=−=−=
=−=
=
⇒⇒⇒⇒⇒⇒
=⋅−⋅−⋅−=⋅+⋅−
=⋅−−=⋅+⋅+⋅−
=⋅+⋅=⋅
xxxy
yy
xxxxx
xyyy
yyy
. (27)
Przy okazji, korzystając z twierdzeń o wyznacznikach możemy zauważyć, że:
∏=
==⋅=⋅=n
iiiuUULULA
1
)det()det()det()det()det( . (28)
Metoda Choleskiego Metoda Choleskiego, podobnie jak metoda rozkładu L·U polega na zastąpieniu jednego układu równań o n niewiadomych opisanego macierzą pełną dwoma układami równań również o n nie-wiadomych, ale za to opisanymi macierzami trójkątnymi. Różnica w stosunku do metody rozkładu L·U polega na tym, że w metodzie Choleskiego macierz U jest transpozycją macierzy L. Z faktu te-go wynikają pewne ograniczenia na postać macierzy A , a mianowicie macierz ta musi być syme-tryczna ( TAA = ) oraz dodatnio określona ( 0>⋅⋅ XAX T dla każdego X takiego, że 0≠X , przypadek taki jest dość częsty w praktyce, np. przy rozwiązywaniu problemów inżynierskich Me-todą Elementów Skończonych). Wówczas:
TLLA ⋅= , (29)
i dalej, przez analogię do (19) i (20):
DXLLXA T =⋅⋅=⋅ , (30)
oraz:
DYLYXLT
=⋅=⋅
. (31)
Analogicznie do przypadku rozkładu L·U, w celu wyznaczenia elementów macierzy L posłużymy się zależnością (29). Jest ona źródłem 2n równań, z których jedynie nn ⋅+⋅ )1(2
1 jest niezależne i prowadzi do poniższych wzorów (32). Gdyby w trakcie obliczeń we wzorze (32)1 pod pierwiast-kiem pojawiła się liczba ujemna, oznacza to, że wyjściowa macierz A nie jest dodatnio określona i metody Choleskiego stosować nie można.
Michał Pazdanowski Instytut Technologii Informacyjnych w Inżynierii Lądowej
Wydział Inżynierii Lądowej Politechnika Krakowska
7
1,...,2,11
,...,2,1
1
1
1
1
2
−=⋅⎟⎟⎠
⎞⎜⎜⎝
⎛⋅−=
=−=
∑
∑−
=
−
=
jil
llal
njlal
jj
j
kjkikijij
j
kjkjjjj
. (32)
W celu lepszego zapoznania się z tokiem postępowania przy stosowaniu metody Choleskiego, roz-wiążmy przy jej zastosowaniu następujący układ równań:
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡−=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡⋅
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡−
−
046
1422222224
3
2
1
xxx
. (33)
Warunek (29) można tu przedstawić następująco:
A
L
lllll
lllllll
L
T
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡−
−
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1422222224
000
000
333231
2221
11
33
2322
131211
, (34)
co prowadzi do następującego układu równań na wyznaczenie niewiadomych ijl :
23
111
2
142
222
4
33
3223
22
3113
2112
11
23323321331
23221321
2221221
1311
1211
211
===
===−==
=
⇒⇒⇒⇒⇒⇒
=+⋅+⋅=⋅+⋅
=+⋅=⋅
−=⋅=
lll
lll
lll
lllllllll
lllll
lll
. (35)
Ostatecznie układy równań (31) przyjmą w naszym przypadku postać:
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡⋅
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡ −⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡−=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡⋅
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡−
3
2
1
3
2
1
3
2
1
200310112
046
231011002
yyy
xxxyyy
, (36)
i podobnie jak w metodzie rozkładu L·U wyznaczając z kolejnych równań najpierw niewiadome 3,2,1 , =iyi a następnie 1,2,3 , =ixi znajdujemy rozwiązanie problemu (33) w postaci (37):
Michał Pazdanowski Instytut Technologii Informacyjnych w Inżynierii Lądowej
Wydział Inżynierii Lądowej Politechnika Krakowska
8
310013
3112131
020231
41162
1
2
3
3
2
1
321
32
3
321
21
1
−=====−=
⇒⇒⇒⇒⇒⇒
−=⋅+⋅−⋅=⋅+⋅
=⋅=⋅+⋅+⋅
=⋅+⋅−−=⋅
xxxyy
y
xxxxx
xyyy
yyy
. (37)
Podobnie jak poprzednio, korzystając z twierdzeń o wyznacznikach, możemy stwierdzić, że:
2
1
2)det()det()det()det()det( ⎟⎠
⎞⎜⎝
⎛==⋅=⋅= ∏
=
n
iii
TT lLLLLLA . (38)
Metody iteracyjne
Każda metoda iteracyjna dotycząca rozwiązania problemu 0)( =XF , do poprawnego zdefiniowa-nia wymaga podania dwóch informacji: po pierwsze funkcji iteracyjnej, czasem nazywanej również schematem iteracyjnym, po drugie warunku lub warunków zakończenia obliczeń. Funkcja iteracyj-na służy do wyznaczenia kolejnego, lepszego w sensie pewnych norm, przybliżenia poszukiwanego rozwiązania problemu na podstawie przybliżenia poprzedniego natomiast warunki zakończenia ob-liczeń służą do stwierdzenia, czy ostatnio znalezione przybliżenie jest na tyle dobre, aby obliczenia zakończyć. O ile funkcja iteracyjna zależy ściśle od klasy problemu i metody jego rozwiązania, o tyle warunki zakończenia obliczeń zwykle należą do dwóch kategorii:
1. błąd zbieżności, rozumiany jako iloraz normy z zmiany rozwiązania X na ostatnio wykonanym kroku iteracyjnym i normy z bieżącego rozwiązania { }nX , gdzie { }n oznacza numer iteracji:
{ } { }
{ } zn
nn
εX
XX≤
− −1
; (39)
2. błąd residuum, rozumiany jako iloraz normy z wyrażenia )(XF obliczonej dla rozwiązania bie-żącego { }n i rozwiązania początkowego { }0 :
{ }( ){ }( ) r
n
εXF
XF≤0 . (40)
Dla zagadnienia (1), przy przyjęciu standardowej normy euklidesowej warunki (39) i (40) przyjmą odpowiednio postać:
1. błąd zbieżności:
{ } { }( )
{ }( )zn
i
ni
n
i
ni
ni
εx
xx≤
−
∑
∑
=
=
−
1
2
1
21
; (41)
Michał Pazdanowski Instytut Technologii Informacyjnych w Inżynierii Lądowej
Wydział Inżynierii Lądowej Politechnika Krakowska
9
2. błąd residuum:
{ }
{ }
rn
i
n
jjjij
n
ij
n
j
njij
ε
dxa
dxa≤
⎟⎟⎠
⎞⎜⎜⎝
⎛−⋅
⎟⎟⎠
⎞⎜⎜⎝
⎛−⋅
∑ ∑
∑ ∑
= =
= =
1
2
1
0
1
2
1 . (42)
i będą one identyczne zarówno dla metody Jacobiego jak i dla metody Gaussa-Seidla. Istotnym z punktu widzenia praktycznego stosowania metody iteracyjnej jest jeszcze tak zwany warunek zbieżności, który podaje kryteria konieczne lub wystarczające zbieżności metody iteracyjnej. I tak w przypadku obydwu rozważanych tu metod wystarczającym, lecz nie koniecznym warunkiem zbieżności jest ścisłe zdominowanie przez diagonalę (warunek (43) spełniony dla każdego i ):
∑≠=
>n
ijj
ijii aa1
, (43)
lub dodatnia określoność macierzy A .
Metoda Jacobiego Schemat iteracyjny metody Jacobiego przedstawia się następująco:
{ } { }
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
+⋅−⋅= ∑≠=
−i
n
ijj
njij
ii
ni dxa
ax
1
11 . (44)
Warunki zakończenia obliczeń (41) i (42).
Dla lepszego przedstawienia toku postępowania prowadzącego do uzyskania wyniku zastosujmy metodę Jacobiego do rozwiązania zadania:
046
1422222
224
046
1422222224
321
321
321
3
2
1 −
===
⋅+⋅+⋅⋅+⋅+⋅−
⋅+⋅−⋅
⇒⇒⇒
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡−=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡⋅
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡−
−
xxxxxx
xxx
xxx
. (45)
W obliczeniach przyjmijmy punkt startowy (46). Jako kryterium zakończenia obliczeń przyjmijmy warunek 0001,0=== εεε rz .
{ }
{ }
{ }
{ } ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡−=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
=000,0000,2500,1
03
02
01
0
xxx
X (46)
Schemat iteracyjny metody Jacobiego dla zadania (45) zgodnie z (44) dany jest zależnością (47):
{ }
{ }
{ }
{ } { }
{ } { }
{ } { } 02
271
171
31
23
321
221
13
12
11
+⋅−⋅−+−−⋅−⋅
===
+
+
+
ii
ii
ii
i
i
i
xxxx
xx
xxx
, (47)
co prowadzi do następujących rezultatów:
Michał Pazdanowski Instytut Technologii Informacyjnych w Inżynierii Lądowej
Wydział Inżynierii Lądowej Politechnika Krakowska
10
{ }
{ }
{ }
{ }
{ }
{ }
{ }
{ }
{ }
{ }
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−
−=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
++−
⋅⋅
+−−
⋅
⋅
−++
⋅−⋅=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
=071,0500,0500,0
000,0000,2500,1
0000,1500,0
143,00
500,0
143,0000,1
00
3
03
02
02
01
01
13
12
11
1 xx
x
x
xx
xxx
X , (48)
{ } { }
{ } 539,21
01
=−
X
XX , (49)
{ }
{ } 727,00
1
=−⋅
−⋅
DXA
DXA , (50)
{ }
{ }
{ }
{ }
{ }
{ }
{ }
{ }
{ }
{ }
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡−=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
++−
⋅⋅
+−−
⋅
⋅
−++
⋅−⋅=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
=000,0571,1214,1
000,0000,2500,1
0000,1500,0
143,00
500,0
143,0000,1
01
3
13
12
12
11
11
23
22
21
2 xx
x
x
xx
xxx
X , (51)
{ } { }
{ } 649,02
12
=−
X
XX , (52)
{ }
{ } 518,00
2
=−⋅
−⋅
DXA
DXA , (53)
ostatecznie po 64 iteracjach:
{ }
{ }
{ }
{ } ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−
−=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
=000403,0001567,1998943,0
633
632
631
63
xxx
X , { }
{ }
{ }
{ } ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−
−=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
=000375,0001460,1999015,0
643
642
641
64
xxx
X , (54)
{ } { }
{ } εX
XX<=
−000094,064
6364
, (55)
{ }
{ } εDXA
DXA<=
−⋅
−⋅000097,00
64
. (56)
Metoda Gaussa-Seidla
Schemat iteracyjny metody Gaussa-Seidla różni się od schematu iteracyjnego metody Jacobiego tym, że nowych wartości zmiennych ix zaczyna się używać natychmiast jak tylko staną się dostęp-ne (poczynając od kolejnego równania) a nie dopiero w następnej iteracji:
{ } { } { }⎟⎟⎠
⎞⎜⎜⎝
⎛+⋅−⋅−⋅= ∑∑
+=
−−
=i
n
ij
njij
i
j
njij
ii
ni dxaxa
ax
1
11
1
1 . (57)
Warunki zakończenia obliczeń (41) i (42) są takie same jak w metodzie Jacobiego.
Poniżej rozwiążemy zadanie (45), (46) ponownie, przy tych samych warunkach zakończenia obli-czeń, tym razem jednak posługując się metodą Gaussa-Seidla. Zgodnie z (57) schemat iteracyjny wygląda tu następująco:
Michał Pazdanowski Instytut Technologii Informacyjnych w Inżynierii Lądowej
Wydział Inżynierii Lądowej Politechnika Krakowska
11
{ }
{ }
{ }
{ } { }
{ } { }
{ } { } 02
127
1117
1
31
1
23
321
221
13
12
11
+⋅−⋅−+−−⋅−⋅
===
++
+
+
+
+
ii
ii
ii
i
i
i
xxxx
xx
xxx
, (58)
co prowadzi do następujących rezultatów:
{ }
{ }
{ }
{ }
{ }
{ }
{ }
{ }
{ }
{ }
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−
−=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
++−
⋅⋅
+−−
⋅
⋅
−++
⋅−⋅=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
=143,0500,1500,0
000,0000,2500,1
0000,1500,0
143,00
500,0
143,0000,1
00
3
03
12
02
11
11
13
12
11
1 xx
x
x
xx
xxx
X , (59)
{ } { }
{ } 710,01
01
=−
X
XX , (60)
{ }
{ } 151,00
1
=−⋅
−⋅
DXA
DXA , (61)
{ }
{ }
{ }
{ }
{ }
{ }
{ }
{ }
{ }
{ }
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−
−=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
++−
⋅⋅
+−−
⋅
⋅
−++
⋅−⋅=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
=112,0464,1679,0
000,0000,2500,1
0000,1500,0
143,00
500,0
143,0000,1
01
3
13
22
12
21
21
23
22
21
1 xx
x
x
xx
xxx
X , (62)
{ } { }
{ } 114,02
12
=−
X
XX , (63)
{ }
{ } 029,00
2
=−⋅
−⋅
DXA
DXA , (64)
ostatecznie po 48 iteracjach:
{ }
{ }
{ }
{ } ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−
−=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
=000194,0000790,1999433,0
473
472
471
47
xxx
X , { }
{ }
{ }
{ } ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−
−=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
=000168,0000686,1999508,0
483
482
481
48
xxx
X (65)
{ } { }
{ } ε<=−
000093,048
4748
X
XX , (66)
{ }
{ } ε<=−⋅
−⋅000052,00
48
DXA
DXA . (67)
Jak widać, w przypadku rozważanego zadania metoda Gaussa-Seidla okazała się istotnie szybsza niż metoda Jacobiego (przy tej samej dokładności obliczeń zysk na liczbie iteracji jest równy 33%, przy praktycznie identycznym czasie wykonania jednej iteracji każdą z metod). Sytuacja taka jest zgodna z oczekiwaniami, ponieważ stosując na każdym kroku iteracyjnym najbardziej aktualne in-formacje o postaci wektora niewiadomych (metoda Gaussa-Seidla) należało oczekiwać przyspie-szenia obliczeń.