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:

  1. 0 r = b Ax 0
  2. Wybierz dowolny wektor 0 taki, że 00 ( , r ) ≠ 0 , np. 0 = r 0 . ( x , y ) oznacza iloczyn skalarny wektorów ( x , y ) = x T y
  3. 00 ρ = α = ω = 1
  4. 00 v = p = 0
  5. Dla i = 1, 2, 3, …
    1. 0 ρ ja = ( , r ja −1 )
    2. β = ( ρ ja / ρ ja -1 )( α / ω ja -1 )
    3. p ja = r ja -1 + β ( p ja -1 - ω ja -1 v ja -1 )
    4. v ja = Ap ja
    5. 0 α = ρ ja /( , v ja )
    6. h = x ja −1 + α p ja
    7. Jeśli h jest wystarczająco dokładne, ustaw x i = h i wyjdź
    8. s = r ja -1 - α v ja
    9. t = Jak
    10. ω ja = ( t , s )/( t , t )
    11. x ja = h + ω ja s
    12. Jeśli x i jest wystarczająco dokładne, to zakończ
    13. 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:

  1. 0 r = b Ax 0
  2. Wybierz dowolny wektor 0 taki, że 00 ( , r ) ≠ 0 , np. 0 = r 0
  3. 00 ρ = α = ω = 1
  4. 00 v = p = 0
  5. Dla i = 1, 2, 3, …
    1. 0 ρ ja = ( , r ja −1 )
    2. β = ( ρ ja / ρ ja -1 )( α / ω ja -1 )
    3. p ja = r ja -1 + β ( p ja -1 - ω ja -1 v ja -1 )
    4. y =   K.
      -1 2
       
        K.
      - 1 1
       
      p ja
    5. v ja = tak
    6. 0 α = ρ ja /( , v ja )
    7. h = x ja -1 + α y
    8. Jeśli h jest wystarczająco dokładne, to x i = h i wyjdź
    9. s = r ja -1 - α v ja
    10. z =   K.
      −1 2
       
        K.
      −1 1
       
      s
    11. t = Az
    12. ω ja = (   K.
      -1 1
       
      t ,   K.
      -1 1
       
      s )/(   K.
      -1 1
       
      t ,   K.
      -1 1
       
      t )
    13. x ja = h + ω ja z
    14. Jeśli x i jest wystarczająco dokładne, zakończ
    15. 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̃ =

gdzie à =   K.
-1 1
 
ZA   K.
-1 2
 
, = K. 2 x i =   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 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 ,
ja = ja -1 + β ja ja -1 ,
r ja = r ja -1 - α ja Ap ja ,
ja = ja -1 α ja ZA T ja .

Wybrano stałe α i oraz β i

α ja = ρ ja / ( ja , Ap ja ) ,
β ja = ρ ja / ρ ja −1

gdzie ρ i = ( i −1 , r i −1 ) tak, że reszty i kierunki poszukiwań spełniają odpowiednio biortogonalność i bikonjugację, tj. dla i j ,

( ja , r jot ) = 0 ,
( ja , Ap jo ) = 0 .

Pokazanie tego jest proste

r ja = P ja ( ZA ) r 0 ,
ja = P ja ( ZA T ) 0 ,
p ja +1 = T ja ( ZA ) r 0 ,
ja +1 = T ja ( ZA T ) 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

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 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 i , BiCGSTAB definiuje

ja +1 = Q ja ( ZA ) T ja ( ZA ) r 0 .

Zapisane w postaci wektorowej relacje powtarzalności dla i oraz i

ja = ja -1 + β ja ( ja - ω ja -1 ZA ) ja -1 ,
ja = ( ja - ω ja ZA ) ( ja -1 - α ja ZA ja ) .

Aby wyprowadzić relację rekurencyjną dla x i , zdefiniuj

s ja = ja -1 - α ja ZA ja .

Relację powtarzalności dla i można zatem zapisać jako

ja = ja -1 - α ja ZA ja - ω ja Jako ja ,

co odpowiada

x ja = x ja -1 + α ja 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 = ( ja -1 , r ja -1 ) = ( P ja -1 ( ZA T ) , P ja -1 ( ZA ) r ) .

Ponieważ BiCGSTAB nie śledzi jawnie 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 ) , P ja -1 ( ZA ) r ) = ( , Q ja -1 ( ZA ) P ja -1 ( ZA ) 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 ) 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 ) , 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 ) , 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 /( ja , Ap ja ) = ( P ja -1 ( ZA T ) , P ja -1 ( ZA ) r )/( T ja -1 ( ZA T ) , 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 ) , P ja -1 ( ZA ) r )/( Q ja -1 ( ZA T ) , ZA T ja -1 ( ZA ) r ) = ρ̃ ja / ( , ZA Q ja -1 ( ZA ) T ja -1 ( ZA ) r ) = ρ̃ ja / ( , Ap̃ ja ) .

Na koniec BiCGSTAB wybiera ω i , aby zminimalizować 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ż

  • 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 .