Metoda stabilizovaná pomocí dvojitého konjugátu - Biconjugate gradient stabilized method
tento článek může být pro většinu čtenářů příliš technická na to, aby je pochopili. Prosím pomozte to vylepšit na aby to bylo srozumitelné pro neodborníky, aniž by byly odstraněny technické podrobnosti. (Květen 2015) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) |
v numerická lineární algebra, metoda stabilizovaná bikonjugovaným gradientem, často zkráceně jako BiCGSTAB, je iterační metoda vyvinutý uživatelem H. A. van der Vorst pro numerické řešení nesymetrických lineární systémy. Jedná se o variantu biconjugate gradientní metoda (BiCG) a má rychlejší a plynulejší konvergenci než původní BiCG a další varianty, jako je metoda sdruženého přechodu na druhou (CGS). Je to Krylovský podprostor metoda.
Algoritmické kroky
Bezpodmínečný BiCGSTAB
Řešit lineární systém Sekera = b, BiCGSTAB začíná počátečním odhadem X0 a postupuje následovně:
- r0 = b − Sekera0
- Vyberte libovolný vektor r̂0 takhle (r̂0, r0) ≠ 0, např. r̂0 = r0 . (X,y) označuje tečkový produkt vektorů (X,y) = XT y
- ρ0 = α = ω0 = 1
- proti0 = str0 = 0
- Pro i = 1, 2, 3, …
- ρi = (r̂0, ri−1)
- β = (ρi/ρi−1)(α/ωi−1)
- stri = ri−1 + β(stri−1 − ωi−1protii−1)
- protii = Api
- α = ρi/(r̂0, protii)
- h = Xi−1 + αstri
- Li h je dostatečně přesný, pak je nastaven Xi = h a skončit
- s = ri−1 − αprotii
- t = Tak jako
- ωi = (t, s)/(t, t)
- Xi = h + ωis
- Li Xi je dostatečně přesný, pak ukončete
- ri = s − ωit
Předpřipravený BiCGSTAB
Předpoklady se obvykle používají k urychlení konvergence iteračních metod. Řešit lineární systém Sekera = b s kondicionérem K. = K.1K.2 ≈ A, předem připravený BiCGSTAB začíná počátečním odhadem X0 a postupuje následovně:
- r0 = b − Sekera0
- Vyberte libovolný vektor r̂0 takhle (r̂0, r0) ≠ 0, např. r̂0 = r0
- ρ0 = α = ω0 = 1
- proti0 = str0 = 0
- Pro i = 1, 2, 3, …
- ρi = (r̂0, ri−1)
- β = (ρi/ρi−1)(α/ωi−1)
- stri = ri−1 + β(stri−1 − ωi−1protii−1)
- y = K. −1
2 stri - protii = Ay
- α = ρi/(r̂0, protii)
- h = Xi−1 + αy
- Li h je tedy dostatečně přesný Xi = h a skončit
- s = ri−1 − αprotii
- z = K. −1
2 s - t = Az
- ωi = (K. −1
1 t, K. −1
1 s)/(K. −1
1 t, K. −1
1 t) - Xi = h + ωiz
- Li Xi je dostatečně přesný, než přestat
- ri = s − ωit
Tato formulace je ekvivalentní použití bezprecedentního BiCGSTABu na explicitně předpřipravený systém
- Sekera = b̃
s A = K. −1
1 AK. −1
2 , X = K.2X a b̃ = K. −1
1 b. Jinými slovy, u této formulace je možná jak pravá, tak pravá stabilizace.
Derivace
BiCG v polynomické formě
V BiCG směry hledání stri a p̂i a zbytky ri a r̂i jsou aktualizovány pomocí následujících relace opakování:
- stri = ri−1 + βistri−1,
- p̂i = r̂i−1 + βip̂i−1,
- ri = ri−1 − αiApi,
- r̂i = r̂i−1 − αiATp̂i.
Konstanty αi a βi jsou vybráni
- αi = ρi/(p̂i, Api),
- βi = ρi/ρi−1
kde ρi = (r̂i−1, ri−1) tak, aby zbytky a směry hledání splňovaly biortogonalitu a bikonjugaci, tj. pro i ≠ j,
- (r̂i, rj) = 0,
- (p̂i, Apj) = 0.
Je jednoduché to ukázat
- ri = Pi(A)r0,
- r̂i = Pi(AT)r̂0,
- stri+1 = Ti(A)r0,
- p̂i+1 = Ti(AT)r̂0
kde Pi(A) a Ti(A) jsou ipolynomy th-stupně v A. Tyto polynomy splňují následující relace opakování:
- Pi(A) = Pi−1(A) − αiATi−1(A),
- Ti(A) = Pi(A) + βi+1Ti−1(A).
Odvození BiCGSTAB od BiCG
Není nutné výslovně sledovat zbytky a směry hledání BiCG. Jinými slovy lze iterace BiCG provádět implicitně. V BiCGSTABu si někdo přeje mít relace opakování pro
- r̃i = Qi(A)Pi(A)r0
kde Qi(A) = (Já − ω1A)(Já − ω2A)⋯(Já − ωiA) s vhodnými konstantami ωj namísto ri = Pi(A) v naději, že Qi(A) umožní rychlejší a plynulejší konvergenci v systému Windows r̃i než ri.
Vyplývá to z relací opakování pro Pi(A) a Ti(A) a definice Qi(A) že
- Qi(A)Pi(A)r0 = (Já − ωiA)(Qi−1(A)Pi−1(A)r0 − αiAQi−1(A)Ti−1(A)r0),
což s sebou nese nutnost relace opakování pro Qi(A)Ti(A)r0. To lze také odvodit ze vztahů BiCG:
- Qi(A)Ti(A)r0 = Qi(A)Pi(A)r0 + βi+1(Já − ωiA)Qi−1(A)Pi−1(A)r0.
Podobně jako definování r̃i, Definuje BiCGSTAB
- p̃i+1 = Qi(A)Ti(A)r0.
Napsáno ve vektorové formě, relace opakování pro p̃i a r̃i jsou
- p̃i = r̃i−1 + βi(Já − ωi−1A)p̃i−1,
- r̃i = (Já − ωiA)(r̃i−1 − αiAp̃i).
Odvodit relaci opakování pro Xi, definovat
- si = r̃i−1 − αiAp̃i.
Vztah opakování pro r̃i pak lze zapsat jako
- r̃i = r̃i−1 − αiAp̃i − ωiTak jakoi,
což odpovídá
- Xi = Xi−1 + αip̃i + ωisi.
Stanovení BiCGSTAB konstant
Nyní zbývá určit konstanty BiCG αi a βi a vybrat vhodný ωi.
V BiCG, βi = ρi/ρi−1 s
- ρi = (r̂i−1, ri−1) = (Pi−1(AT)r̂0, Pi−1(A)r0).
Protože BiCGSTAB výslovně nesleduje r̂i nebo ri, ρi není z tohoto vzorce okamžitě vypočítatelný. Může to však souviset se skalárem
- ρ̃i = (Qi−1(AT)r̂0, Pi−1(A)r0) = (r̂0, Qi−1(A)Pi−1(A)r0) = (r̂0, ri−1).
Kvůli biortogonálnosti ri−1 = Pi−1(A)r0 je kolmý na Ui−2(AT)r̂0 kde Ui−2(AT) je libovolný polynom stupně i − 2 v AT. Proto pouze podmínky nejvyššího řádu Pi−1(AT) a Qi−1(AT) záleží na bodových produktech (Pi−1(AT)r̂0, Pi−1(A)r0) a (Qi−1(AT)r̂0, Pi−1(A)r0). Hlavní koeficienty Pi−1(AT) a Qi−1(AT) jsou (−1)i−1α1α2⋯αi−1 a (−1)i−1ω1ω2⋯ωi−1, resp. Z toho vyplývá, že
- ρi = (α1/ω1)(α2/ω2)⋯(αi−1/ωi−1)ρ̃i,
a tudíž
- βi = ρi/ρi−1 = (ρ̃i/ρ̃i−1)(αi−1/ωi−1).
Jednoduchý vzorec pro αi lze odvodit podobně. V BiCG,
- αi = ρi/(p̂i, Api) = (Pi−1(AT)r̂0, Pi−1(A)r0)/(Ti−1(AT)r̂0, ATi−1(A)r0).
Podobně jako v předchozím případě platí pouze podmínky nejvyššího řádu Pi−1(AT) a Ti−1(AT) hmota v bodových produktech díky biortogonalitě a biconjugacy. Stává se to Pi−1(AT) a Ti−1(AT) mají stejný počáteční koeficient. Lze je tedy nahradit současně Qi−1(AT) ve vzorci, který vede k
- αi = (Qi−1(AT)r̂0, Pi−1(A)r0)/(Qi−1(AT)r̂0, ATi−1(A)r0) = ρ̃i/(r̂0, AQi−1(A)Ti−1(A)r0) = ρ̃i/(r̂0, Ap̃i).
Nakonec vybere BiCGSTAB ωi minimalizovat r̃i = (Já − ωiA)si v 2-norm jako funkce ωi. Toho je dosaženo, když
- ((Já − ωiA)si, Tak jakoi) = 0,
dávat optimální hodnotu
- ωi = (Tak jakoi, si)/(Tak jakoi, Tak jakoi).
Zobecnění
Na BiCGSTAB lze pohlížet jako na kombinaci BiCG a GMRES kde po každém kroku BiCG následuje GMRES (1) (tj. GMRES restartován v každém kroku) krok k nápravě chování nepravidelné konvergence CGS, jehož zdokonalením byl vyvinut BiCGSTAB. Avšak vzhledem k použití minimálních zbytkových polynomů stupně jedna nemusí být taková oprava v případě matice účinná A má velké složité vlastní páry. V takových případech je pravděpodobné, že BiCGSTAB stagnuje, což potvrzují numerické experimenty.
Lze očekávat, že minimální zbytkové polynomy vyššího stupně mohou tuto situaci lépe zvládnout. Tak vznikají algoritmy včetně BiCGSTAB2[1] a obecnější BiCGSTAB (l)[2]. V BiCGSTAB (l), GMRES (l) krok následuje po každém l Kroky BiCG. BiCGSTAB2 je ekvivalentní s BiCGSTAB (l) s l = 2.
Viz také
Reference
- Van der Vorst, H. A. (1992). „Bi-CGSTAB: Rychlá a plynulá konvergující varianta Bi-CG pro řešení nesymetrických lineárních systémů“. SIAM J. Sci. Stat. Comput. 13 (2): 631–644. doi:10.1137/0913035. hdl:10338.dmlcz / 104566.
- Saad, Y. (2003). „§7.4.2 BICGSTAB“. Iterační metody pro řídké lineární systémy (2. vyd.). SIAM. str.231–234. doi:10.2277/0898715342. ISBN 978-0-89871-534-7.
- ^ Gutknecht, M. H. (1993). "Varianty BICGSTAB pro matice s komplexním spektrem". SIAM J. Sci. Comput. 14 (5): 1020–1033. doi:10.1137/0914062.
- ^ Sleijpen, G. L. G .; Fokkema, D. R. (listopad 1993). „BiCGstab (l) pro lineární rovnice zahrnující nesymetrické matice se složitým spektrem " (PDF). Elektronické transakce na numerické analýze. Kent, OH: Kent State University. 1: 11–32. ISSN 1068-9613. Archivovány od originál (PDF) dne 06.06.2011. Citováno 2010-02-07.