Cholesky-Verfahren
Lineare
Gleichungs-
systeme
Zur Startseite "Einführung, Lösbarkeit, Determinanten" Gauß, LR-Zerlegung, Cholesky, Matrix-Inversion, homogene Systeme, dünn besetzte Matrix, überbestimmte Systeme, Standard-Software, Kondition, Singularität Zur Startseite "Iterationsverfahren für lineare Gleichungssysteme" Symbolische Rechnung, numerische Berechnung, Beispiele mit verschiedenen Softwareprodukten, der Backslash-Operator in Matlab Zur Startseite "Rundungsfehler, Kondition, Singularität, Skalierung" Zum Vergleich"Direkte Verfahren vs. Iterationsverfahren" Zur Startseite "Überbestimmte Gleichungssysteme"

Idee des Cholesky-Verfahrens

Für den wichtigen Spezialfall eines linearen Gleichungssystems mit symmetrischer Koeffizientenmatrix lässt sich der verkettete Algorithmus derart abwandeln, das die Anzahl der erforderlichen Operationen auf etwa die Hälfte verringert wird. Eine als Verfahren von Cholesky bezeichnete Modifikation hat aus verschiedenen Gründen besondere Bedeutung erlangt. Hierbei wird die symmetrische Matrix A des Systems

Lineares Gleichungssystem mit symmetrischer Koeffizientenmatrix

entsprechend

Cholesky-Zerlegung einer quadratischen Matrix

in ein Produkt zweier zueinander transponierter Dreiecksmatrizen zerlegt. Die Ermittlung des Vektors der Unbekannten x aus

Lineares Gleichungssystem mit symmetrischer Koeffizientenmatrix nach der Cholesky-Zerlegung

kann dann wie beim verketteten Algorithmus durch Vorwärtseinsetzen

Vorwärtseinsetzen zur Lösung eines linearen Gleichungssystems nach Cholesky

und Rückwärtseinsetzen

Rückwärtseinsetzen zur Lösung eines linearen Gleichungssystems nach Cholesky

realisiert werden.

Cholesky-Zerlegung

Falksches Schema für die Cholesky-Zerlegung einer symmetrischen MatrixNebenstehend ist das Falksche Schema für die Rückmultiplikation zu sehen, das den erforderlichen Algorithmus für die Gewinnung von R verdeutlicht (zur Erinnerung: Jedes Element aij der Matrix A muss sich aus dem Skalarprodukt der i-ten Zeile von RT mit der j-ten Spalte von R ergeben):

  • Das Skalarprodukt aus der ersten Zeile von RT mit der ersten Spalte von R ist besonders einfach:

Erzeugen des ersten Elements der Choleskyzerlegung

  • Das Skalarprodukt aus der ersten Zeile von RT mit einer beliebigen anderen Spalte von R enthält mit nunmehr bekanntem r11 jeweils nur ein unbekanntes Element r1j von R, so dass die erste Zeile von R berechnet werden kann .
     
  • Das Skalarprodukt aus der zweiten Zeile von RT mit der zweiten Spalte von R enthält neben dem inzwischen bekannten r12 nur das unbekannte r22, das wie die Berechnung aller Hauptdiagonalelemente das Ziehen einer Quadratwurzel erfordert.
     
  • Man setzt dieses Spiel nun mit den Skalarprodukten der zweiten Zeile von RT und allen Spalten von R fort, danach mit der dritten Zeile von RT usw. Der mit dem Falkschen Schema veranschaulichte Prozess kann durch eine Formel ausgedrückt werden:

