Eine unvollständige Zerlegung von kann als effizienter Vorkonditionierer für symmetrische Matrizen verwendet werden [van89]. Man versteht darunter eine partielle Cholesky-Zerlegung, bei der jedes Auffüllen von Nebendiagonalelementen unterdrückt wird. Im Zusammenhang mit CG-Lösern gehört die Methode zur Klasse der ICCG (Incomplete Cholesky Conjugate Gradient)-Löser. Da kein Auffüllen der Nebendiagonalelemente erlaubt ist, spricht man von einem ICCG(0) Löser. Eine vollständige symmetrische Faktorisierung einer Matrix kann immer nur dann erfolgen, wenn die Matrix symmetrisch, positiv definit und eine M-Matrix ist. Die genannten Vorbedingungen gelten ebenso für eine unvollständige Zerlegung von [van89][Mei77][Man79].
Die Vorkonditionierungsmatrix wird aus in der heuristischen Form
angesetzt.
Unter der Forderung, daß die Matrix möglichst genau approximiert wird, wobei nur die Diagonalmatrix variiert und bzw. unverändert bleiben, ergibt sich folgende Rechnung:
Die Rekursion
welche die unvollständige Cholesky-Faktorisierung beschreibt, ist in Komponentenschreibweise ohne Berücksichtigung komprimierter Matrixformate z.B. als
anzuschreiben. Es ist natürlich effizienter, gleich zu berechnen und dazu die Rekursion mit in die Form
zu bringen. Als Ergebnis erhält man die invertierte Diagonalmatrix , die im Vektor zurückgegeben wird.
Das zu lösende System wird zunächst in seiner vorkonditionierten Form
angeschrieben. Für die weitere Rechnung ist es vorteilhaft, mit symmetrisch
zu skalieren.
Der vorkonditionierte CG-Löser kann daher auf der neuen Struktur
operieren.
In Abschnitt 4.5.4 wird erwähnt, daß es nicht notwendig ist, den Ausdruck
direkt zu bilden, sondern durch eine Matrix-Vektor-Multiplikation, eine Rücksubstitution und eine Vorwärtselimination
zu ersetzen. In [Eis81] wird gezeigt, daß sich der Aufwand stark reduziert, wenn folgende Identitäten ausgenützt werden:
Bei dieser als Eisenstat-Trick bekannten Methode wird die Multiplikation durch eine Vorwärtselimination, eine Vektormultiplikation und eine Rücksubstitution in der Art
ersetzt. Die Vorwärtselimination (4.71) kann auch für die Berechnung von herangezogen werden. Eine unwesentliche, aber einfach zu implementierende Verbesserung des Algorithmus erhält man dadurch, daß man nicht , sondern abspeichert. Es ist auch anzumerken, daß man während der Iteration mit
arbeiten kann und nach der Iteration die Lösung
rückskaliert und rücksubstituiert.