Hallo Zusammen,
ich habe versucht eine Cholesky Zerlegung einer Matrix in C++ zu
erstllen. Leider klappt es mit der Eigen Lib nicht ganz. Die Alglib
liefert hingegen das richtige Ergebnis.
Meine Matrix ist:
156.25 0.0 0.0
0.0 156.25 0.0
0.0 0.0 0.2401
Als Ergebnis der Cholesky Zerlegung erwarte ich (die Werte 0.0 sind in
der Regel Werte nahe 0):
12.5 0.0 0.0
0.0 12.5 0.0
0.0 0.0 0.49
Das Ergebnis welches ich bekomme ist (Werte auf und oberhalb der
Diagonalen sind gerundet):
12.5 0.0 0.0
0.0 156.25 0.0
0.0 0.0 0.2401
Mein Code Sieht dazu so aus:
1 | Matrix3d cholesky;
|
2 | Matrix3d current_uncertainty;
|
3 | |
4 | current_uncertainty(0,0) = 156.25;
|
5 | current_uncertainty(1,1) = 156.25;
|
6 | current_uncertainty(2,2) = 0.2401;
|
7 | |
8 | cholesky = current_uncertainty.llt().matrixU();
|
Die verwendete Eigen Lib ist die Version 3.1.1 Release
Ich hoffe ihr könnt mir helfen...
Viele Grüße,
Dennis