Jedną rzeczą, która CG ma na jej korzyść jest to, że nie jest zminimalizowanie dyskretną l2 normę dla swoich szczątkowych wielomianów (co robi GMRES). Zamiast tego minimalizuje normę indukowaną macierzą i bardzo często ta norma indukowana macierzą jest bardzo zbliżona do normy energetycznej dla dyskretyzacji problemów fizycznych, i często jest to znacznie bardziej rozsądna norma do pomiaru błędu z powodu nadchodzących właściwości konserwujących z fizyki.
Tego rodzaju efekt można osiągnąć również za pomocą GMRES, jeśli przeprowadzenie rozkładu Cholesky'ego na macierz masy nie jest zbyt drogie, można zmusić produkty wewnętrzne do uzyskania produktów energii wewnętrznej, które chcesz.
Wtedy przypadki, w których należy oczekiwać, że CG będzie działać bardzo inaczej niż GMRES, to wtedy, gdy stałe implikowane w równoważności norm są bardzo różne. To może być prawdą, na przykład w sposobie wysokiej celu widmowego Galerkina gdzie dyskretne l2 normy stosowane w GMRES traktuje wszystkich stopni swobody za równe, choć w rzeczywistości wielomianowe gradienty najostrzejsze blisko granic (stąd węzeł klasterów), a więc stałe normą równoważności pomiędzy tą normą, a mówiąc ciągłe L2 normą podane przez matrycę masa może być bardzo duża.
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 = b ZA x0= 0 xdok xsolk xk K.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 - xdok ZA
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)
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)
źródło
Jedną rzeczą jest to, że GMRES nigdy nie jest stosowany wszędzie tam, gdzie można zastosować CG. Nie sądzę, żeby porównywanie tych dwóch miało sens. W przypadku matryc SPD CG jest zdecydowanie zwycięzcą ze względu na wymagania dotyczące pamięci i powody wspomniane powyżej. Ciekawym pytaniem byłoby znalezienie rozszerzenia CG, które ma zastosowanie do problemów, w których nie można zastosować CG. Istnieją metody takie jak BiCG-stab, które nie wymagają liniowego zwiększania pamięci, jak GMRES, ale zbieżność nie jest tak dobra jak GMRES (czasami nawet przy zrestartowanym GMRES).
źródło