Rozwiązywanie algebraicznych układów równań liniowych metodami iteracynymi Plan wykładu: 1. Przykłady macierzy rzadkich i formaty ich zapisu 2. Metody: Jacobiego, Gaussa-Seidla, nadrelaksaci 3. Zbieżność metod iteracynych 4. Metody: nawiększego spadku, sprzężonego gradientu.
Matrix Market - DWT: Everstine's collection from the Harwell-Boeing Collection DWT 87: WIeża DWT 234: Wieża z platformą DWT 607: Wirnik Wankela Łopata turbiny 2802 x 2802, 6342 NZ Cylinder z kołnierzem 2919 x 2919, 7593 NZ 2
Wybrane formaty zapisu macierzy rzadkich - CSR (compressed sparse row) trzy wektory: wartości, numery kolumn, początki wierszy (pierwsze nie-zero w wierszu) - CSC (compressed sparse column) trzy wektory: wartości, numery wierszy, początki kolumn (pierwsze nie-zero w kolumnie) - CF (coordinate format) trzy wektory dla: wartości, oraz numery kolumn i wierszy dla nie-zer CSR dla macierzy symetryczne zapamiętuemy tylko macierz U wartości = (1-1 -3 5 4 6 4 7-5) kolumna = (1 2 4 2 3 4 5 4 5) wiersz = (1 4 5 8 9 10) CSR dla macierzy niesymetryczne wartości = (1-1 -3-2 5 4 6 4-4 2 7 8-5) kolumna = (1 2 4 1 2 3 4 5 1 3 4 2 5) wiersz = (1 4 6 9 12 14) 3
Szukamy rozwiązania układu n równań liniowych Ax = b; A 2 R n n ; x; b 2 R n Oznaczmy A ako sumę 3 macierzy A = L + D + U Dlaczego używamy metod iteracynych? Przykład N=50000 liczba równań w układzie fl 2 = 8 batów/liczbę podwóna precyza L D U a) Ograniczenia pamięci P d <N 2 fl 2 = 20 GB (10GB) zaalokowana pamięć w komputerze Ale eśli układ est np. pięcioprzekątniowy to do zapisu macierzy A (w postaci wektorowe) potrzebuemy tylko P i <5Nfl 2 =2MB pamięci b) większa wydaność dla macierzy rzadkich (liczba elementów macierzy różnych od 0 est rzędu N) w stosunku do metod bezpośrednich Macierze takie często poawiaą się w obliczeniach naukowych i inżynierskich (FEM, PDE) Metoda Jacobiego Dla dowolnie wybranego przybliżenia rozwiązania x 0 chcemy tak przekształacać iteracynie wektor x (k) aby doprowadzić do znikania składowych wektora reszt w k iteracach co można zapisać x = [» 1 ;» 2 ; : : : ;» n ] b = [ 1; 2; : : : ; n] (b Ax (k) ) i = 0 i nx a i» (k) = 0 4
a ii» (k) i = i Składowe wektora reszt znikaą w kolenych iteracach, więc możemy zapisać» k+1 i = 1 a ii nx 6=i 0 oraz dla całego wektora a i» (k) ; i = 1; 2; : : : ; n B @ i nx 6=i a i» (k) 1 C A» (k+1) i = = 1 a ii i 0 @ Xi 1 =1 Xi 1 =1 a i» (k+1) i a ii» (k+1) i nx =i+1 a i» (k+1) a i» (k) = 0 nx =i+1 a i» (k) + i 1 A x (k+1) = D 1 (L + U)x (k) + D 1 b W metodzie Jacobiego obliczamy koleno wszystkie składowe nowego przybliżenia wektora rozwiązań. Metoda Gaussa-Seidla b Lx (k+1) Dx (k+1) Ux (k) = 0 x (k+1) = D 1 Lx (k+1) D 1 Ux (k) + D 1 b Różni się od metody Jacobiego tym, że obliczone uż składniki» i k ; i = 1; 2; : : : ; wykorzystywane są w obliczeniach składników +1,+2,...,n. 5
Metody Jacobiego i GS można zapisać ogólnie w postaci Mx (k+1) = Nx (k) + b = (M A)x (k) + b A = M N metoda Jacobiego: metoda Gaussa-Seidela: Metoda relaksaci M = D M = D + L b Lx (k+1) Dx (k+1) Ux (k) = 0 A = L + D + U!A =!D +!L +!U!A = (D +!L) + (!U (1!)D) Macierze iteruące i ich przekształcenia (preconditioning) Ogólny schemat iteracyny x (k+1) = Gx (k) + f G J (A) = I D 1 A G GS (A) = I (D + L) 1 A przy podziale macierzy A A = M N definiuemy iteracę do ustalonego punktu w ako x (k+1) = M 1 Nx (k) + M 1 b Z porównania obu zapisów dostaemy Metoda nadrelaksaci (SOR) (Successive Over Relaxation)» (k+1) i =!» (k+1)gs i! 2 (1; 2) + (1!)» (k) i (D +!L)x (k+1) = [!U + (1!)D]x k +!b G = M 1 N = M 1 (M A) = I M 1 A f = M 1 b 6
Proces iteracyny x (k+1) = Gx (k) + f możemy potraktować także ako problem rozwiązania układu (I G)x = f co dla G=I-M -1 A dae układ równań M 1 Ax = M 1 b Układ ten ma identyczne rozwiązanie ak układ pierwotny. Co nam to dae? Z przepisu iteracynego x (k+1) = M 1 Nx (k) + M 1 b wynika, że musimy w każde iteraci obliczyć M 1 Nx (k) = M 1 y (k) = z (k) Ponieważ M -1 nie znamy, więc chcemy niewielkim kosztem rozwiązać układ równań Mz (k) = y (k) Dla metod Jacobiego, Gaussa-Seidla i SOR macierz ta ma postać: M J = D M GS = D + L M SOR = 1 (D +!L)! Zbieżność metod iteracynych Dla macierzy definiuemy liczbę którą nazywamy promieniem spektralnym macierzy. Dla dowolne macierzy kwadratowe zgodne z normą wektorów prawdziwa est nierówność Lemat Tw. Dla każdego wektora dążą do zera wtedy i tylko wtedy gdy Dowód ^ ">0 A 2 R n n i A; _ ½(A) = max i i=1;2;:::;n i 2 Z A p A p ½(A) + " x 2 R n Ax; A 2 x; : : : ; A i x; : : : " = 1 ½(A) 2 A p 1 + ½(A) < 1 2 A n x p A n p x p! 0 A n x! 0 elementy ciągu ½(A) < 1 7
Tw. Ciąg wektorów którego elementy wyznaczamy według wzoru est zbieżny do edynego punktu granicznego wtedy i tylko wtedy gdy Dowód x (0) ; x (1) ; : : : ; x (i) ; : : : x (i+1) = Gx (i) + f; i = 0; 1; : : : x (i+1) = Gx (i) + f = G(Gx (i 1) + f) + f = : : : = G i+1 x (0) + (G i f + G i 1 f + : : : + f) lim i!1 Gi+1 x (0)! 0 f + G 1 f + : : : + G i f + : : : p 1X f p G i p = f p 1 G p i=0 ½(G) < 1 Zbieżność w metodzie SOR G SOR = (D +!L) 1 [!U + (1!)D] det(g SOR ) = det (D +!L) 1 det (D +!L) 1 = det (!U + (1!)D) det (!U + (1!)D) = det((1!)d) det(g SOR ) = (1!) n det(g SOR ) = 1 2 : : : n 1! 1 det(d +!L) = 1 det(d) = (1!) n det(d) max i=1;:::;n i = ½(G SOR ) < 1 0 <! < 2 Jeśli macierz układu est symetryczna, dodatniookreślona i nieosobliwa to procedura iteracyna est zawsze zbieżna dla 0 <! < 2 8
Minimalizaca formy kwadratowe Jeśli Ax=b i r=b-ax to możemy utworzyć formę kwadratową postaci R = r T r = (b Ax) T (b Ax) Związek gradientu Q z kierunkiem poszukiwania przybliżonego rozwiązania. Prosta interpretaca geometryczna w 2D powierzchnie o stałe wartości Q maą kształt elipsy (hiperelipsy w przestrzeni o większe liczbie wymiarów). Która est dodatniookreślona i przymue wartość minimalną dla dokładnego rozwiązania x. W dalszych rozważaniach zakładamy że macierz A est symetryczna i dodatniookreślona, wówczas możemy użyć formy kwadratowe postaci Q = 1 2 xt Ax x T b która ma minimum w x, ponieważ Q(x + x) Q(x) = 1 2 xt A x > 0 Proces poszukiwania rozwiązania dokładnego przebiega iteracynie, t. szukamy ciągu przybliżeń x 1 ; x 2 ; x 3 ; : : : x 4 x 5 x 6 gdzie: x i+1 = x i + i v i x 3 Od sposobu wyznaczania α i i v i zależy zbieżność i x 1 x 2 szybkość metody. 9
Metoda nawiększego spadku Przybliżone rozwiązanie w i+1 iteraci ma postać x i+1 = x i + i v i Jako v i wybieramy kierunek gradientu Q rq = Ax i b = r i v i = r i Kolene przybliżenie w metodzie nawiększego spadku opisue wyrażenie x i+1 = x i + rt i r i ri T Ar i dla którego zachodzi warunek Q(x i+1 ) < Q(x i ) Metoda może być ednak wolnozbieżna w przypadku gdy hiperelipsoida ma wydłużony kształt co odpowiada złemu uwarunkowaniu układu. r i W celu znalezienia współczynnika i obliczamy Q(x i+1 ) Q(x i i r i ) = 1 2 xt i r 1 2 xt i b + 1 2 2 i r T i Ar i + i r T i r i i różniczkuemy e po parametrze wariacynym w celu znalezienia minimum @Q @ i = r T i r i + i r T i Ar i @Q @ i = 0! i = rt i r i r T i Ar i 10
Metoda sprzężonego gradientu Założenia: - x d est rozwiązaniem dokładnym - ciąg wektorów v 1 ; v 2 ; v 3 ; : : : stanowi bazę w n-wymiarowe przestrzeni euklidesowe Różnicę rozwiązania dokładnego i przybliżonego możemy zapisać w postaci kombinaci liniowe elementów bazy x d x 1 = nx v =1 Jeśli elementy bazy są ortogonalne to można łatwo wyznaczyć współczynniki kombinaci liniowe = vt (x d x 1 ) v T v ; = 1; 2; : : : Rządamy więc, aby wektory bazy spełniały warunek A-ortogonalności (wektory A-sprzężone) v T Av i = 0 $ i 6= Dla macierzy dodatniookreślone zachodzi warunek v T i Av i 6= 0 Jak skonstruować bazę A-ortogonalną? Jeśli dysponuemy zwykłą bazą wektorów u 1 ; u 2 ; u 3 ; : : : to możemy ą poddać procesowi ortogonalizaci Grama-Schmidta v 1 = u 1 v i+1 = u i+1 + ix k=1 i+1;k v k Ale powyższy wzór wymaga modyfikaci ponieważ nie znamy wektora x d, wiemy ednak, że Ax d =b więc = vt A(x d x 1 ) v T Av = vt r 1 v T Av i+1;k = vt k Au i+1 v T k Av k Jak utworzyć ciąg wektorów u i? 11
W metodzie CG bazę stanowią wektory reszt (kierunki gradientów), które dzięki A- ortogonalizaci są sprzężone. Kolene przybliżenia w podstawowe metodzie CG wyznaczamy zgodnie z poniższym schematem: W podstawowe metodzie CG w każde iteraci należy wykonać dwa mnożenia macierz-wektor Av i Ar i+1 i to te dwie operace determinuą nakład obliczeń. Algorytm metody CG można przedstawić w alternatywne postaci, gdzie wymagamy tylko ednego mnożenia macierz-wektor: v 1 = r 1 = b Ax 1 i = vt i r i v T i Av i x i+1 = x i + i v i r i+1 = r i i Av i i = vt i Ar i+1 vi T Av i v i+1 = r i+1 + iv i Dzięki A-ortogonalności w każde iteraci wystarczy wyznaczyć tylko eden współczynnik (reszta współczynników znika). v 1 = r 1 = b Ax 1 i = rt i r i v i Av i x i+1 = x i + i v i r i+1 = r i i Av i i = rt i+1 r i+1 ri T r i v i+1 = r i+1 + iv i Maksymalna liczba iteraci w metodzie CG wynosi n+1 więc est metodą skończoną. Zazwycza do uzyskania akceptowalnego rozwiązania wystarcza wykonanie znacznie mniesze liczby iteraci. 12