Allgemeine Formel für das Erzeugen eines Elements der Dreiecksmatrix der Cholesky-Zerlegung

  • Für die Berechnung der Hauptdiagonalelemente von R (in der Formel steht auf der linken Seite rii·rii muss die Quadratwurzel gezogen werden. Bei positiv definiter Matrix entstehen dabei nur reelle (positive) Elemente, anderenfalls können die rii und damit alle Elemente dieser Zeile rein imaginär werden.

Script für die Cholesky-Zerlegung  einer symmetrischen Matrix mit  MatlabEinfaches Beispiel

Es soll das folgende lineare Gleichungssystem mit symmetrischer Koeffizientenmatrix nach dem Verfahren von Cholesky gelöst werden:

Einfaches Beispiel für die Lösung eines linearen Gleichungssystems nach Cholesky

Zunächst wird die Cholesky-Zerlegung der Matrix A durchgeführt (im Bildschirm-Schnappschuss des Command Windows rechts ist die Kontrollrechnung mit der chol-function von Matlab zu sehen).

Das nachfolgend links zu sehende Falksche Schema ist so zu füllen, dass die Multiplikation der beiden zueinander transponierten Dreiecksmatrizen die eingetragene Matrix A ergibt:

 

 

Beispiel für die Erzeugung der Cholesky-Zerlegung einer symmetrischen Matrix mit dem Falkschen Schema

Rechts sieht man das ausgefüllte Schema. Als erster Wert entsteht die 3 (links oben), weil sich bei Multiplikation der ersten Zeile von RT mit der ersten Spalte von R die auf der Position links oben in A stehende 9 ergeben muss. Dann geht es wie oben beschrieben weiter, wobei man stets die in R entstehenden Elemente auch nach RT übertragen muss.

Komplettes Schema (Beispiel) für die Lösung eines linearen Gleichungssystems mit symmetrischer Koeffizientenmatrix nach CholeskyWie beim verketteten Algorithmus gestattet auch hier das Falksche Schema die kompakte Anordnung aller Matrizen und Vektoren, die bei der Cholesky-Zerlegung und dem Vorwärts- und Rückwärtseinsetzen benötigt bzw. erzeugt werden.

Nebenstehend ist das komplette Schema zu sehen. Nach der Cholesky-Zerlegung der Matrix A wird zunächst das Vorwärtseinsetzen durchgeführt, mit dem der Vektor y erzeugt wird. Es beginnt damit, dass die Multiplikation der ersten Zeile von RT mit y eine 72 ergeben muss, also 3·y1=72, so dass als y1 die 24 eingetragen werden kann. Die nächste Rechnung lautet dann (zweite Zeile von RT mit y multipliziert): 1·24+5·y2=34, so dass für y2 die 2 eingetragen werden kann usw.

Analog dazu verläuft das Rückwärtseinsetzen mit der Matrix R zur Bestimmung des Vektors x, nur dass es hier mit der letzten Zeile beginnt: Multiplikation der vierten Zeile von R mit dem Vektor x führt auf die Rechnung 2·x4=10, so dass für x4 die 5 eingetragen werden kann usw.

Vorteile des Cholesky-Verfahrens

Die wesentlichen Vorzüge des Cholesky-Verfahrens, das neben dem Problem der Lösung linearer Gleichungssysteme auch noch in anderen Bereichen der Numerik symmetrischer Matrizen eine wichtige Rolle spielt (z. B. bei Matrizeneigenwertproblemen), sind:

  • Das Verfahren arbeitet numerisch sehr stabil. Wesentlicher Grund dafür ist das Ziehen der Quadratwurzel beim Berechnen der Hauptdiagonalelemente. Dabei werden die wesentlichen Ziffern (ob von sehr großen oder sehr kleinen Zahlen ausgehend) näher an das Komma herangezogen, was in jedem Schritt einer Normalisierung ähnelt. Auf eine Pivotisierung wie beim klassischen Gauß-Verfahren oder dem verketteten Algorithmus kann verzichtet werden.
     
  • Die Matrix A wird auf Definitheit geprüft (nur positiv definite Matrizen garantieren reelle Zahlen bei der Cholesky-Zerlegung). Dies sieht nur scheinbar wie eine Einschränkung der Anwendbarkeit des Verfahrens aus, denn fast alle symmetrischen Matrizen bei der Lösung von naturwissenschaftlich-technischen Problemen haben die Eigenschaft der positiven Definitheit. So wird bei der Cholesky-Zerlegung die Ausgangsmatrix selbst auf Korrektheit geprüft (man darf davon ausgehen, dass fehlerhafte Lösungen eines Problems, das auf ein lineares Gleichungssystem führt, fast ausschließlich auf falsch formulierte Gleichungssysteme zurückzuführen sind, was in der Praxis schwer zu entdecken ist).
     
  • Das Verfahren eignet sich vorzüglich für die Programmierung. Wie man an dem einfachen Beispiel oben nachvollziehen kann, wird das Element aij bei der Berechnung von rij letztmalig gebraucht, so dass A von R überschrieben werden kann (minimaler Speicherbedarf). Diese Eigenschaft besitzen allerdings der klassische Gauß-Algorithmus und der verkettete Algorithmus auch.
     
  • Eine bei A vorhandene Bandstruktur überträgt sich auf R (minimaler Speicherbedarf und die Möglichkeit drastischer Reduzierung des Aufwands). Dies wird vor allem bei den enorm großen Matrizen bei Finite-ElementeBerechnungen genutzt.
     
  • Die Determinante der Matrix A fällt gewissermaßen nebenbei an. Nach den Regeln für die Berechnung des Wertes der Determinante eines Matrizenprodukts und dem Laplaceschen Entwicklungssatz ergibt sich die Formel:

det (A) = det (RT) · det (R) = ( r11 · r22 · r33 · .... · rnn)2.

Home02

Homepage “Dankert/Dankert: Technische Mechanik”

Home02

Homepage “WWW - Ergänzung - Vertiefung - WWW”

Mail02

D

Mail202

nkert.de