gmres - MEiL
Transkrypt
gmres - MEiL
Metoda GMRES (Generalized Minimal Residual) Cel: wyznaczyć przybliżone rozwiązanie układu liniowego Ax b Macierz współczynników układu jest nieosobliwa i rzadka, poza tym – dowolna. Przestrzeń Kryłowa generowana przez wektor v : 2 m 1 ( v ) span v , Av , A v ,..., A v , m = 1,2,… m Idea metody GMRES: W m-tej iteracji wyznaczamy wektor xm taki, że xm rm 2 b Axm 2 min m ( b) i Zbieżność zagwarantowana dzięki temu, że 1 ( b) 2 ( b) ... m ( b) ... n ( b ) R n Realizacja: W przestrzeni m tworzymy bazę ortonormalną q1 , q2 ,..., qm . Zauważmy, że: Aqk k 1 (b) , k 1,2,..,m n 1 ( b ) { w R : w q , R } , q 1 1 1 b, b 2 Mają miejsce związki … Aq1 h11q1 h21q2 Aq2 h12 q1 h22 q2 h32 q2 Aq h q h q ... h m 1 1,m 1 1 2,m 1 2 m 1,m 1qm 1 hm ,m 1qm Aqm h1,m q1 h2,m q2 ... hm 1,m qm 1 hm ,m qm hm 1,m qm 1 W formie macierzowo wektorowej … h1,1 h1,2 h h 2,1 2,2 A q1 | q2 |... | qm q1 | q2 |... | qm | qm 1 0 h3,2 0 hm 1,m h1,m h2,m h3,m 0 macierz Hessenberga Zwięźle … A Qm Qm1 H m nn nm n( m 1) ( m 1)m Poszukujemy wektora xm w postaci kombinacji wektorów bazowych … xm Qm cm m xm c j q j j 1 Obliczamy wektor reszty (residuum)… rm b Axm b AQm cm b Qm1 H m cm Wykorzystamy następujące przedstawienie wektora prawych stron b q1 Qm1e1 , e1 [1,0,...,0]T R m1 Po podstawieniu … rm Qm1 ( e1 H m cm ) rm 2 e1 H m cm 2 Morał: minimalizacja normy euklidesowej residuum polega na rozwiązaniu z sensie najmniejszych kwadratów nadokreślonego układu liniowego H m cm e1 Układ ten zawiera m+1 równań z m niewiadomymi. Pseudokod algorytmu GMRES (wersja ogólna, tj. wektor startowy jest dowolny) START: wybierz x0 , oblicz r0 b Ax0 , połóż q1 r0 / , gdzie r0 DLA m 1,2,... : y Aqm DLA j 1,2,..., m : h jm qTj y y y h jm q j KONIEC j hm1,m y 2 ; jeżeli hm1,m 0 przejdź do obliczania xm i zakończ! qm1 y / hm1,m Rozwiąż (w sensie najmniejszych kwadratów) układ H m cm e1 xm Qm cm x0 Sprawdź kryterium zbieżności: jeśli spełnione – STOP. KONIEC m 2 . Komentarze: 1. Kolejne wektory bazy ortonormalnej wyznaczane są „w biegu”. W powyższym wariancie zastosowano zmodyfikowany algorytm ortogonalizacji GramaSchmidta. W kontekście przestrzeni Kryłowa proces konstrukcji baz ortogonalnych nazywamy algorytmem Arnoldiego. 2. Proces ortogonalizacji może być oparty na wykorzystaniu metody odbić (Householdera). 3. W praktycznych implementacjach nadokreślony układ równań rozwiązywany jest „sprytnie” tj. przy wykorzystaniu szczególnej struktury macierzy współczynników (macierz Hessenberga). 4. W praktyce „obowiązkowe” jest stosowanie preconditioningu. Podobnie jak w PCGM, preconditioning polega na rozwiązaniu wewnątrz iteracji pomocniczego układu liniowego z macierzą „podobną widmowo” do macierzy A. 5. W celu ograniczenia nadmiernego wzrostu liczby wektorów bazowych stosowany jest tzw. restartowany GMRES. Szczegóły – np. w monografii Y. Saada pt. „Iterative methods for sparse linear systems”, 2-gie wyd., SIAM 2003.