BiCG-Verfahren
# BiCG-Verfahren

Das BiCG-Verfahren ist ein iteratives numerisches Verfahren zur approximativen Lösung eines linearen Gleichungssystems $Ax=b$, $A\in \mathbb {R} ^{n\times n}$. Es wird eingesetzt, wenn die Matrix zu groß für die Verwendung von direkten Methoden ist. BiCG steht dabei für bikonjugierte Gradienten (im Englischen biconjugate gradients). Das Verfahren basiert auf der Dreitermrekursion des unsymmetrischen Lanczos-Verfahrens.
Das BiCG-Verfahren wurde 1974 durch Roger Fletcher eingeführt.
Der Algorithmus wird in der Praxis selten verwendet, da er ziemlich instabil und anfällig für Rundungsfehler ist. Er ist unbestritten theoretisch interessant, denn er stellt den Ausgangspunkt der Entwicklung der LTPM, der Lanczos-type product methods (Lanczos-artigen Produkt-Methoden) dar. Dazu zählen das (noch stärker instabile) CGS-Verfahren und als Versuch der Stabilisierung des CGS-Verfahrens das (ebenfalls ziemlich instabile) BiCGSTAB-Verfahren von Henk van der Vorst. Unter den Experten gibt es zwei Lager. Die einen glauben, dass eine bessere Fehleranalyse der Verfahren Gründe für die Instabilitäten aufzeigen würde und damit zumindest für Spezialfälle zu stabilen Verfahren führen würde, die anderen glauben, dass diese Verfahren niemals stabil sein können, und verwenden daher eher GMRES mit Verfeinerungen. Als Faustregel lässt sich festhalten: Anwender und kommerzielle Softwarepakete verwenden angepasste direkte Methoden, viele Forscher und Universitäten arbeiten mit den LTPM in allerlei Varianten.
Es hilft beim Verständnis des Algorithmus, von zwei zu lösenden Gleichungssystemen der Gestalt $Ax=b$ und $A^{H}{\hat {x}}={\hat {b}}$ auszugehen, wobei $A\in \mathbb {C} ^{n\times n}$ eine (im Allgemeinen nicht-hermitesche) quadratische Matrix und $b\in \mathbb {C} ^{n}$ und ${\hat {b}}\in \mathbb {C} ^{n}$ gegebene rechte Seiten sind. Eigentlich ist man meist nur an der Lösung des ersten genannten Gleichungssystems interessiert. Gegeben seien ferner zwei Näherungslösungen $x_{0}\in \mathbb {C} ^{n}$ und ${\hat {x}}_{0}\in \mathbb {C} ^{n}$.
Das Verfahren kommt in vielen verschiedenen Varianten daher, namentlich genannt seien BiOres, BiOmin und BiOdir. Diese Varianten resultieren aus den unterschiedlichen Ansätzen für Krylow-Unterraum-Verfahren und sind mit den Varianten Ores, Omin und Odir des CG-Verfahrens verwandt. Die bekannteste Variante ist BiOmin und verwendet neben den rechten und linken Residuen $r_{j}$ und ${\hat {r}}_{j}$ ein Paar bikonjugierte Richtungen $p_{j}$ und ${\hat {p}}_{j}$ zur Residuenminimierung.

## BiOmin (BiCG in der Orthomin-Variante)

* Setze $r_{0}\leftarrow b-Ax_{0}$, $p_{0}\leftarrow r_{0}$
* Setze ${\hat {r}}_{0}\leftarrow {\hat {b}}-A^{H}{\hat {x}}_{0}$, ${\hat {p}}_{0}\leftarrow {\hat {r}}_{0}$
* for $k\in \mathbb {N}$ do
* $\alpha _{k}\leftarrow \langle {\hat {r}}_{k},r_{k}\rangle /\langle {\hat {p}}_{k},Ap_{k}\rangle$
* $x_{k+1}\leftarrow x_{k}+\alpha _{k}p_{k}$
* ${\hat {x}}_{k+1}\leftarrow {\hat {x}}_{k}+{\overline {\alpha _{k}}}{\hat {p}}_{k}$
* $r_{k+1}\leftarrow r_{k}-\alpha _{k}Ap_{k}$
* ${\hat {r}}_{k+1}\leftarrow {\hat {r}}_{k}-{\overline {\alpha _{k}}}A^{H}{\hat {p}}_{k}$
* $\beta _{k}\leftarrow \langle {\hat {r}}_{k+1},r_{k+1}\rangle /\langle {\hat {r}}_{k},r_{k}\rangle$
* $p_{k+1}\leftarrow r_{k+1}+\beta _{k}p_{k}$
* ${\hat {p}}_{k+1}\leftarrow {\hat {r}}_{k+1}+{\overline {\beta _{k}}}{\hat {p}}_{k}$
* end for
Dabei kann Zeile 6 entfallen, falls wir nur an der Lösung des ersten Gleichungssystems interessiert sind. Die Wahl des zweiten Gleichungssystems, i. e., die Wahl von ${\hat {b}}$ ist nicht trivial und beeinflusst stark die Stabilität und das Konvergenzverhalten des Algorithmus.