Metoda Gaussa-Seidla
Metoda Gaussa-Seidla – iteracyjna metoda numeryczna rozwiązywania układów równań liniowych. Stosowana jest głównie do rozwiązywania ogromnych układów równań postaci
, w których
jest macierzą przekątniowo dominującą. Równania tego typu, obejmujące tysiące a nawet miliony niewiadomych, występują powszechnie w numerycznych metodach rozwiązywania eliptycznych równań różniczkowych cząstkowych, np. równania Laplace'a. Nazwa metody upamiętnia niemieckich matematyków: Carla Friedricha Gaussa i Philippa Ludwiga von Seidla
Obecnie metoda Gaussa-Seidla ma charakter czysto akademicki. Dla małych układów równań dużo szybsze są metody bezpośrednie, np. metoda eliminacji Gaussa, natomiast dla ogromnych układów równań lepszą zbieżność zapewniają metody nadrelaksacyjne oraz wielosiatkowe (ang. multigrid).
Spis treści |
Definicja [edytuj]
Metoda Gaussa-Seidla jest metodą relaksacyjną, w której poszukiwanie rozwiązania rozpoczyna się od dowolnie wybranego rozwiązania próbnego
, po czym w kolejnych krokach, zwanych iteracjami, za pomocą prostego algorytmu zmienia się kolejno jego składowe, tak by coraz lepiej odpowiadały rzeczywistemu rozwiązaniu. Metoda Gaussa-Seidla bazuje na metodzie Jacobiego, w której krok iteracyjny zmieniono w ten sposób, by każda modyfikacja rozwiązania próbnego korzystała ze wszystkich aktualnie dostępnych przybliżonych składowych rozwiązania. Pozwala to zaoszczędzić połowę pamięci operacyjnej i w większości zastosowań praktycznych zmniejsza ok. dwukrotnie liczbę obliczeń niezbędnych do osiągnięcia zadanej dokładności rozwiązania.
Rozpatrzmy układ
równań liniowych z
niewiadomymi:
gdzie
Pojedynczą iterację metody Gaussa-Seidla można zapisać algebraicznie jako
gdzie
jest nieosobliwą macierzą diagonalną, a
i
są odpowiednio macierzą dolnotrójkątną i górnotrójkątną macierzy
(tzn.
oraz
mają zera na głównej przekątnej oraz
), natomiast indeks
oznacza numer porządkowy iteracji.
Po rozpisaniu na składowe wzór ten przyjmuje postać używaną w implementacjach numerycznych:
Uwaga!
- W powyższych wzorach zakłada się, że w razie potrzeby kolejność równań została zmieniona tak, by dominujące (tj. największe co do modułu w danym równaniu) współczynniki równania znajdowały się na głównej przekątnej macierzy
. - Jeżeli
jest macierzą nieosobliwą, to zawsze można tak przestawić jej wiersze i kolumny, by macierz
też była nieosobliwa. - Metodę Gaussa-Seidla stosuje się niemal wyłącznie do układów z macierzą przekątniowo dominującą, gdyż w wielu praktycznych zastosowaniach (np. przy rozwiązywaniu eliptycznych równań różniczkowych cząstkowych) jest to łatwy do spełnienia warunek gwarantujący zbieżność metody.
- Metodę Gaussa-Seidla można stosować także do układów równań liniowych, w których macierz układu nie jest przekątniowo dominująca, ale poza nielicznymi wyjątkami zwykle nie ma gwarancji, że w tym przypadku metoda będzie zbieżna[1].
Warunki zbieżności [edytuj]
Warunki wystarczające [edytuj]
1a. Kryterium silnej dominacji w rzędach [edytuj]
Metoda Gaussa-Seidla jest zbieżna dla każdej macierzy
spełniającej warunek ścisłej dominacji przekątniowej w rzędach:
(źródło: Stoer i Bulirsch 1993).
1b. Kryterium silnej dominacji w kolumnach [edytuj]
Metoda Gaussa-Seidla jest zbieżna dla każdej macierzy
spełniającej warunek ścisłej dominacji przekątniowej w kolumnach:
(źródło: Stoer i Bulirsch 1993).
2a. Kryterium słabej dominacji w rzędach [edytuj]
Kolejne kryterium dotyczy nieredukowalnych układów równań liniowych, tj. takich układów, których nie można uporządkować przez permutacje wierszy i kolumn w ten sposób, by niektóre niewiadome można było wyznaczyć poprzez rozwiązanie mniejszej liczby równań niż
.
Jeżeli wszystkie wyrazy diagonalne macierzy nieredukowalnej
dominują rzędami w sensie słabym
oraz jeżeli dla co najmniej jednego wiersza
zachodzi dominacja silna:
to ciąg iteracji Gaussa-Seidla jest zbieżny (źródło: Stoer i Bulirsch 1993, Tannehill i in., 1997).
Uwagi
- Macierz
jest nieredukowalna, jeżeli poprzez przestawienie wierszy i kolumn nie można jej sprowadzić do postaci blokowej górnej trójkątnej. - Nieredukowalność macierzy kwadratowej
o rozmiarze
można sprawdzić za pomocą grafu skierowanego
mającego
węzłów
, w którym para
jest połączona (skierowanym) łukiem biegnącym od
do
wtedy i tylko wtedy, gdy
. Macierz
jest nieredukowalna wtedy i tylko wtedy, gdy między dowolnymi dwoma różnymi węzłami
w grafie
istnieje połączenie łukami skierowanymi (połączenie to nie musi być bezpośrednie).
2b. Kryterium słabej dominacji w kolumnach [edytuj]
Jeżeli wszystkie wyrazy diagonalne macierzy nieredukowalnej
dominują kolumnami w sensie słabym
oraz jeżeli dla co najmniej jednej kolumny
zachodzi dominacja silna:
to ciąg iteracji Gaussa-Seidla jest zbieżny (źródło: Stoer i Bulirsch 1993).
3. Kryterium dodatniej określoności [edytuj]
Jeżeli macierz
jest dodatnio określona, to metoda Gaussa-Seidla jest zbieżna dla dowolnego wektora początkowego (źródło: Ralston 1983, Stoer i Bulirsch 1993).
Warunek konieczny [edytuj]
Niech
Metoda Gaussa-Seidla jest zbieżna wtedy i tylko wtedy, gdy moduły wszystkich wartości własnych
są mniejsze od 1 (źródło: Ralston 1983).
Uwaga: powyższe kryterium jest niepraktyczne i nie jest wykorzystywane w obliczeniach numerycznych.
Warunek zakończenia iteracji [edytuj]
W praktyce iteracje Gaussa-Seidla kończy się wtedy, gdy dla iteracji o numerze
maksymalna względna zmiana składowej przybliżonego rozwiązania nie przekracza pewnego z góry zadanego małego parametru
(np.
):
Alternatywny sposób polega na śledzeniu wektora reszt:
Obliczenia przerywa się, gdy
osiągnie wartość mniejszą od pewnego z góry ustalonego małego parametru
.
Uwagi:
- W metodzie Gaussa-Seidla w każdym kroku modyfikuje się pewną składową rozwiązania (
), tak by wyzerować odpowiadającą mu składową wektora reszt (
). - Sukcesywne zerowanie jednej lub kilku składowych wektora reszt stanowi istotę wszystkich metod relaksacyjnych.
- Aktualizacja wektora reszt w kolejnych krokach może być przeprowadzona stosunkowo niewielkim nakładem obliczeń.
Przykłady [edytuj]
Układ trzech równań liniowych [edytuj]
Rozważmy następujący układ równań liniowych:
W pierwszym i drugim równaniu wyrazy dominujące (
i
) leżą poza główną przekątną. Po zamianie kolejności tych równań otrzymujemy układ, w którym wartości dominujące leżą na głównej przekątnej:
Układ ten spełnia warunek zbieżności metody (macierz układu jest dominująca przekątniowo). Układ zapisujemy w postaci równań na wyrazy dominujące:
Dokonujemy wyboru ("zgadujemy") wartości
i
, np.
i
. Następnie podstawiamy te wartości do równania na
, uzyskując początkową wartość
. Tak uzyskaną wartość podstawiamy do równania na
, uzyskując nowe przybliżenie tej niewiadomej. Iteracje kontynuujemy do osiągnięcia określonej dokładności względnej.
Dla
i
powyższa procedura daje następujące wyniki (dwie pełne iteracje):
Dokładne rozwiązanie:
,
,
.
Jak łatwo sprawdzić, gdyby na początku nie zmieniono kolejności równań, iteracje Gaussa-Seidla byłyby rozbieżne.
Jednowymiarowe równanie Laplace'a [edytuj]
Jednowymiarowe równanie Laplace'a ma postać
, gdzie
jest macierzą trójprzekątniową:
Macierz
, jako pełna macierz trójprzekątniowa, jest nieredukowalna. Wszystkie elementy dominujące znajdują się na głównej przekątnej. Wartość bezwzględna każdego elementu dominującego jest co najmniej równa sumie wartości bezwzględnych pozostałych elementów w danym wierszu. Istnieją dwa elementy dominujące (w pierwszym i ostatnim wierszu, czyli na brzegach układu), których wartość bezwzględna jest większa od sumy wartości bezwzględnych pozostałych elementów wiersza. Dlatego na mocy kryterium dominacji przekątniowej metoda Gaussa-Seidla jest w przypadku tego równania zbieżna.
Ten sam wniosek można wyciągnąć z kryterium dodatniej określoności macierzy
, ale wymaga to bardziej zaawansowanych rachunków.
Równanie niezbieżne [edytuj]
Rozpatrzmy układ równań
, gdzie
Układ ten ma nieskończenie wiele rozwiązań postaci
, gdzie
jest dowolną liczbą rzeczywistą. Macierz
nie spełnia żadnego z opisanych powyżej warunków dostatecznych zbieżności metody Gaussa-Seidla. Mimo tego, jak łatwo sprawdzić, metoda Gaussa-Seidla jest w tym przypadku zbieżna dla każdego wektora początkowego
; problem w tym, że wartość graniczna zależy od wyboru rozwiązania próbnego
.
Algorytm [edytuj]
- Wybierz początkowe przybliżenie

