Cholesky-Zerlegung von Hand < Lineare Algebra < Hochschule < Mathe < Vorhilfe
|
Hallöchen,
ich beschäftige mich grade mit der Cholesky-Zerlegung und wollte diese mal für eine 3x3 Matrix per Hand ausrechnen, allerdings mit der Schwierigkeit, dass ich eine Unbekannte in dieser Matrix habe.
Die Matrix hat die folgende Form
B = [mm] \begin{bmatrix}1 & 1 & a \\ 1 & 1 & -1 \\ a & -1 & 1 \end{bmatrix}
[/mm]
Irgendwie hab ich das Schema der Zerlegung aber noch nicht durchschaut.
Ich finde also eine Zerlegung B = [mm] C*C^T
[/mm]
nun hab ich für
[mm] c_{11} [/mm] = [mm] c_{22} [/mm] = [mm] c_{33} [/mm] = 1
[mm] c_{21} [/mm] = 1
[mm] c_{31} [/mm] = a
[mm] c_{32} [/mm] = -1
stimmt das soweit?
Und nun steht in meiner Formelsammlung was von
[mm] b_{ij}^{(k)} [/mm] = [mm] b_{ij}^{(k-1)} [/mm] - [mm] c_{ik}c_{jk} [/mm] (i,j = k+1, k+2 ... n)
Und das ist der Teil den ich nicht verstehe.
Warum muss ich das machen?
Und wie gehts dann weiter?
Die Matrix C die ich oben habe ist ja noch nicht die richtige Zerlegung und irgendwie versteh ich nicht, wie ich da nun weitermachen soll.
Freu mich über jeden Tipp.
VIele Grüße
|
|
|
|
> Die Matrix hat die folgende Form
> B = [mm]\begin{bmatrix}1 & 1 & a \\ 1 & 1 & -1 \\ a & -1 & 1 \end{bmatrix}[/mm]
Hallo,
die Cholesky_Zerlegung soll ja eine untere Dreiecksmatrix L liefern so, daß [mm] B=LL^H [/mm] ist.
"Mein" Algorithmus geht so:
Für i=1,2,...,m bilde
(1) Für k=1,2,..., i-1 berechne
[mm] L_i_k:=\bruch{1}{l_k_k}(b_i_k [/mm] - [mm] \summe_{\mu=1}^{k-1}l_i_{\mu}\overline{l}_k_{\mu})
[/mm]
(2) Berechne
[mm] l_i_i:=\wurzel{b_i_i - \summe_{\mu=1}^{[b]i[/b]-1}|l_i_{\mu}|^2}
[/mm]
Die Konjugation muß Dich nicht weiter stören, sie ist, falls man Matrizen mit nichtreellen Einträgen hat.
>
> Irgendwie hab ich das Schema der Zerlegung aber noch nicht
> durchschaut.
> Ich finde also eine Zerlegung B = [mm]C*C^T[/mm]
> nun hab ich für
> [mm]c_{11}[/mm] = [mm]c_{22}[/mm] = [mm]c_{33}[/mm] = 1
> [mm]c_{21}[/mm] = 1
> [mm]c_{31}[/mm] = a
> [mm]c_{32}[/mm] = -1
>
> stimmt das soweit?
Ich weiß leider nicht wie Dein Algorithmus aussieht, so daß ich den Fehler nicht sehe.
Aber Du hast ja jetzt eine untere Dreiecksmatrix berechnet, und wenn ich diese mit der Transponierten multipliziere, bekomme ich nicht B, was auf eine Fehler hindeutet. Meine Vermutung: Du hast das Wurzelziehen vergessen.
>
> Und nun steht in meiner Formelsammlung was von
> [mm]b_{ij}^{(k)}[/mm] = [mm]b_{ij}^{(k-1)}[/mm] - [mm]c_{ik}c_{jk}[/mm] (i,j = k+1,
> k+2 ... n)
> Und das ist der Teil den ich nicht verstehe.
> Warum muss ich das machen?
> Und wie gehts dann weiter?
Was das jetzt werden soll, weiß ich nicht.
Ich könnte es vielleicht sagen, wenn ich den ganzen Algorithmus sehen würde.
Ich habe in der Sache zu wenig Überblick, um mir so einen Reim darauf zu machen.
Aber vielleicht klärt sich ja manches durch den vorbereiteten Algorithmus.
Gruß v. Angela
|
|
|
|
|
Hallo Angela,
danke schon mal für deine Hilfe.
Ich hab mal Deine Algorithmus versuch fortzusetzen, und bekomme dann die Matrix
L = [mm] \begin{bmatrix} 1&0&0 \\ 1&1&0 \\ a&-1-a&\sqrt{1-a^2} \end{bmatrix}
[/mm]
Leider ergibt die Multiplikation von [mm] L*L^T [/mm] trotzdem nicht meine Matrix B. Denn dort bleibt nun immer eine 2 bei [mm] b_{22} [/mm] stehen.
Aber ich rechne es nochmal nach.
In meiner Formelsammlung stand nur drin, dass es zu jeder positiv definite Matrix B eine eindeutige Dreieckszerlegung B = [mm] L*L^T
[/mm]
mit
L = [mm] \begin{bmatrix} l_{11}&\cdots&\cdots \\ l_{21}&l_{22} & \cdots \\ l_{31}&l_{32}&l_{33}&\cdots \\ \vdots \end{bmatrix}
[/mm]
[mm] l_{kk} [/mm] = [mm] \sqrt{a_{kk}^{(k-1)}}, l_{ik} [/mm] = [mm] \frac{a_{ik}^{(k-1)}}{l_{kk}} [/mm] (i = k, k+1, ... n)
[mm] a_{ij}^{(k)} [/mm] = [mm] a_{ij}^{(k-1)} [/mm] - [mm] l_{ik}l_{jk} [/mm] (i,j = k+1, k+2, ...n).
Naja ich finde deinen Algorithmus irgendwie verständlicher und werde den einfach nochmal probieren ... vielleicht hab ich mich irgendwo doch verrechnet.
Liebe Grüße
|
|
|
|
|
> Hallo Angela,
>
> danke schon mal für deine Hilfe.
>
> Ich hab mal Deine Algorithmus versuch fortzusetzen, und
> bekomme dann die Matrix
>
> L = [mm]\begin{bmatrix} 1&0&0 \\ 1&1&0 \\ a&-1-a&\sqrt{1-a^2} \end{bmatrix}[/mm]
>
> Leider ergibt die Multiplikation von [mm]L*L^T[/mm] trotzdem nicht
> meine Matrix B.
Hallo,
ich habe eben einen Fehler in "meinem" Algorithmus entdeckt, ich nehem an, daß es daran liegt. Und zwar ist unter Punkt (2) der Index auf der Summe verkehrt. Tut mir leid - Du wirst nochmals rechnen müssen.
Ich korrigiere das jetzt sofort.
Die nächste Entdeckung, die ich gemacht habe (als der Versuch mit dem korrigierten Algorithmus gründlich schief ging): die Matrix ist gar nicht positiv definit!!! (Du kannst das mit den Hauptminoren zeigen). Von daher muß der Versuch der Cholesky-Zerlegung scheitern. Es kann gar nicht klappen.
Solche Mißgeschicke taugen immerhin, um Lehren daraus zu ziehen: ICH werde mir merken, daß ich vor jedem Versuch der Cholesky-Zerlegung per Hand die Definitheit der Matrix teste...
Wenn Du etwas Zeit hast, kannst Du mal schauen, an welcher Stelle man mit meinem Algorithmus Schiffbruch erleidet.
Und noch etwas: ich habe soeben mal in meine Unterlagen gekramt. Der von mir angegebene Algorithmus ist der von Cholesky_Banachiewicz.
Hast Du vielleicht das rekursive Verfahren mit der Zerlegung der Ausgangsmatrix vorliegen?
Gruß v. Angela
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 17:16 Sa 28.07.2007 | Autor: | mathstudi |
Hallo,
sorry dass ich mich erst jetzt wieder melde.
Der Fehler in dem Algorithmus ist mir gar nicht aufgefallen aber danke dass du ihn korrigiert hast.
>
> Die nächste Entdeckung, die ich gemacht habe (als der
> Versuch mit dem korrigierten Algorithmus gründlich schief
> ging): die Matrix ist gar nicht positiv definit!!! (Du
> kannst das mit den Hauptminoren zeigen). Von daher muß der
> Versuch der Cholesky-Zerlegung scheitern. Es kann gar nicht
> klappen.
Ups, das ist mir gar nicht aufgefallen *schäm* na da werde ich das nächste Mal auch besser drauf achten.
>
> Wenn Du etwas Zeit hast, kannst Du mal schauen, an welcher
> Stelle man mit meinem Algorithmus Schiffbruch erleidet.
>
> Und noch etwas: ich habe soeben mal in meine Unterlagen
> gekramt. Der von mir angegebene Algorithmus ist der von
> Cholesky_Banachiewicz.
>
> Hast Du vielleicht das rekursive Verfahren mit der
> Zerlegung der Ausgangsmatrix vorliegen?
hmm nee ich hab nur das Verfahren aus meiner Formelsammlung, das ich schon in meiner letzten Antwort gepostet habe.
Auf jeden Fall vielen Dank nochmal für deine Hilfe!!
Liebe Grüße
|
|
|
|