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 linearen
Gleichungssystemen der Form
mit symmetrischer,
positiv
definiter Systemmatrix
.
Das Verfahren liefert, in exakter Arithmetik, nach spätestens
Schritten die exakte Lösung, wobei
die Größe der quadratischen Matrix
ist. Insbesondere ist es aber als iteratives
Verfahren interessant, da der Fehler monoton fällt. Das CG-Verfahren kann in
die Klasse der Krylow-Unterraum-Verfahren
eingeordnet werden.
Es wurde zuerst 1952 von Eduard Stiefel und Magnus Hestenes vorgeschlagen. Ein für bestimmte Gleichungssysteme äquivalentes Verfahren schlug auch Cornelius Lanczos Anfang der 1950er Jahre mit dem Lanczos-Verfahren vor.
Idee des CG-Verfahrens
Die Idee des CG-Verfahrens besteht darin, dass für symmetrisches und positiv
definites
das Minimieren der quadratischen
Form
äquivalent zum Lösen von
ist. Hierbei bezeichnet
das Standardskalarprodukt.
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 des Residuums
wie beim Gradientenverfahren
in eine andere Richtung
die Funktion
über einen Unterraum zu minimieren. Die Richtungen
sind dabei alle
-konjugiert,
das heißt, es gilt
.
Die Iterierten
des CG-Verfahrens werden dann so gewählt, dass sie das Minimum von
in dem affinen Raum
,
der durch die Vektoren
aufgespannt und um
verschoben wird, bilden:
Es lässt sich zeigen, dass ebenfalls gilt:
Der letzte Teil zeigt, dass die Suchrichtungen den Krylowraum zu A und
aufspannen. Das CG-Verfahren lässt sich deswegen alternativ direkt als
Krylow-Unterraum-Verfahren definieren.
Da die Vektoren
alle
-konjugiert
sind, ist die Dimension
von
gerade
,
falls die Vektoren
sind. Man kann zeigen, dass
ist, wenn
ist. Ist also
eine
-Matrix,
so terminiert das Verfahren nach spätestens
Schritten, falls exakt gerechnet wird. Numerische Fehler können durch weitere
Iterationen eliminiert werden. Hierzu betrachtet man den Gradienten
,
der 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.
Das Problem bei dem iterativen Verfahren ist das Finden der optimalen Schrittweite. Um die Güte eines Punktes zu bestimmen ist jeweils eine vollständige Matrixmultiplikation notwendig, welche nebenbei gleich einen neuen Gradienten liefert. Ist die Schrittweite entlang eines vorgegebenen Gradienten zu ungenau, entspricht die Methode eher einem einfachen Bergsteigeralgorithmus.
CG-Verfahren ohne Vorkonditionierung
Zunächst wählt man ein
beliebig und berechnet:
Für
führt man aus:
- Speichere Matrix-Vektor-Produkt, um es nur einmal auszurechnen
- Finde von
in Richtung
den Ort
des Minimums der Funktion
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 ().
Varianten
Es existieren verschiedene Varianten des Verfahrens, neben der ersten von Roger Fletcher und Colin Reeves z.B. von Hestenes und Stiefel, von William Davidon, Fletcher und Michael J. D. Powell oder von Polak und Ribière. Diese sind für quadratische Formen (wie oben definiert) identisch, da die weiteren Terme aufgrund der Orthogonalität der Residuen verschwinden. Verwendet man das CG-Verfahren aber, um eine durch eine quadratische Form angenäherte Funktion zu minimieren, so zeigen diese Varianten oft besseres Konvergenzverhalten als die ursprüngliche Formulierung von Fletcher und Reeves.
(Fletcher-Reeves)
(Polak-Ribière)
(Hestenes-Stiefel)
CG-Verfahren mit symmetrischer Vorkonditionierung (PCG-Verfahren)
Die Konvergenz des CG-Verfahrens ist nur bei symmetrischen positiv definiten
Matrizen gesichert. Dies muss ein Vorkonditionierer
berücksichtigen. Bei einer symmetrischen Vorkonditionierung wird das
Gleichungssystem
mit Hilfe einer Vorkonditionierer-Matrix
zu
mit
transformiert, und darauf das CG-Verfahren angewandt.
Die Matrix
ist symmetrisch, da
symmetrisch ist. Sie ist ferner positiv definit, da nach dem Trägheitssatz
von Sylvester
und
die gleichen Anzahlen positiver und negativer Eigenwerte besitzen.
Das resultierende Verfahren ist das sogenannte PCG-Verfahren (von engl. Preconditioned Conjugate Gradient):
Zunächst wählt man ein
beliebig und berechnet:
Für
setzt man:
- Speichere Matrix-Vektor-Produkt, um es nur einmal auszurechnen
- 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 Henk van der Vorst eingeführt.
Zwei weitere für das PCG-Verfahren zulässige Vorkonditionierer sind der
acobi-Vorkonditionierer
,
wobei
die Hauptdiagonale
von
ist, und der SSOR-Vorkonditionierer
mit ,
wobei
die Hauptdiagonale und
die strikte untere Dreiecksmatrix von
ist.
Konvergenzrate des CG-Verfahrens
Man kann zeigen, dass die Konvergenzgeschwindigkeit des CG-Verfahrens durch
beschrieben wird. Hierbei ist
die Kondition
der Matrix
bezüglich der Spektralnorm,
also der von der euklidischen Norm erzeugten Matrixnorm, sowie
die Energienorm von
.
Der Ausdruck
ist nicht negativ, da die Konditionszahl (bzgl. einer von einer Vektornorm
erzeugten Matrixnorm) einer Matrix immer größer oder gleich 1 ist. Da
symmetrisch und positiv definit ist, gilt
.
Aus der Minimierungseigenschaft lässt sich ferner herleiten, dass
,
wobei
ein beliebiges Polynom vom Grad
ist mit
und
die Lösung. Mit
ist das Spektrum,
also die Menge der Eigenwerte der Matrix
gemeint. Daraus folgt, dass das CG-Verfahren ein System zu einer Matrix mit nur
verschiedenen Eigenwerten in
Schritten löst und dass das CG-Verfahren für Systeme, bei denen die Eigenwerte
in wenigen kleinen Umgebungen konzentriert sind, sehr schnell konvergiert. Dies
wiederum liefert einen Anhaltspunkt für sinnvolle Vorkonditionierer: Ein
Vorkonditionierer ist dann gut, wenn er dafür sorgt, dass die Eigenwerte
konzentriert werden.
Erweiterung auf unsymmetrische Matrizen
Ist die Systemmatrix A unsymmetrisch, aber regulär, so kann das CG-Verfahren auf die Normalgleichungen
angewendet werden, da
für eine reguläre Matrix A symmetrisch und positiv definit ist. Dieses
Verfahren nennt sich auch CGNR, da bei diesem Vorgehen die Norm des Residuums
von
minimiert wird. Alternativ gibt es das Verfahren CGNE, welches
löst mit .
Hierbei wird der Fehler minimiert.
Beide Verfahren haben den Nachteil, dass zum einen
zur Verfügung stehen muss, was nicht immer gegeben ist, und zum anderen die
Kondition von A bei diesem Ansatz quadriert wird, was zur Verlangsamung
der Konvergenz führen kann.
Literatur
- A. Meister: Numerik linearer Gleichungssysteme. Vieweg 1999, ISBN 3-528-03135-2.



© biancahoegel.de
Datum der letzten Änderung: Jena, den: 29.03. 2023