Cholesky-Zerlegung
aus Wikipedia, der freien Enzyklopädie
Die Cholesky-Zerlegung (nach André-Louis Cholesky (1875-1918)) bezeichnet in der numerischen Mathematik eine Zerlegung einer symmetrischen positiv definiten Matrix.
Inhaltsverzeichnis |
[Bearbeiten] Formulierung und Anwendung
Jede symmetrische positiv definite Matrix kann eindeutig in der Form
- A = LDLT
geschrieben werden. Dabei ist L eine untere Dreiecksmatrix, deren Diagonalelemente alle gleich 1 sind und D eine Diagonalmatrix mit positiven Einträgen. Mit der Matrix-"Wurzel" von D und dem Matrix-Faktor G, definiert durch
- D = D1 / 2D1 / 2
und
- G: = LD1 / 2,
wird die Cholesky-Zerlegung – äquivalent – auch formuliert als
- A = GGT.
Liegt eine Berechnung der Cholesky-Zerlegung vor, so lässt sich das Gleichungssystem Ax = b effizient durch Vorwärts- und Rückwärtseinsetzen lösen:
- Durch Vorwärtseinsetzen Lösung des linearen Gleichungssystems Gy = b
- Durch anschließendes Rückwärtseinsetzen Lösung des linearen Gleichungssystems GTx = y.
[Bearbeiten] Berechnung
[Bearbeiten] Formeln
[Bearbeiten] Aufwand
Den Aufwand der Berechnung betreffend muss die Cholesky-Zerlegung mit dem Eliminationsverfahren nach Gauß und seiner algorithmischen Umsetzung, der LR-Zerlegung, verglichen werden. Letzteres erfordert etwa doppelt so viele Operationen, da nicht nur eine Matrix L, sondern zwei Faktoren L und R berechnet werden müssen. Der Algorithmus benötigt ca. Operationen.
[Bearbeiten] Pseudocode
In Pseudocode sieht das Cholesky-Verfahren zur Zerlegung der Matrix A in die Form LDLT so aus:
For i = 1 To n For j = i To n Summe = a(i, j) For k = i - 1 To 1 Step -1 Summe = Summe - a(i, k) * a(j, k) Next k If i = j Then If Summe <= 0 Then EXIT // A ist nicht positiv definit else a(j, i) = Sqrt(Summe) // Summe ist positiv Else a(j, i) = Summe / a(i, i) End If Next j Next i
Die Indizes der Matrix A entsprechen der mathematischen Notierung i=1..n, j=1..n, n ist die Anzahl der Zeilen und gleichzeitig die Anzahl der Spalten der Matrix A, Hilfsvariablen sind i, j, k und Summe. Der Algorithmus arbeitet am Ort, d.h. er modifiziert die Matrix A so, dass sie die untere Dreiecksmatrix G enthält.
Der Algorithmus bearbeitet nur die linke untere Dreiecksmatrix von A, die Werte ai,j für i < j brauchen nicht mit Werten belegt zu werden (da die Matrix A nach Voraussetzung symmetrisch ist) und wenn sie Werte enthalten, werden diese nicht verändert. Sucht man also nach der Cholesky-Zerlegung R gemäß A = RTR, so sind die Matrixelemente von A oberhalb der Diagonalen (i < j) gleich Null zu setzen.
Es gibt auch eine Variante, die mit semidefiniten Matrizen der Form ADAT arbeiten kann. Ersetzt man im Pseudocode die Zeile If Summe <= 0 Then EXIT durch If Summe <= 0 Then Summe = , so kann man einfach weiter rechnen. Danach durchsucht man den Cholesky-Faktor G nach und modifiziert A zu A', indem man die entsprechenden Zeilen aus A streicht. Im weiteren kann die Cholesky-Zerlegung von A'DA'T (abgesehen von Rundungsfehlern) problemlos berechnet werden.
[Bearbeiten] Vorgerechnetes Beispiel
- A = GGT
mit
und
und
ergibt sich
Durch Gleichsetzen der Matrixelemente folgt:
So wird für die restlichen gs weiterverfahren. Schließlich ergibt sich
und
- .
[Bearbeiten] Einsatzbereiche
Bei der Anwendung der Gaußschen Fehlerquadratmethode, ist eine Möglichkeit, in jedem Schritt die Normalgleichungen, die eine symmetrisch positiv definite Matrix haben, mit dem Cholesky-Verfahren zu lösen. Dies war die Motivation von Cholesky. Beim Gauß-Newton-Verfahren ist damit bei jedem Iterationsschritt ein Gleichungssystem zu lösen, welches sich mit dem Cholesky-Verfahren bestimmen lässt.
Die Choleskyzerlegung kann auch zur Gewinnung eines Vorkonditionierungsverfahrens für lineare Gleichungssysteme mit positiv definiter Matrix benutzt werden; zu diesem Zweck gibt es speziell die Variante der unvollständigen Cholesky-Zerlegung sowie der modifizierten unvollständigen Cholesky-Zerlegung.
Gleichzeitig stellt die Zerlegung einen Test dar, ob eine gegebene symmetrische Matrix positiv definit ist. Andernfalls ist nämlich einer der Einträge auf der Diagonalen negativ, so dass die Wurzel nicht gezogen werden kann, oder Null, so dass nicht durch den Eintrag geteilt werden kann. In beiden Fällen bricht der Algorithmus ab.
Außerhalb der Mathematik findet die Cholesky-Zerlegung auch Anwendung in der ökonometrischen Erforschung makroökonomischer Zusammenhänge. Hierbei wird bei sogenannten Vektorautoregressiven Modellen (VAR) die Reihenfolge der Beeinflussung der endogenen Variablen untereinander festgelegt.
Darüber hinaus wird sie auch bei der Monte-Carlo-Simulation eingesetzt, um vorgegebene Korrelationen in unabhängig generierte Zufallszahlenfolgen (als Diskretisierung stochastischer Prozesse) zu bringen.
[Bearbeiten] Literatur
- Hans Rudolf Schwarz & Nobert Köckler: Numerische Mathematik. Stuttgart: Teubner, 2004 (5. Auflage) ISBN 3-519-42960-8
- Gene H. Golub & Charles F. Van Loan: Matrix computations. Johns Hopkins University Press, 1996 (3rd edition) ISBN 0-80185414-8