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  Qm1 H m
nn nm
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  Qm1 H m cm
Wykorzystamy następujące przedstawienie wektora prawych stron
b   q1   Qm1e1
,
e1  [1,0,...,0]T  R m1
Po podstawieniu …
rm  Qm1 (  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
hm1,m  y 2 ; jeżeli hm1,m  0 przejdź do obliczania xm i zakończ!
qm1  y / hm1,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.