- for k := 1 step 1 until oczekiwane przybliżenie do
- for i := 1 step 1 until n do

- for j := 1 step 1 until i-1 do
- end (j-for)
- for j := i+1 step 1 until n do
- end (j-for)

- end (i-for)
- sprawdź czy osiągnięty zostało oczekiwane przybliżenie
- for i := 1 step 1 until n do
- end (k-for)

Przypisy
- ↑ metoda iteracyjna wyrażona równaniem
jest zbieżna, gdy ciąg
jest zbieżny do x dla dowolnego wektora początkowego 
Bibliografia [edytuj]
- David Kincaid, Ward Cheney Analiza Numeryczna ISBN 83-204-3078-X
- Anthony Ralston, Wstęp do analizy numerycznej, PWN, Warszawa 1983, ISBN 83-01-01626-4.
- J. Stoer R. Bulirsch, Introduction to Numerical Analysis, Second Edition, Springer-Verlag, New York 1993, ISBN 0-387-97878-X
- John C. Tannehill, Dale A. Anderson i Richard H. Pletcher, Computational Fluid Mechanics and HeatTransfer (Second Edition), Francis & Taylor, Philadelphia, 1997, ISBN 1-56032-046-X

,
– zadany
– poszukiwane rozwiązanie (wektor o 





można sprawdzić za pomocą
mającego
, w którym para
jest połączona (skierowanym) łukiem biegnącym od
do
wtedy i tylko wtedy, gdy
. Macierz
w grafie 




), tak by wyzerować odpowiadającą mu składową wektora reszt (
).



















jest zbieżna, gdy ciąg
jest zbieżny do x dla dowolnego wektora początkowego 