Wstęp do metod numerycznych Metody iteracyjne i metoda gradientów sprzężonych P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2012
Metody iteracyjne W metodach dokładnych otrzymane rozwiazanie jest dokładne z dokładnościa do błędów zaokraglenia, które, dodajmy, dla układów źle uwarunkowanych moga być znaczne. W metodach iteracyjnych rozwiazanie dokładne otrzymuje się, teoretycznie, w granicy nieskończenie wielu kroków w praktyce liczymy na to, że po skończonej (i niewielkiej) ilości kroków zbliżymy się do wyniku ścisłego w granicach błędu zaokraglenia. Copyright c 2010-12 P. F. Góra 5 2
Rozpatrzmy układ równań: Przepiszmy ten układ w postaci a 11 x 1 + a 12 x 2 + a 13 x 3 = b 1 (1a) a 21 x 1 + a 22 x 2 + a 23 x 3 = b 2 (1b) a 31 x 1 + a 32 x 2 + a 33 x 3 = b 3 (1c) x 1 = (b 1 a 12 x 2 a 13 x 3 )/a 11 (2a) x 2 = (b 2 a 21 x 1 a 23 x 3 )/a 22 (2b) x 3 = (b 3 a 31 x 1 a 32 x 2 )/a 33 (2c) Gdyby po prawej stronie (2) były stare elementy x j, a po lewej nowe, dostalibyśmy metodę iteracyjna Copyright c 2010-12 P. F. Góra 5 3
x (k+1) i = b i i 1 j=1 a ij x (k) j N j=i+1 a ij x (k) j / a ii (3) Górny indeks x (k) oznacza, ze jest to przybliżenie w k-tym kroku. Jest to tak zwana metoda Jacobiego. Zauważmy, że w metodzie (3) nie wykorzystuje się najnowszych przybliżeń: Powiedzmy, obliczajac x (k+1) 2 korzystamy z x (k) 1, mimo iż znane jest już wówczas x (k+1) 1. (Za to metodę tę łatwo można zrównoleglić.) Sugeruje to następujace ulepszenie: x (k+1) i = b i i 1 j=1 a ij x (k+1) j Jest to tak zwana metoda Gaussa-Seidela. N j=i+1 a ij x (k) j / a ii (4) Copyright c 2010-12 P. F. Góra 5 4
Jeżeli macierz A = {a ij } jest rzadka, obie te metody iteracyjne będa efektywne tylko i wyłacznie wówczas, gdy we wzorach (3), (4) uwzględni się ich strukturę, to jest uniknie redundantnych mnożeń przez zera. Copyright c 2010-12 P. F. Góra 5 5
Trochę teorii Metody Jacobiego i Gaussa-Seidela należa do ogólnej kategorii Mx (k+1) = Nx (k) + b (5) gdzie A = M N jest podziałem (splitting) macierzy. Dla metody Jacobiego M = D (część diagonalna), N = (L + U) (części pod- i ponaddiagonalne, bez przekatnej). Dla metody Gaussa-Seidela M = D + L, N = U. Rozwiazanie równania Ax = b jest punktem stałym iteracji (5). Copyright c 2010-12 P. F. Góra 5 6
Definicja Promieniem spektralnym (diagonalizowalnej) macierzy G nazywam ρ(g) = max{ λ : y 0 : Gy = λy} (6) Twierdzenie 1. Iteracja (5) jest zbieżna jeśli det M 0 oraz ρ(m 1 N) < 1. Dowód. Przy tych założeniach iteracja (5) jest odwzorowaniem zwężaja- cym. Twierdzenie 2. Metoda Jacobiego jest zbieżna jeśli macierz A jest silnie diagonalnie dominujaca. Twierdzenie 3. Metoda Gaussa-Seidela jest zbieżna jeśli macierz A jest symetryczna i dodatnio określona. Copyright c 2010-12 P. F. Góra 5 7
Przykład 10 1 Metoda Jacobiego Metoda Gaussa-Seidela 10 0 Rozwiazujemy układ równań: 3x + y + z = 1 x + 3y + z = 1 x + y + 3z = 1 x n -x n-1 10-1 10-2 10-3 10-4 10-5 10-6 10-7 0 5 10 15 20 25 30 35 40 nr iteracji, n Copyright c 2010-12 P. F. Góra 5 8
SOR Jeśli ρ(m 1 N) w metodzie Gaussa-Seidela jest bliskie jedności, zbieżność metody jest bardzo wolna. Można próbować ja poprawić: x (k+1) i = w b i i 1 j=1 a ij x (k+1) j N j=i+1 a ij x (k) j / a ii + (1 w)x (k) i, (7) gdzie w R jest parametrem relaksacji. Metoda ta zwana jest succesive over-relaxation, SOR. W postaci macierzowej M w x (k+1) = N w x (k) + wb (8) M w = D + wl, N w = (1 w)d wu. Teoretycznie należy dobrać takie w, aby zminimalizować ρ(m 1 w N w ). Copyright c 2010-12 P. F. Góra 5 9
Metoda gradientów sprzężonych motywacja Rozważmy funcję f : R N R f(x) = 1 2 xt Ax b T x + c, (9) gdzie x, b R N, c R, A = A T R N N jest symetryczna i dodatnio określona. Przy tych założeniach, funkcja (9) ma dokładnie jedno minimum, będace zarazem minimum globalnym. Szukanie minimów dodatnio określonych form kwadratowych jest (względnie) łatwe i z praktycznego punktu widzenia ważne. Minimum to leży w punkcie spełniajacym f = 0. (10) Copyright c 2010-12 P. F. Góra 5 10
Obliczmy = 1 2 k f = 1 A jk x j x k x i 2 x i = 1 2 A ik x k + 1 2 j,k x A j jk j,k x }{{} i δ ij j x i x x k + x k j x i A ji x j b i = 1 2 j }{{} j δ ik k b j x j + c x i A ik x k + 1 2 }{{} 0 b j x j x i }{{} δ ij j A ij x j b i = (Ax b) i. (11) Copyright c 2010-12 P. F. Góra 5 11
Widzimy zatem, że funkcja (9) osiaga minimum w punkcie, w którym zachodzi Ax b = 0 Ax = b. (12) Rozwiazywanie układu równań liniowych (12) z macierza symetryczna, dodatnio określona jest równoważne poszukiwaniu minimum dodatnio określonej formy kwadratowej. Przypuśćmy, że macierz A jest przy tym rzadka i duża (lub co najmniej średnio-duża). Wówczas metoda gradientów sprzężonych jest godna uwagi metoda rozwiazywania (12) Copyright c 2010-12 P. F. Góra 5 12
Metoda gradientów sprzężonych, Conjugate Gradients, CG A R N N symetryczna, dodatnio określona, x 1 poczatkowe przybliżenie rozwiazania równania (12), 0 < ε 1. r 1 = b Ax 1, p 1 = r 1 while r k > ε end α k = rt k r k p T k Ap k r k+1 = r k α k Ap k β k = rt k+1 r k+1 r T k r k p k+1 = r k+1 + β k p k x k+1 = x k + α k p k (13) Copyright c 2010-12 P. F. Góra 5 13
Wówczas zachodza twierdzenia: Twierdzenie 4. Ciagi wektorów {r k }, {p k } spełniaja następujace zależności: r T i r j = 0, i > j, (14a) r T i p j = 0, i > j, (14b) p T i Ap j = 0, i > j. (14c) Twierdzenie 5. Jeżeli r M = 0, to x M jest ścisłym rozwiazaniem równania (12). Dowód. Oba (sic!) dowody przebiegaja indukcyjnie. Copyright c 2010-12 P. F. Góra 5 14
Ciag {x k } jest w gruncie rzeczy pomocniczy, nie bierze udziału w iteracjach, służy tylko do konstruowania kolejnych przybliżeń rozwiazania. Istota algorytmu jest konstruowanie dwu ciagów wektorów spełniajacych zależności (14). Wektory {r k } sa wzajemnie prostopadłe, a zatem w arytmetyce dokładnej r N+1 = 0, wobec czego x N+1 jest poszukiwanym ścisłym rozwiazaniem. Zauważmy, że ponieważ A jest symetryczna, dodatnio określona, warunek (14c) oznacza, że wektory {p k } sa wzajemnie prostopadłe w metryce zadanej przez A. Ten właśnie warunek nazywa się warunkiem sprzężenia względem A, co daje nazwę całej metodzie. Copyright c 2010-12 P. F. Góra 5 15
Koszt metody W arytmetyce dokładnej metoda zbiega się po N krokach, zatem jej koszt wynosi O(N koszt jednego kroku). Koszt jednego kroku zdominowany jest przez obliczanie iloczynu Ap k. Jeśli macierz A jest pełna, jest to O(N 2 ), a zatem całkowity koszt wynosi O(N 3 ), czyli tyle, ile dla metod dokładnych. Jeżeli jednak A jest rzadka, koszt obliczania iloczynu jest mniejszy (o ile obliczenie to jest odpowiednio zaprogramowane). Jeśli A jest pasmowa o szerokości pasma M N, całkowity koszt wynosi O(M N 2 ). Copyright c 2010-12 P. F. Góra 5 16
Problem! W arytmetyce o skończonej dokładności kolejne generowane wektory nie sa ściśle ortogonalne do swoich poprzedników na skutek akumuluja- cego się błędu zaokraglenia rzut na poprzednie wektory może stać się z czasem znaczny. Powoduje to istotne spowolnienie metody. Twierdzenie 6. Jeżeli x jest ścisłym rozwiazaniem równania (12), x k sa generowane w metodzie gradientów sprzężonych, zachodzi x x k 2 x x 1 ( κ 1 κ + 1 ) k 1, (15) gdzie κ jest współczynnikiem uwarunkowania macierzy A. Jeżeli κ 1, zbieżność może być bardzo wolna. Copyright c 2010-12 P. F. Góra 5 17
Prewarunkowana (preconditioned) metoda gradientów sprzężonych Spróbujmy przyspieszyć zbieżność odpowiednio modyfikujac równanie (12) i algorytm (13), jednak tak, aby nie zmienić rozwiazania, macierz zmodyfikowanego układu pozostała symetryczna i dodatnio określona, aby można było zastosować metodę gradientów sprzężonych, macierz zmodyfikowanego układu pozostała rzadka, aby jeden krok iteracji był numerycznie tani, macierz zmodyfikowanego układu miała niski współczynnik uwarunkowania. Czy to się w ogóle da zrobić? Okazuje się, że tak! Copyright c 2010-12 P. F. Góra 5 18
Postępujemy następujaco: Niech C R N N będzie odwracalna macierza symetryczna, rzeczywista, dodatnio określona. Wówczas à = C 1 AC 1 też jest symetryczna, rzeczywista, dodatnio określona. C 1 A } C 1 {{ C} x = C 1 b, (16a) I à x = b, (16b) gdzie x = Cx, b = C 1 b. Do równania (16b) stosujemy teraz metodę gradientów sprzężonych. Copyright c 2010-12 P. F. Góra 5 19
W każdym kroku iteracji musimy obliczyć (tyldy, bo odnosi się to do tyldowanego układu (16b)) α k = r T k r k p T k à p k = r T k r k p T k C 1 AC 1 p k, (17a) r k+1 = r k α kã p k = r k α k C 1 AC 1 p k, (17b) β k = r T k+1 r k+1 r T k r, k (17c) p k+1 = r k+1 + β k p k, (17d) x k+1 = x k + α k p k. (17e) Copyright c 2010-12 P. F. Góra 5 20
Równania (17) zawieraja jawne odniesienia do macierzy C 1, co nie jest zbyt wygodne. Łatwo się przekonać, iż za pomoca prostych przekształceń macierz tę można usunać, tak, iż pozostaje tylko jedno jej nietrywialne wystapienie. Zdefiniujmy mianowicie r k = C 1 r k, p k = Cp k, x k = Cx k. (18) W tej sytuacji r T k r k = (C 1 r k ) T C 1 r k = r T k (C 1 ) T C 1 r k = r T k C 1 C 1 r k = r T k (C 1 ) 2 r k etc. Copyright c 2010-12 P. F. Góra 5 21
Wówczas równania (17) przechodza w ( C 1 ) 2 rk α k = rt k p T k Ap, (19a) k r k+1 = r k α k Ap k, (19b) β k = rt k+1 r T k ( C 1 ) 2 rk+1 ( C 1 ) 2 rk, (19c) p k+1 = ( C 1) 2 rk+1 + β k p k, (19d) x k+1 = x k + α k p k. (19e) Copyright c 2010-12 P. F. Góra 5 22
W powyższych równaniach rola macierzy C sprowadza się do obliczenia jeden raz w każdym kroku iteracji wyrażenia ( C 1) 2 rk, co, jak wiadomo, robi się rozwiazuj ac odpowiedni układ równań. Zdefiniujmy M = C 2. (20) Macierz M należy rzecz jasna dobrać tak, aby równanie Mz = r można było szybko rozwiazać. Copyright c 2010-12 P. F. Góra 5 23
Ostatecznie otrzymujemy następujacy algorytm: r 1 = b Ax 1 rozwiaż Mz 1 = r 1 p 1 = z 1 while r k > ε α k = rt k z k p T k Ap k r k+1 = r k α k Ap k rozwiaż Mz k+1 = r k+1 (21) end β k = rt k+1 z k+1 r T k z k p k+1 = z k+1 + β k p k x k+1 = x k + α k p k Copyright c 2010-12 P. F. Góra 5 24
Incomplete Cholesky preconditioner Niech rozkład QR macierzy C ma postać C = QH T, gdzie Q jest macierza ortogonalna, H T jest macierza trójkatn a górna. Zauważmy, że M = C 2 = C T C = ( QH T ) T QH T = HQ T QH T = HH T, (22) a więc macierz H jest czynnikiem Cholesky ego macierzy M. Niech rozkład Cholesky ego macierzy A ma postać A = GG T. Przypuśćmy, iż H G. Copyright c 2010-12 P. F. Góra 5 25
Wówczas à = C 1 AC 1 = ( C T ) 1 AC 1 = ( (QH T ) T ) 1 A ( QH T ) 1 = ( HQ T ) 1 ( A H T ) 1 Q T = Q H 1 G G T ( H T ) 1 Q T QQ T = I. }{{}}{{} I I (23) Ponieważ à I, współczynnik uwarunkowania tej macierzy powinien być bliski jedności. Copyright c 2010-12 P. F. Góra 5 26
Niepełny rozkład Cholesky ego algorytm w wersji GAXPY for k = 1:N H kk = A kk for end j = 1:k 1 H kk = H kk H 2 kj H kk = H kk end for end l = k+1:n H lk = A lk if A lk 0 for end H lk = H lk /H kk endif j = 1:k 1 H lk = H lk H lj H kj Copyright c 2010-12 P. F. Góra 5 27
Uwagi Ponieważ A jest rzadka, powyższy algorytm na obliczanie przybliżonego czynnika Cholesky ego wykonuje się szybko. Wykonuje się go tylko raz. Równanie Mz = r rozwiazuje się szybko, gdyż znamy czynnik Cholesky ego M = HH T. Obliczone H jest rzadkie, a zatem równanie Mz = r rozwiazuje się szczególnie szybko. Mamy nadzieję, że macierz à ma współczynnik uwarunkowania bliski jedności, a zatem nie potrzeba wielu iteracji (21). Copyright c 2010-12 P. F. Góra 5 28
Przykład macierz pasmowa z pustymi diagonalami Rozważmy macierz o następujacej strukturze: A = a 1 0 b 3 0 c 5 0 0 0 0 0... 0 a 2 0 b 4 0 c 6 0 0 0 0... b 3 0 a 3 0 b 5 0 c 7 0 0 0... 0 b 4 0 a 4 0 b 6 0 c 8 0 0... c 5 0 b 5 0 a 5 0 b 7 0 c 9 0... 0 c 6 0 b 6 0 a 6 0 b 8 0 c 10.................................... (24) Macierz ta jest symetryczna, zakładamy też, że jest dodatnio określona. Niepełny czynnik Cholesky ego macierzy (24) ma postać Copyright c 2010-12 P. F. Góra 5 29
H = p 1 0 p 2 q 3 0 p 3 0 q 4 0 p 4 r 5 0 q 5 0 p 5 0 r 6 0 q 6 0 p 6..................... (25) (W pełnym czynniku Cholesky ego macierzy (24) zera leżace w (25) pomiędzy diagonala p a diagonalna r znikłyby w ogólności mogłyby tam znajdować się jakieś niezerowe liczby.) Copyright c 2010-12 P. F. Góra 5 30
Zgodnie z podanym algorytmem, elementy ciagów {p k }, {q k }, {r k } wyliczamy z następujacych wzorów: p 1 = a 1, p 2 = a 2, q 3 = b 3 /p 1, q 4 = b 4 /p 2, r 5 = c 5 /p 1, r 6 = c 6 /p 2, p 3 = a 3 q 2 3, p 4 = a 4 q 2 4, q 5 = (b 5 r 5 q 3 )/p 3, q 6 = (b 6 r 6 q 4 )/p 4, r 7 = c 7 /p 3, r 8 = c 7 /p 4, p 5 = a 5 q 2 5 r2 5, p 6 = a 6 q 6 5 r2 6, q 7 = (b 7 r 7 q 5 )/p 5, q 8 = (b 8 r 8 q 6 )/p 6, r 9 = c 9 /p 5, r 10 = c 10 /p 6, p 7 = a 7 q7 2 r2 7, p 8 = a 8 q8 6 r2 8, q 9 = (b 9 r 9 q 7 )/p 7, q 10 = (b 10 r 10 q 8 )/p 8, r 11 = c 11 /p 7, r 12 = c 12 /p 8,.................. Copyright c 2010-12 P. F. Góra 5 31
Macierze niesymetryczne Jeżeli w równaniu Ax = b (26) macierz A nie jest symetryczna i dodatnio określona, sytuacja się komplikuje. Zakładajac, że det A 0, równanie (26) możemy zsymetryzować na dwa sposoby. CGNR: lub CGNE: A T Ax = A T b, (27) AA T y = b, (28a) x = A T y. (28b) Copyright c 2010-12 P. F. Góra 5 32
Do dwu powyższych równań formalnie rzecz biorac można używać metody gradientów sprzężonych. Trzeba jednak pamiętać, że nawet jeśli macierz A jest rzadka, macierze A T A, AA T nie musza być rzadkie, a co gorsza, ich współczynnik uwarunkowania jest kwadratem współczynnika uwarunkowania macierzy wyjściowej. Alternatywnie, zamiast symetryzować macierz, można zmodyfikować algorytm, tak aby zamiast dwu, generował on cztery ciagi wektorów. Należy jednak pamiętać, że dla wielu typów macierzy taki algorytm bywa bardzo wolno zbieżny, a niekiedy nawet dochodzi do kompletnej stagnacji przed uzyskaniem rozwiazania: Copyright c 2010-12 P. F. Góra 5 33
Metoda gradientów bi-sprzężonych (Bi-Conjugate Gradients, Bi-CG) r 1 = b Ax 1, p 1 = r 1, r 1 0 dowolny, p 1 = r 1 while r k > ε end rt k r k α k = p T k Ap k r k+1 = r k α k Ap k r k+1 = r k α k A T p k β k = rt k+1 r k+1 r T k r k p k+1 = r k+1 + β k p k p k+1 = r k+1 + β k p k x k+1 = x k + α k p k (29) Copyright c 2010-12 P. F. Góra 5 34
Wektory wygenerowane w algorytmie (29) spełniaja następujace relacje: r T i r j = r T i r j = 0, i > j, r T i p j = r T i p j = 0, i > j, p T i Ap j = pt i AT p j = 0, i > j. (30a) (30b) (30c) Jeżeli w algorytmie (29) weźmiemy r 1 = Ar 1, we wszystkich krokach zachodzić będzie r k = Ar k oraz p k = Ap k. Jest to wersja przydatna dla rozwiazywania układów równań z macierzami symetrycznymi, ale nieokreślonymi dodatnio. Jest to przy okazji szczególny wariant algorytmu GMRES (generalised minimum residual), formalnie odpowiadajacego minimalizacj funkcjonału Φ(x) = 1 2 Ax b 2. (31) Copyright c 2010-12 P. F. Góra 5 35