Podejrzewam, że ogólnie nie ma dużej różnicy między GMRES i CG dla matrycy SPD.
Powiedzmy, że mamy do rozwiązywania x = b z A symetrycznego dodatnia określony i przypuszczenie począwszy x 0 = 0 oraz generowanie iteruje z CG i GMRES, nazywamy je x c k i x g k . Obie metody iteracyjne będą budować x k z tej samej przestrzeni Kryłowa K k = { b , b , 2 b , ... } . Zrobią to na nieco inne sposoby.A x = bZAx0= 0xdokxsolkxkK.k= { b , A b , A2)b , … }
CG charakteryzuje się minimalizacją błędu w normie energetycznej indukowanej przez A , tak że
( A e c k , e c k ) = ( A ( x - x c k ) , x - x c k ) = min y ∈ K ( A ( x - y ) , x -midok= x - xdokZA
( Edok, edok) = ( A ( x - xdok) , x - xdok) = miny∈ K.( A ( x - y) , x - y) .
GMRES minimalizuje natomiast resztkowe , i robi to w dyskretnej normie ℓ 2 , tak że
( r k , r k ) = ( b - A x g k , b - A x g k ) = minimum y ∈ K ( b - r , b - Y ) .rk= b - A xsolkℓ2)
( rk, rk) = ( b - A xsolk, b - A xsolk) = miny∈ K.( b - A y, b - A y) .
Teraz, korzystając z równania błędu
, możemy również zapisać GMRES jako minimalizujące
( r k , r k ) = ( A e g k , A e g k ) = ( A 2 e g k , e g k )
gdzie Chcę podkreślić, że dotyczy to tylko macierzy
A SPD . Następnie mamy CG minimalizującą błąd w odniesieniu do
A.ek= rk(rk,rk) = ( A esolk, A esolk) = (A2)misolk,esolk)
ZAZAnormą i GMRES minimalizuje błędów w odniesieniu do
2 normy. Jeśli chcemy, aby zachowywały się zupełnie inaczej, intuicyjnie potrzebowalibyśmy
A, tak że te dwie normy są bardzo różne. Ale dla SPD
A normy te będą zachowywać się dość podobnie.
ZA2)ZAZA
Się jeszcze dokładniej, w pierwszej wersji z przestrzenią Kryłowa , zarówno CG i GMRES skonstruuje w przybliżeniu formy x 1 = α b . CG wybierze
α = ( b , b )K.1= { b }x1= α b
i GMRES wybierze
α=(Ab,b)
α = ( b , b )( A b , b )
Jeślijest diagonalna z wejściami
(ε,1,1,1,...)i
b=(1,1,0,0,0,...),a następnie jako
ε→0pierwszy etap CG będzie dwukrotnie większe niż pierwsze GMRES krok. Prawdopodobnie możesz zbudować
Ai
bα = ( A b , b )( A2)b , b ).
ZA( ϵ , 1 , 1 , 1 , … )b = ( 1 , 1 , 0 , 0 , 0 , … )ϵ → 0ZAb tak, że ten współczynnik dwóch różnic utrzymuje się przez całą iterację, ale wątpię, żeby stało się jeszcze gorzej.