In diesem Abschnitt sollen die wesentlichen Eigenschaften der konjugierten Gradientenmethode
(CG-Methode) und die Vorteile gegenüber der Methode des steilsten Abstiegs gezeigt werden.
Bei der CG-Methode ist jedes neue Residuum orthogonal zu allen alten Residuen
bis
und Suchrichtungen
bis
. Jede neue
Suchrichtung
wird so konstruiert, daß sie A-orthogonal
zu allen alten Residuen und Suchrichtungen ist.
Die neue Suchrichtung ist eine Linearkombination aus
und
der alten Suchrichtung
.
Das Verfahren besitzt also nicht den Nachteil
der Methode des steilsten Abstiegs, daß eine neue Suchrichtung ähnlich alten Suchrichtungen
ist. Die Methode liefert trotz ihrer iterativen Struktur bei exakter numerischer
Rechnung die Lösung eines linearen Gleichungssystems mit positiver definiter und symmetrischer
Koeffizientenmatrix in höchstens
-Schritten [Tör88].
Die CG-Methode kann ähnlich einfach
wie die Methode des steilsten Abstiegs formuliert werden. Bei einer Implementierung wird man für die
Matrix-Vektor-Multiplikation einen Hilfsvektor allozieren.
Außerdem sind zwei Variablen zur Zwischenspeicherung des inneren Produktes
zu definieren,
wobei
an das Ende der Schleife gestellt wird.
Mit einem zusätzlichen Speicheraufwand von drei Hilfsvektoren läßt sich die der Methode
des steilsten Abstiegs wesentlich überlegene CG-Methode implementieren. Da die
Residuen rekursiv berechnet werden, wird in [She94] empfohlen, nach ca. 50 Iterationen das Residuum über
zu berechnen.
Abschließend soll noch angemerkt werden, daß es auch ohne
Koeffizientenmatrix möglich ist, einen CG-Löser zu implementieren.
Die Matrix-Vektor-Multiplikation wird dann auf den Elementsmatrizen, Element für Element,
durchgeführt, das jeweilige Ergebnis, ein Vektor der Länge
von der lokalen
in die globale Knotennumerierung transformiert und
in den Ergebnisvektor der Länge
aufsummiert. Knoten mit
Randbedingungen müssen bei der Assemblierung der jeweiligen Elementsmatrix mitberücksichtigt werden.
Die Methode ist extrem speicherplatzsparend, hat jedoch den Nachteil, daß sie vom Rechenaufwand her
indiskutabel hoch ist. Man kann jedoch hybride Methoden entwickeln: eine Gruppe von
aneinandergrenzenden Elementen wird zusammenfaßt, diese in eine kleine
Matrix assembliert und die Matrix-Vektor-Multiplikation jeweils auf dieser Matrix ausgeführt.