11.11.2012

   METODY  ITERACYJNE

   

  Metoda Gaussa - Seidela jest metodą iteracyjną i pozwala nam obliczyć układ n równań z n niewiadomymi Ax = b. Wektor x0 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, gdzie L jest macierzą w której znajdują się elementy których numer wiersza jest 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:




Rozpatrzmy układ \ n równań liniowych z \ n niewiadomymi:


gdzie
  • \ A –  macierz układu (\ n\times n),
  • \ b – zadany wektor (\ n składowych),
  • \ x – poszukiwane rozwiązanie (wektor o \ n składowych).
Pojedynczą iterację metody Gaussa-Seidla można zapisać algebraicznie jako
x^{(k+1)}  = \left( {D + L} \right)^{-1} \left( {-U x^{(k)}  + b} \right),
gdzie \ D jest nieosobliwą macierzą diagonalną, a \ L i \ U są odpowiednio macierzą  dolnotrójątnąi górnotrójkątną  macierzy \ A (tzn. \ L oraz \ U mają zera na głównej przekątnej oraz \ A \equiv D+L+U), natomiast indeks \ k = 0,1,2,\ldots oznacza numer porządkowy iteracji.
Po rozpisaniu na składowe wzór ten przyjmuje postać używaną w implementacjach numerycznych:
x^{(k+1)}_i  = \frac{1}{a_{ii}} \left(b_i - \sum_{j=1}^{i-1}a_{ij}x^{(k+1)}_j-\sum_{j=i+1}^{n}a_{ij}x^{(k)}_j\right),\, i=1,2,\ldots,n.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.

Brak komentarzy:

Prześlij komentarz