Cholesky Zerlegung < Lin. Gleich.-systeme < Numerik < Hochschule < Mathe < Vorhilfe
|
Aufgabe | Aus http://www.math-linux.com/spip.php?article43 :
Wir haben eine symmetrisch positiv definite (spd) Matrix A:
[mm] \pmat{ 1 & 1 & 1 & 1 \\ 1 & 5 & 5 & 5 \\ 1 & 5 & 14 & 14 \\ 1 & 5 & 14 & 15}
[/mm]
Berechne Cholesky Zerlegung! |
Hallo, das bin wieder ich - der Zerlegungsmonster :P
Also wir haben eine Aufgabe die Choleskey-Zerlegung (kurz CZ) einer Matrix zu berechnen. Ich habe dieser Beispiel gefunden und hoffe, dass jemand mir ihn erklären kann.
Ich habe gelesen, dass CZ sehr eng mit LR-Zerlegung verbunden ist und genau:
A = [mm] L.L^{T}, [/mm] wo diese L mit Hilfe von LR-Zerlegung berechnen kann (vielen Dank noch einmal Vreni und MathePower :D).
Na ja, ich habe die L von dieser Matrix berechnet und ich habe etwas sehr merkwürdiges bekommen:
LR-Zerlegung:
[mm] \pmat{ 1 & 1 & 1 & 1 \\ 1 & 5 & 5 & 5 \\ 1 & 5 & 14 & 14 \\ 1 & 5 & 14 & 15} [/mm] = [mm] \pmat{ 1 & 0 &0 &0 \\ 1 & 1 & 0 & 0 \\ 1 & 1 & 1 & 0 \\ 1 & 1 & 1 & 1}.\pmat{ 1 & 1 & 1 & 1 \\ 0 & 4 & 4 & 4 \\ 0 & 0 & 9 & 9 \\ 0 & 0 & 0 & 1}
[/mm]
Wie Sie aber merken können, ist meine L-Matrix SEHR verschieden von diese auf der obigen Internetseite. Was mach ich falsch, da diese L-Matrix die ich berechnet habe, sieht sehr merkwürdig aus - nut 1en und 0s...Etwas ist schief gegangen. Hier ist meine LR-Zerlegung im Detail so zu sagen:
Schritt 1:
[mm] \pmat{ 1 & 1 & 1 & 1 \\ 1 & 5 & 5 & 5 \\ 1 & 5 & 14 & 14 \\ 1 & 5 & 14 & 15} a_{1,1} [/mm] = 1; [mm] a_{2,1} [/mm] = 1 [mm] \Rightarrow l_{2,1} [/mm] = 1/1 = 1 [mm] \Rightarrow [/mm] 2.Zeile - [mm] l_{2,1}.1.Zeile [/mm] = (1,5,5,5) - 1.(1,1,1,1) = (0,4,4,4)
Schritt 2:
[mm] \pmat{ 1 & 1 & 1 & 1 \\ 0 & 4 & 4 & 4 \\ 1 & 5 & 14 & 14 \\ 1 & 5 & 14 & 15} a_{1,1} [/mm] = 1; [mm] a_{3,1} [/mm] = 1 [mm] \Rightarrow l_{3,1} [/mm] = 1/1 = 1 [mm] \Rightarrow [/mm] 3.Zeile - [mm] l_{3,1}.1.Zeile [/mm] = (1,5,14,14) - 1.(1,1,1,1) = (0,4,13,13)
Schritt 3:
[mm] \pmat{ 1 & 1 & 1 & 1 \\ 0 & 4 & 4 & 4 \\ 0 & 4 & 13 & 13 \\ 1 & 5 & 14 & 15} a_{1,1} [/mm] = 1; [mm] a_{4,1} [/mm] = 1 [mm] \Rightarrow l_{4,1} [/mm] = 1/1 = 1 [mm] \Rightarrow [/mm] 4.Zeile - [mm] l_{4,1}.1.Zeile [/mm] = (1,5,14,15) - 1.(1,1,1,1) = (0,4,13,14)
Schritt 4:
[mm] \pmat{ 1 & 1 & 1 & 1 \\ 0 & 4 & 4 & 4 \\ 0 & 4 & 13 & 13 \\ 0 & 4 & 13 & 14} a_{2,2} [/mm] = 4; [mm] a_{3,2} [/mm] = 4 [mm] \Rightarrow l_{3,2} [/mm] = 4/4 = 1 [mm] \Rightarrow [/mm] 3.Zeile - [mm] l_{3,2}.1.Zeile [/mm] = (0,4,13,13) - 1.(0,4,4,4) = (0,0,9,9)
Schritt 5:
[mm] \pmat{ 1 & 1 & 1 & 1 \\ 0 & 4 & 4 & 4 \\ 0 & 0 & 9 & 9 \\ 0 & 4 & 13 & 14} a_{2,2} [/mm] = 4; [mm] a_{4,2} [/mm] = 4 [mm] \Rightarrow l_{4,2} [/mm] = 4/4 = 1 [mm] \Rightarrow [/mm] 4.Zeile - [mm] l_{4,2}.2.Zeile [/mm] = (0,4,13,14) - 1.(0,4,4,4) = (0,0,9,10)
Schritt 6:
[mm] \pmat{ 1 & 1 & 1 & 1 \\ 0 & 4 & 4 & 4 \\ 0 & 0 & 9 & 9 \\ 0 & 0 & 9 & 10} a_{3,3} [/mm] = 9; [mm] a_{4,3} [/mm] = 9 [mm] \Rightarrow l_{4,3} [/mm] = 9/9 = 1 [mm] \Rightarrow [/mm] 4.Zeile - [mm] l_{4,2}.3.Zeile [/mm] = (0,0,9,10) - 1.(0,0,9,9) = (0,0,0,1)
Aus Schritt 1-6 folgt:
A = [mm] \pmat{ 1 & 0 &0 &0 \\ 1 & 1 & 0 & 0 \\ 1 & 1 & 1 & 0 \\ 1 & 1 & 1 & 1}.\pmat{ 1 & 1 & 1 & 1 \\ 0 & 4 & 4 & 4 \\ 0 & 0 & 9 & 9 \\ 0 & 0 & 0 & 1}
[/mm]
Ich habe entweder nicht die LR-Zerlegung gut verstanden (aber das glaube ich nicht, da ich die L und R multipliziert habe und A bekommen!), oder ist dieses L bei der LRZ verschieden von L bei der CZ?!
Werde sehr dankbar sein, wenn jemand mir diese CZ erklären kann.
PS: Ich hoffe, dass ich keine Abschreibenfehler gemach habe, da die Zahlen ziemlich viel sind :)
============================================================================================
EDIT: Na ja, diese L bei CZ ist nicht die selbe L in LRZ...Ist das folgende korrekt?
Bem: cz = Cholesky-Zerlegung; lrz = LR-Zerlegung
[mm] L_{cz}=L^{\sim}.L^{\sim}^{t}, [/mm] wo [mm] L^{\sim}=L_{lrz}.\wurzel{D} [/mm] (D ist die Diagonalmatrix - hier ist es mir nicht klar von welche Matrix wir die Diagonalmatrix nehmen sollen).
|
|
|
|
Hallo Zerleger
> Aus http://www.math-linux.com/spip.php?article43 :
>
> Wir haben eine symmetrisch positiv definite (spd) Matrix
> A:
> [mm]\pmat{ 1 & 1 & 1 & 1 \\ 1 & 5 & 5 & 5 \\ 1 & 5 & 14 & 14 \\ 1 & 5 & 14 & 15}[/mm]
>
> Berechne Cholesky Zerlegung!
> Hallo, das bin wieder ich - der Zerlegungsmonster :P
>
> Also wir haben eine Aufgabe die Choleskey-Zerlegung (kurz
> CZ) einer Matrix zu berechnen. Ich habe dieser Beispiel
> gefunden und hoffe, dass jemand mir ihn erklären kann.
>
> Ich habe gelesen, dass CZ sehr eng mit LR-Zerlegung
> verbunden ist und genau:
>
> A = [mm]L.L^{T},[/mm] wo diese L mit Hilfe von LR-Zerlegung
> berechnen kann (vielen Dank noch einmal Vreni und
> MathePower :D).
>
> Na ja, ich habe die L von dieser Matrix berechnet und ich
> habe etwas sehr merkwürdiges bekommen:
>
> LR-Zerlegung:
> [mm]\pmat{ 1 & 1 & 1 & 1 \\ 1 & 5 & 5 & 5 \\ 1 & 5 & 14 & 14 \\ 1 & 5 & 14 & 15}[/mm]
> = [mm]\pmat{ 1 & 0 &0 &0 \\ 1 & 1 & 0 & 0 \\ 1 & 1 & 1 & 0 \\ 1 & 1 & 1 & 1}.\pmat{ 1 & 1 & 1 & 1 \\ 0 & 4 & 4 & 4 \\ 0 & 0 & 9 & 9 \\ 0 & 0 & 0 & 1}[/mm]
>
> Wie Sie aber merken können, ist meine L-Matrix SEHR
> verschieden von diese auf der obigen Internetseite. Was
> mach ich falsch, da diese L-Matrix die ich berechnet habe,
> sieht sehr merkwürdig aus - nut 1en und 0s...Etwas ist
> schief gegangen. Hier ist meine LR-Zerlegung im Detail so
> zu sagen:
>
> Schritt 1:
> [mm]\pmat{ 1 & 1 & 1 & 1 \\ 1 & 5 & 5 & 5 \\ 1 & 5 & 14 & 14 \\ 1 & 5 & 14 & 15} a_{1,1}[/mm]
> = 1; [mm]a_{2,1}[/mm] = 1 [mm]\Rightarrow l_{2,1}[/mm] = 1/1 = 1 [mm]\Rightarrow[/mm]
> 2.Zeile - [mm]l_{2,1}.1.Zeile[/mm] = (1,5,5,5) - 1.(1,1,1,1) =
> (0,4,4,4)
Bei der CZ musst du doch die Matrix A gar nicht verändern bzw. umformen, du berechnest mit dem Algorithmus auf der o.a. Seite die Einträge der Matrix L direkt.
Du berechnest zuerst die erste Spalte:
[mm] $l_{11}=\sqrt{a_{11}}=\sqrt{1}=1$
[/mm]
[mm] $l_{i1}=\frac{a_{1i}}{l_{11}}$ [/mm] für $i=2,3,4$
Damit hast du dann die erste Spalte von L
Dann weiter im Text:
Berechne [mm] $l_{22}=\sqrt{a_{22}-\sum\limits_{k=1}^{2-1}l_{2k}^2}=\sqrt{5-l_{21}^2}=\sqrt{5-1}=2$
[/mm]
Und weiter nach dem angegebenen Algorithmus.
Also nix an der Matrix A verändern, sondern die errechneten [mm] $l_{ij}$ [/mm] direkt in die Matrix L packen...
LG
schachuzipus
|
|
|
|
|
Vielen Dank! Ich hab schon das herausgefunden und es hat geklappt...Aber gibt es keine schnellere Lösung, da dieses Algorithmus bei sehr großen Matrzen sehr anstrenngent sein kann...?
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 12:20 Mi 21.05.2008 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|
|
Hallo!
Ich habe eine 43x43 Matrix. Von dieser benötige ich die Cholesky LDLt Dekomposition. Ich hatte eine kleine Probematrix mit Eclipse probiert und das hatte gut funktioniert. Mit der großen Matrix scheint es nicht zu klappen. Weiss evtl jemand wie ich diese LDL-Dekomposition in Mathlab, oder vielleicht sogar SPSS machen kann?
Danke im Voraus!!!
|
|
|
|