Metoda Gaussa-Seidela

Przestrzenie wektorowe, bazy, liniowa niezależność, macierze.... Formy kwadratowe, twierdzenia o klasyfikacji...
olas386
Użytkownik
Użytkownik
Posty: 1
Rejestracja: 27 mar 2011, o 11:00
Płeć: Mężczyzna
Lokalizacja: Gdańsk

Metoda Gaussa-Seidela

Post autor: olas386 »

Witam serdecznie.
Zaimplementowałem algorytm obliczający pierwiastki układu równań wg metody Gaussa-Seidela. Wszystko opiera się w całości na macierzach
A = L + D + U ( - A cała macierz, L - dolnotrójkątna , D - diagonalna, U - górnotrójkątna )
\(\displaystyle{ B_{gs} = - ( L + D )^{-1}U}\)
\(\displaystyle{ c = ( L + D )^{-1}b}\) , gdzie b - wektor wyrazów wolnych
\(\displaystyle{ x_{n}=B_{gs}x_{n-1} + c}\)

To wszystko bardzo ładnie działa, ale mam pytanie dotyczące zbieżności tej metody. Wszystkie źródła podają, że metoda jest zbieżna kiedy diagonala jest dominująca, czyli dla każdego wiersza wartość znajdująca się na przekątnej jest największa. Dla takich przypadków oczywiście wszystko się zgadza, jednak dla generowanych losowo testów takie układy rzadko występują.. oczywiście można zamieniać całe wiersze dopasowując wyrazy do przekątnej... ale jest to kłopotliwe i również nie zawsze działa.. jest jakaś uniwersalna metoda pozwalająca na zmodyfikowanie układu do odpowiedniej postaci? ( próbowałem coś z metodą Gaussa dla pełnego wyboru elementu podstawowego jednak to nie działa jak powinno - być może błąd implementacji, jednakże wolę zapytać bo jeżeli taka metoda nie istnieje to niepotrzebnie się męczę ).
ODPOWIEDZ