Metoda stabilizowana gradientem dwukoniugatu
W numerycznej algebrze liniowej metoda stabilizowanego gradientu biconjugate , często określana skrótem BiCGSTAB , jest iteracyjną metodą opracowaną przez HA van der Vorsta do numerycznego rozwiązywania niesymetrycznych układów liniowych . Jest to wariant metody gradientu dwukoniugatu (BiCG) i ma szybszą i płynniejszą zbieżność niż oryginalny BiCG, a także inne warianty, takie jak metoda kwadratu gradientu sprzężonego (CGS). Jest to podprzestrzeni Kryłowa . W przeciwieństwie do oryginalnej metody BiCG, nie wymaga ona mnożenia przez transpozycję macierzy systemu.
Kroki algorytmiczne
Niekondycjonowany BiCGSTAB
Aby rozwiązać układ liniowy Ax = b , BiCGSTAB zaczyna od wstępnego przypuszczenia x 0 i postępuje w następujący sposób:
- 0 r = b − Ax 0
- Wybierz dowolny wektor r̂ 0 taki, że 00 ( r̂ , r ) ≠ 0 , np. 0 r̂ = r 0 . ( x , y ) oznacza iloczyn skalarny wektorów ( x , y ) = x T y
- 00 ρ = α = ω = 1
- 00 v = p = 0
- Dla i = 1, 2, 3, …
- 0 ρ ja = ( r̂ , r ja −1 )
- β = ( ρ ja / ρ ja -1 )( α / ω ja -1 )
- p ja = r ja -1 + β ( p ja -1 - ω ja -1 v ja -1 )
- v ja = Ap ja
- 0 α = ρ ja /( r̂ , v ja )
- h = x ja −1 + α p ja
- Jeśli h jest wystarczająco dokładne, ustaw x i = h i wyjdź
- s = r ja -1 - α v ja
- t = Jak
- ω ja = ( t , s )/( t , t )
- x ja = h + ω ja s
- Jeśli x i jest wystarczająco dokładne, to zakończ
- r ja = s - ω ja t
Wstępnie kondycjonowany BiCGSTAB
Warunki wstępne są zwykle używane do przyspieszenia zbieżności metod iteracyjnych. Aby rozwiązać układ liniowy Ax = b z warunkiem wstępnym K = K 1 K 2 ≈ A , BiCGSTAB zaczyna od wstępnego przypuszczenia x 0 i postępuje w następujący sposób:
- 0 r = b − Ax 0
- Wybierz dowolny wektor r̂ 0 taki, że 00 ( r̂ , r ) ≠ 0 , np. 0 r̂ = r 0
- 00 ρ = α = ω = 1
- 00 v = p = 0
- Dla i = 1, 2, 3, …
- 0 ρ ja = ( r̂ , r ja −1 )
- β = ( ρ ja / ρ ja -1 )( α / ω ja -1 )
- p ja = r ja -1 + β ( p ja -1 - ω ja -1 v ja -1 )
- y = K.
-1 2 K.
- 1 1 p ja - v ja = tak
- 0 α = ρ ja /( r̂ , v ja )
- h = x ja -1 + α y
- Jeśli h jest wystarczająco dokładne, to x i = h i wyjdź
- s = r ja -1 - α v ja
- z = K.
−1 2 K.
−1 1 s - t = Az
- ω ja = ( K.
-1 1 t , K.
-1 1 s )/( K.
-1 1 t , K.
-1 1 t ) - x ja = h + ω ja z
- Jeśli x i jest wystarczająco dokładne, zakończ
- r ja = s - ω ja t
To sformułowanie jest równoważne z zastosowaniem BiCGSTAB bez wstępnego kondycjonowania do jawnie wstępnie kondycjonowanego systemu
- Ãx̃ = b̃
gdzie à = K.
-1 1 ZA K.
-1 2 , x̃ = K. 2 x i b̃ = K.
-1 1 b . Innymi słowy, przy tym sformułowaniu możliwe jest zarówno warunkowanie wstępne w lewo, jak iw prawo.
Pochodzenie
BiCG w postaci wielomianu
i W BiCG kierunki wyszukiwania pi i p̂ są i oraz reszty ri i r̂ aktualizowane przy użyciu następujących relacji powtarzalności :
- p ja = r ja -1 + β ja p ja -1 ,
- p̂ ja = r̂ ja -1 + β ja p̂ ja -1 ,
- r ja = r ja -1 - α ja Ap ja ,
- r̂ ja = r̂ ja -1 − α ja ZA T p̂ ja .
Wybrano stałe α i oraz β i
- α ja = ρ ja / ( p̂ ja , Ap ja ) ,
- β ja = ρ ja / ρ ja −1
gdzie ρ i = ( r̂ i −1 , r i −1 ) tak, że reszty i kierunki poszukiwań spełniają odpowiednio biortogonalność i bikonjugację, tj. dla i ≠ j ,
- ( r̂ ja , r jot ) = 0 ,
- ( p̂ ja , Ap jo ) = 0 .
Pokazanie tego jest proste
- r ja = P ja ( ZA ) r 0 ,
- r̂ ja = P ja ( ZA T ) r̂ 0 ,
- p ja +1 = T ja ( ZA ) r 0 ,
- p̂ ja +1 = T ja ( ZA T ) r̂ 0
gdzie P i ( A ) i T i ( A ) są wielomianami i -tego stopnia w A . Te wielomiany spełniają następujące relacje powtarzalności:
- P. ja ( ZA ) = P. ja -1 ( ZA ) - α ja ZA T ja -1 ( ZA ) ,
- T ja ( ZA ) = P ja ( ZA ) + β ja +1 T ja -1 ( ZA ) .
Wyprowadzenie BiCGSTAB z BiCG
Nie jest konieczne wyraźne śledzenie pozostałości i kierunków poszukiwań BiCG. Innymi słowy, iteracje BiCG mogą być wykonywane niejawnie. W BiCGSTAB chce się mieć relacje powtarzalności dla
- r̃ ja = Q ja ( ZA ) P ja ( ZA ) r 0
gdzie Q ja ( A ) = ( I − ω 1 A )( I − ω 2 A )⋯( I − ω i A ) z odpowiednimi stałymi ω j zamiast r i = P ja ( A ) r 0 w nadziei, że Q i ( A ) umożliwi szybszą i płynniejszą zbieżność w r̃ i niż r i .
Z relacji rekurencji dla P i ( A ) i T i ( A ) oraz definicji Q i ( A ) wynika, że
- 000 Q ja ( ZA ) P ja ( ZA ) r = ( ja - ω ja ZA ) ( Q ja -1 ( ZA ) P ja -1 ( ZA ) r - α ja ZA Q ja -1 ( ZA ) T ja -1 ( ZA ) r ) ,
co pociąga za sobą konieczność relacji rekurencyjnej dla Q i ( A ) T i ( A ) r 0 . Można to również wywnioskować z relacji BiCG:
- 00 Q ja ( ZA ) T ja ( ZA ) r = Q ja ( ZA ) P ja ( ZA ) r + β ja +1 ( ja - ω ja ZA ) Q ja -1 ( ZA ) P ja -1 ( ZA ) r 0 .
Podobnie jak w przypadku definiowania r̃ i , BiCGSTAB definiuje
- p̃ ja +1 = Q ja ( ZA ) T ja ( ZA ) r 0 .
Zapisane w postaci wektorowej relacje powtarzalności dla p̃ i oraz r̃ i są
- p̃ ja = r̃ ja -1 + β ja ( ja - ω ja -1 ZA ) p̃ ja -1 ,
- r̃ ja = ( ja - ω ja ZA ) ( r̃ ja -1 - α ja ZA p̃ ja ) .
Aby wyprowadzić relację rekurencyjną dla x i , zdefiniuj
- s ja = r̃ ja -1 - α ja ZA p̃ ja .
Relację powtarzalności dla r̃ i można zatem zapisać jako
- r̃ ja = r̃ ja -1 - α ja ZA p̃ ja - ω ja Jako ja ,
co odpowiada
- x ja = x ja -1 + α ja p̃ ja + ω ja s ja .
Wyznaczanie stałych BiCGSTAB
Teraz pozostaje wyznaczenie stałych BiCG α i oraz β i oraz wybranie odpowiedniego ω i .
W BiCG, β ja = ρ ja / ρ ja −1 z
- 00 ρ ja = ( r̂ ja -1 , r ja -1 ) = ( P ja -1 ( ZA T ) r̂ , P ja -1 ( ZA ) r ) .
Ponieważ BiCGSTAB nie śledzi jawnie r̂ i lub r i , ρ i nie jest natychmiast obliczalne z tego wzoru. Można to jednak powiązać ze skalarem
- 00000 ρ̃ ja = ( Q ja -1 ( ZA T ) r̂ , P ja -1 ( ZA ) r ) = ( r̂ , Q ja -1 ( ZA ) P ja -1 ( ZA ) r ) = ( r̂ , r ja - 1 ) .
Ze względu na biortogonalność, r i −1 = P i −1 ( A ) r 0 jest prostopadła do U i −2 ( A T ) r̂ 0 gdzie U i −2 ( A T ) jest dowolnym wielomianem stopnia i − 2 w A T . Stąd i −1 ( A ) r liczą się w iloczynach skalarnych ( P i −1 ( A T ) r̂ , P P i −1 ( A T ) 00 Q i −1 ( A T ) ) tylko wyrazy najwyższego rzędu z i i 00 ( Q ja -1 ( ZA T ) r̂ , P ja -1 ( ZA ) r ) . Wiodące współczynniki P i −1 ( A T ) i Q i −1 ( A T ) to (−1) i −1 α 1 α 2 ⋯ α i −1 oraz (−1) i −1 ω 1 ω 2 odpowiednio ⋯ ω ja −1 . Wynika, że
- ρ ja = ( α 1 / ω 1 ) ( α 2 / ω 2 )⋯( α ja -1 / ω ja -1 ) ρ̃ ja ,
a zatem
- β ja = ρ ja / ρ ja -1 = ( ρ̃ ja / ρ̃ ja -1 ) ( α ja -1 / ω ja -1 ) .
W podobny sposób można wyprowadzić prosty wzór na α i . w BiCG,
- 0000 α ja = ρ ja /( p̂ ja , Ap ja ) = ( P ja -1 ( ZA T ) r̂ , P ja -1 ( ZA ) r )/( T ja -1 ( ZA T ) r̂ , ZA T ja - 1 ( A ) r ) .
Podobnie jak w powyższym przypadku, tylko wyrazy najwyższego rzędu P i −1 ( A T ) i T i −1 ( A T ) mają znaczenie w iloczynach skalarnych dzięki biortogonalności i bikonjugacji. Zdarza się, że P i −1 ( A T ) i T i −1 ( A T ) mają ten sam współczynnik wiodący. W ten sposób można je zastąpić jednocześnie Q i −1 ( A T ) we wzorze, który prowadzi do
- 0000000 α ja = ( Q ja -1 ( ZA T ) r̂ , P ja -1 ( ZA ) r )/( Q ja -1 ( ZA T ) r̂ , ZA T ja -1 ( ZA ) r ) = ρ̃ ja / ( r̂ , ZA Q ja -1 ( ZA ) T ja -1 ( ZA ) r ) = ρ̃ ja / ( r̂ , Ap̃ ja ) .
Na koniec BiCGSTAB wybiera ω i , aby zminimalizować r̃ i = ( ja - ω i A ) s i w normie 2 jako funkcję ω i . Osiąga się to, gdy
- (( ja - ω ja ZA ) s ja , Ponieważ ja ) = 0 ,
dając optymalną wartość
- ω ja = ( Jak ja , s ja )/( Jak ja , Jak ja ) .
Uogólnienie
BiCGSTAB można postrzegać jako połączenie BiCG i GMRES , gdzie po każdym kroku BiCG następuje krok GMRES( 1 ) (tj. . Jednak ze względu na zastosowanie minimalnych wielomianów resztkowych pierwszego stopnia taka naprawa może nie być skuteczna, jeśli macierz A ma duże zespolone pary własne. W takich przypadkach BiCGSTAB prawdopodobnie znajdzie się w stagnacji, co potwierdzają eksperymenty numeryczne.
Można oczekiwać, że minimalne wielomiany resztkowe wyższego stopnia mogą lepiej poradzić sobie z tą sytuacją. Daje to początek algorytmom obejmującym BiCGSTAB2 i bardziej ogólny BiCGSTAB( l ). W BiCGSTAB( l ) krok GMRES( l ) następuje po każdych l krokach BiCG. BiCGSTAB2 jest równoważne BiCGSTAB( l ) z l = 2 .
Zobacz też
- Metoda gradientu dwukoniugatowego
- Metoda kwadratu gradientu sprzężonego
- Metoda gradientu sprzężonego
- Van der Vorst, HA (1992). „Bi-CGSTAB: szybki i płynnie zbieżny wariant Bi-CG do rozwiązywania niesymetrycznych systemów liniowych”. SIAM J. Sci. Stan. Oblicz. 13 (2): 631–644. doi : 10.1137/0913035 . hdl : 10338.dmlcz/104566 .
- Saad, Y. (2003). "§7.4.2 BICGSTAB" . Metody iteracyjne dla rzadkich systemów liniowych (wyd. 2). SYJAM. s. 231–234 . ISBN 978-0-89871-534-7 .
- ^ Gutknecht, MH (1993). „Warianty BICGSTAB dla macierzy o złożonym widmie”. SIAM J. Sci. Oblicz. 14 (5): 1020–1033. doi : 10.1137/0914062 .
- Bibliografia _ Fokkema, DR (listopad 1993). „BiCGstab ( l ) dla równań liniowych obejmujących macierze niesymetryczne o widmie zespolonym” (PDF) . Transakcje elektroniczne w analizie numerycznej . Kent, OH: Kent State University. 1 : 11–32. ISSN 1068-9613 .