CG-Verfahren
Das CG-Verfahren (von engl. conjugate gradients oder auch Verfahren der konjugierten Gradienten) ist eine effiziente numerische Methode zur Lösung von großen, symmetrischen, positiv_definiten Gleichungssystemen der Form . Es gehört zur Klasse der Krylow-Unterraum-Verfahren. Das Verfahren konvergiert nach spätestens Schritten, wobei die Dimension der quadratischen Matrix ist. Insbesondere ist es aber als iteratives Verfahren interessant, da der Fehler monoton fällt.Idee des CG-Verfahrens
Die Idee des CG-Verfahrens besteht darin, dass das Maximieren von
:
äquivalent zum Lösen von ist.
Der Gradient von
an der Stelle ist gerade und somit bei großen, dünn besetzten Matrizen schnell zu berechnen.
Die Idee des CG-Verfahrens ist es nun, anstelle in Richtung in eine andere Richtung die Funktion zu maximieren. Die Richtungen sind dabei alle -konjugiert, d.h. es gilt
:.
Weiter realisieren alle das Maximum von in dem affinen_Raum
:.
Dabei handelt es sich also um den Vektorraum, der durch die Vektoren aufgespannt und um verschoben wird.
Da die Vektoren alle -konjugiert sind, ist die Dimension von gerade .
Ist also eine -Matrix, so terminiert das Verfahren nach spätestens Schritten, falls korrekt gerechnet wird. Numerische Fehler können durch weitere Iterationen eliminiert werden. Hierzu betrachtet man den Gradienten , der den numerischen Fehler, d.h. das Residuum angibt. Unterschreitet die Norm dieses Residuums einen gewissen Schwellenwert, wird das Verfahren abgebrochen.
Das Verfahren baut sukzessive eine orthogonale Basis für den auf und minimiert in die jeweilige Richtung bestmöglich.
CG-Verfahren ohne Vorkonditionierung
Zunächst wählt man ein beliebig und berechnet:
:
:
Für setzt man:
Finde von in Richtung das Minimum und aktualisiere den Gradienten bzw. das Residuum
:
:
:
Korrigiere die Suchrichtung mit Hilfe von und
:
:
bis das Residuum in der Norm kleiner als eine Toleranz ist ().
CG-Verfahren mit symmetrischer Vorkonditionierung (PCG-Verfahren)
Die Konvergenz des CG-Verfahren ist nur bei symmetrischen positiv definiten Matrizen gesichert. Dies muss ein Trägheitssatz_von_Sylvester und die gleichen Anzahlen positiver und negativer Eigenwerte besitzen.
Das resultierende Verfahren ist das sog. PCG-Verfahren (von engl. Preconditioned Conjugate Gradient):
Zunächst wählt man ein beliebig und berechnet:
:
:
:
Für setzt man:
Finde von in Richtung das Minimum und aktualisiere Gradienten und vorkonditionierten Gradienten
:
:
: (Residuum)
:
Korrigiere die Suchrichtung
:
:
bis das Residuum in der Norm kleiner als eine Toleranz ist ().
]]
Ein häufiger Vorkonditionierer im Zusammenhang mit CG ist die unvollständige Cholesky-Zerlegung. Diese Kombination wird auch als ICCG bezeichnet und wurde in den 1970ern von Meijerink und van_der_Vorst eingeführt.
Zwei weitere für das PCG-Verfahren zulässige Vorkonditionierer sind der Jacobi-Vorkonditionierer , wobei die Hauptdiagonale von ist, und der SSOR-Vorkonditionierer
mit , wobei die Hauptdiagonale und die strikte untere Dreiecksmatrix von ist.
Konvergenzrate CG-Verfahrens
Man kann zeigen, dass die Konvergenz des CG-Algorithmus
::
ist. Hierbei ist die Kondition der Matrix , sowie
die -Norm.
ist nicht negativ, da symmetrisch und positiv definit ist. Damit ist die Kondition
:
und es gilt
:
Literatur
*P. Knabner, L. Angermann: Numerik partieller Differentialgleichungen, Springer, ISBN 3-540-66231-6
*A. Meister: Numerik linearer Gleichungssysteme, Vieweg 1999, ISBN 3-528-03135-2
*William H., Teukolsky, Saul A.:Numerical Recipes in C++, Cambridge University Press 2002, ISBN 0-521-75033-4.

