12. Iteracyjne rozwiązywanie Ax=B Marian Bubak Department of Computer Science AGH University of Science and Technology Krakow, Poland bubak@agh.edu.pl dice.cyfronet.pl Contributors Anna Marciniec Radosław Kazior Łukasz Janeczko
Plan wykładu 1 12.1 Wady metod bezpośrednich 2 12.2 Podział metod iteracyjnych 3 12.3 Istota metod iteracyjnych dla Ax=b 4 12.4 Zbieżność procesu iteracyjnego rozwiązywania Ax=b 5 12.5 Sens procedury iteracyjnej dla Ax=b 6 12.6 Metoda Jacobiego 7 12.7 Metoda Gaussa-Seidla (G-S i S-R -successive relaxation) 8 12.8 Metoda kolejnych nadrelaksacji - SOR (successive over-relaxation) 9 12.9 Sposoby przeglądania węzłów siatki 10 12.10 Metoda Czybyszewa 11 12.11 Porównywanie jakości wybranych metod iteracyjnych
12.1 Wady metod bezpośrednich Wady metod bezpośrednich Złożoność obliczeniowa N 3 M = 1 3 n3 + n 2 1 3 n (,/) D = 1 3 n3 + 1 2 n2 5 6 n (+) Np. 10 4 punktów siatki przestrzennej (mesh points) 100 x 100 (2 D) 20 x 20 x 20 (3 D) metoda eliminacji Gaussa to 10 12 operacji 1 operacja trwa 10 8 s. 10 4 czyli 3 godziny
12.1 Wady metod bezpośrednich Zwykle czas symulacji 1h, liczba kroków czasowych 1000, cały krok - to rozwiązywanie układu równań, 1 operacja 10 8 s, liczba punktów siatki 10 4 ( liczba równań)
12.1 Wady metod bezpośrednich Potrzebne są metody o znacznie mniejszej złożoności Metody takie powinny być oparte na własnościach równań różniczkowych cząstkowych (zwykle - źródła równań liniowych): liniowość, wymiar, możliwość separacji zmiennych, zakres zmian współczynników, kształt geometryczny obszaru, warunki brzegowe - postać.
12.1 Wady metod bezpośrednich Metody bezpośrednie zaburzają strukturę macierzy rzadkich 2 - D operator pięciopunktowy
12.1 Wady metod bezpośrednich Metody bezpośrednie zaburzają strukturę macierzy rzadkich 5 N 2 współczynników 0 ale: po zastosowaniu metody eliminacji Gaussa znikają zera z wstęg (*) trzeba wtedy pamiętać 2 N 3 współczynników Macierz wstęgowa: m ij = 0 dla i j > k W metodach polegających na mnożeniu A x (t) w kroku t zamiast n 2 k n mnożeń wtedy łatwo o: s k n < n 3 gdzie s - liczba kroków, a n 3 - złożoność metod bezpośrednich.
12.2 Podział metod iteracyjnych Podział metod iteracyjnych Metody stacjonarne (stationary) stałe współczynniki macierzy iteracyjnej, starsze, proste w zrozumieniu i implementacji, na przykład metody Jacobiego, G S (SR), SOR, SSOR.
12.2 Podział metod iteracyjnych Metody niestacjonarne (nonstationary) współczynniki macierzy iteracyjnej zmieniają się w kolejnych krokach iteracji, oparte na idei ciągu wektorów ortogonalnych (CG, MINRES...), wielomianów ortogonalnych (metoda Czybyszewa), stosunkowo nowe, trudniejsze w zrozumieniu i implementacji, szybciej zbieżne.
12.2 Podział metod iteracyjnych iterate przybliżenie rozwiązania w kolejnej iteracji, residual r = Ay b, preconditioner, preconditioning matrix: macierz transformująca układ równań do postaci o lepszych własnościach spektralnych
12.3 Istota metod iteracyjnych dla Ax=b Istota metod iteracynych dla Ax = b A x = b gdzie A jest macierzą n x n, x wektor n niewiadomych, b wektor danych (źródeł).
12.3 Istota metod iteracyjnych dla Ax=b Rozkład: A = B + R B macierz dla, której łatwo stworzyć B 1 R pozostałość A x = (B + R) x = b B x = R x + b B x = (A B) x + b
12.3 Istota metod iteracyjnych dla Ax=b Metody iteracyjne dla Ax = b (mesh relaxation methods) polegają na: odgadnięciu wektora początkowego x (0) generowaniu ciągu iteracyjnego x (t) według postulowanego wzoru: B x (t+1) = (A B) x (t) + b x (t+1) = B 1 (A B) x (t) + B }{{}} 1 {{ b} I B 1 A=M M - iteration matrix W x (t+1) = M x (t) + B 1 b
12.3 Istota metod iteracyjnych dla Ax=b Różne B rodzina metod iteracyjnych: x (t+1) = M x (t) + B 1 b ( ) Warunek zgodności formuły iteracyjnej z szukanym rozwiązaniem lim t x (t+1) = lim t (M x (t) + B 1 b)
12.4 Zbieżność procesu iteracyjnego rozwiązywania Ax=b Zbieżność procesu iteracyjnego rozwiązywania Ax=b Twierdzenie: Zbieżność procesu iteracyjnego Teza: Ciąg ( ) z dowolnym wektorem startowym x (0) jest zbieżny do jedynego granicznego x (inf) wtedy i tylko wtedy, gdy promień spektralny (spectral radius) macierzy iteracji jest mniejszy od 1 ρ(m) < 1
12.4 Zbieżność procesu iteracyjnego rozwiązywania Ax=b Dowód ε (t) = x (t) x; wektor błędu w iteracji t x = M x + W oraz x }{{ (t+1) = M x } (t) + W ε (t+1) =M ε (t) ε (t) =Mt ε (0) (7) ε (0) - initial error vector gdy M zmienia się w procesie iteracji - to: ε (t) = M t ε (0) (8) Dla określenia zbieżności - potrzebny jest skalar ε (t). Chcemy, by dla pewnego t: ε (t+1) < ε (t)
12.4 Zbieżność procesu iteracyjnego rozwiązywania Ax=b Dowód M macierz iteracji ma n różnych wartości i wektorów własnych Ms i = ρ i s i (12.3) Rozkładamy (rzuty na inne osie): n ε (t) = M t α i s i, α i - amplituda kierunku s i i=1 (12.4) ε (t) = M t n α i s i = i=1 ε (t) = n i=1 α i M t 1 (Ms i }{{} ρ i s i ) =... = n α i ρ t i s i (12.5) i=1 n α i ρ t i s i i=1
12.4 Zbieżność procesu iteracyjnego rozwiązywania Ax=b Dowód lim t ε(t) = α m ρ t ms m gdzie: ρ m = max i ρ i = ρ promień spektralny macierzy iteracji ρ < 1 - warunek zbieżności ε (t) ε (0) M(t) - zadana dokładność ρ M (t ) = 10 p λ asymptotic convergence factor λ t = 10 p t = p ln10 lnλ - liczba iteracji
12.5 Sens procedury iteracyjnej dla Ax=b Sens procedury iteracyjnej dla Ax=b W każdym kroku następuje poprawianie rozwiązania. Przypadek, gdy źródłem Ax=b jest rozkład Poissona: 2 u(x, y) = ρ(x, y) ρ(x, y) funkcja rozkładu źródeł szybkość propagacji informacji 2 Operator Laplace a
12.5 Sens procedury iteracyjnej dla Ax=b Ale rozkład Poissona to graniczny (stacjonarny) przypadek równania dyfuzji: u t 2 u = ρ którego jawne sformułowanie różnicowe ma postać: siatka t : t p, u (p+1) = u (p) + t y (p) + ρ t }{{}}{{} t + t p + 1 Mu (p) W =B 1 b Procedura iteracyjna - jawne rozwiązanie zagadnienia opisującego zbieżność w wyimaginowanym czasie iteracji (pseudoczas)
12.6 Metoda Jacobiego Metoda Jacobiego A = D + (L + U) { M = I D 1 A W = D 1 b gdzie: L poddiagonalna; U naddiagonalna; D = B diagonalna, z diagonalnych elementów macierzy A. Ax = (D + (L + U))x = b = Dx = (L + U)x + b Korzystając z zależności otrzymujemy wzór roboczy: x (t+1) i Dx (t+1) = (L + U)x (t) + b = 1 a ii [b i n j=1,j i a ij x (t) j ] ; a ii 0, i 1,.., n
12.6 Metoda Jacobiego Procedura przestawiania wierszy 1) spośród kolumn z a ii = 0 wybieramy tę, która ma najwięcej zer, 2) w tej kolumnie wybieramy element o max a ji i przestawiamy wiersze tak, aby znalazł się on na diagonali, 3) powtarzamy 1) i 2).
12.6 Metoda Jacobiego Modelowe zadanie równanie Poissona 2-D w.b. φ 0 siatka przestrzenna N x N Dla modelowego zadania met. Jacobiego: ρ cos π N 10 π2 N 2, λ J = ρ
12.6 Metoda Jacobiego Charakterystyka metody Jacobiego prosta, ma znaczenie dydaktyczne, wolnozbieżna, nie wykorzystuje całej, dostępnej w danym kroku informacji, pamiętane x (t) i x (t+1), zbieżna dla A silnie diagonalnie dominujących, wierszowo : a ii > kolumnowo : a ii > n j=1,j i n j=1,j i a ij, a ji,
12.7 Metoda Gaussa-Seidla (G-S i S-R -successive relaxation) Metoda Gaussa-Seidla (G-S i S-R -successive relaxation) A = (L + D) +U }{{} B M = I B 1 A = I B 1 (B + U) = B 1 U, ( ) (*) Pamiętamy, że x (t+1) = B 1 Ux (t) + B 1 b (D + L)x (t+1) = Ux t + b Dx (t+1) = Lx (t+1) Ux (t) + b x (t+1) = Mx (t) + W, M = I B 1 A, W = B 1 b
12.7 Metoda Gaussa-Seidla (G-S i S-R -successive relaxation) Wzór roboczy: x (t+1) i i 1 = 1 [b i a ii a ij x (t+1) j j=1 } {{ } ( ) n a ij x (t) ] j j=i+1 }{{} ( ) gdzie: ( ) - otrzymujemy z rozwiązania poprzednich równań w bieżącej (t + 1) iteracji i w tym tkwi przewaga nad metodą Jacobiego i źródło wzrostu efektywności, ( ) - z poprzedniej iteracji (t).
12.7 Metoda Gaussa-Seidla (G-S i S-R -successive relaxation) Charakterystyka metody G-S elementy diagonali powinny być 0 przestawianie wystarczy pamiętać aktualne przybliżenie x (t+1) zbieżna dla A: * silnie diagonalnie dominujących wierszowo, kolumnowo, * symetrycznych, * dodatnio określonych (xax > O x 0).
12.7 Metoda Gaussa-Seidla (G-S i S-R -successive relaxation) Dla modelowego zadania: λ GS = ρ 2 λ GS = cos 2 ( π N 1 ( π2 N 2 ) t = ln10 π 2 (pn2 )...
12.8 Metoda kolejnych nadrelaksacji - SOR (successive over-relaxation) Metoda kolejnych nadrelaksacji - SOR (successive over-relaxation) Inaczej zapisany wzór roboczy SR(G-S): x (t+1) i = x (t) i Przyspieszenie zbieżności: x (t+1) i i 1 + 1 [b i a ii a ij x (t+1) j n a ij x (t) j ] j=1 j=i }{{} r (t) i - poprawka do starego rozwiązania x (t) i = x (t) i + ωr (t) i, ω - pewna liczba
12.8 Metoda kolejnych nadrelaksacji - SOR (successive over-relaxation) Wzór roboczy a ii x (t+1) i = a ii }{{} x (t) i w zapisie macierzowym i 1 +ω[b i j=1 a ij x (t+1) j n j=i+1 a ij x (t) j ] ω a ii Dx (t+1) = (1 ω)dx (t) + ω[b Lx (t+1) Ux (t) ] po uporządkowaniu: }{{} x (t+1) = (D + ωl) 1 [D ω(d + U)] x (t) + ω(d + ωl) 1 b }{{}}{{} M W (=B 1 b) x (t) i
12.8 Metoda kolejnych nadrelaksacji - SOR (successive over-relaxation) Twierdzenie Założenia Dla dowolnej nieosobliwej macierzy A i dowolnej liczby ω zachodzi: Teza ρ(m) ω 1 Stąd: { ω (0, 1] - podrelaksacja ω (0, 2) ω (1, 2) - nadrelaksacja
12.8 Metoda kolejnych nadrelaksacji - SOR (successive over-relaxation) Interpretacja: Dla ważnych praktycznie klas macierzy znana jest optymalna wartość ω
12.8 Metoda kolejnych nadrelaksacji - SOR (successive over-relaxation) Twierdzenie Założenia Dla A - symetrycznej, dodatnio określonej o postacji blokowo - trójprzekątniowej: D 1 U 1 A = L 2 D 2 U 2...... L n 1 D n 1 U n 1 L n D n
12.8 Metoda kolejnych nadrelaksacji - SOR (successive over-relaxation) Teza ω opt = Dla równania modelowego ρ(m GS ) = ρ 2 (M J ) 2 1 + 1 ρ(m GS ) λ SOR = ω opt 1 ρ = cos 2 ( π N ), ω opt 2(1 π N, λ SOR = 1 2π N )
12.9 Sposoby przeglądania węzłów siatki Sposoby przeglądania węzłów siatki
12.10 Metoda Czybyszewa Metoda Czybyszewa B 1 = W (A) - wielomian macierzowy M = 1 W (A)A. Znaleźć W (U) taki, by: min!max 1 W (U)U U Jest to klasyczny problem aproksymacji wielomiany Czybyszewa
12.10 Metoda Czybyszewa Przyspieszenie Czybyszewa metody SOR; odd-even ordering ρ = ρ(m J ) ω (0) = 1 ω 1 1 2 = 1 1 2 ρ2 ω (t+ 1 2 ) 1 = 1 1 4 ρ2 ω (t), dla t=1 2, 1, 11 2,... ω ( ) = ω opt
12.10 Metoda Czybyszewa 1 ω=1.0 DO 2 t = 1, MAXIT ( 100, 1000) 3 Norm = 0. 0 DO 1 p= 1, n 5 DO 1 p= 1, n IF ( MOD( p+q, 2 ).EQ. MOD( t, 2 ) ) THEN 7 R e s i d u a l = a p,qφ p,q 1 + b p,1φ p,q+1 + c p,qφ p 1,q+ d p,qφ p+1,q + e p,qφ p,q f p,q 9 Norm = Norm + ( R e s i d u a l ) 2 φ p,q = φ pq ω R e s i d u a l /e p,q 11 ENDIF 1 CONTINUE 13 ( ) ω = 1.0/(1.0 0.25ρ 2 ω) ( ) IF ( t.eq. 1) ω = 1.0/(1.0 0.5ρ 2 ) 15 IF (Norm. LT. EPS f s o l u t i o n o b t a i n e d 2 CONTINUE Zadanie: Przećwiczyć na lab.
12.10 Metoda Czybyszewa Uwagi do algorytmu EPS 10 6, f obliczona wcześniej norma prawej strony, gdy usuniemy instrukcje (*) otrzymamy metodę G-S, jeżeli dodatkowo zastąpimy ω = 1 przez ω = ω opt - metodę SOR, (Dla r. Poissona: a = b = c = d = 1, e = 4)
12.11 Porównywanie jakości wybranych metod iteracyjnych Porównywanie jakości wybranych metod iteracyjnych A { r. Poissona, 2-D siatka 128 x 128