MF_CholeskyLdecompose
| MD_CholeskyLdecompose |
ME_CholeskyLdecompose |
MF_CholeskyRdecompose |
MD_CholeskyRdecompose |
ME_CholeskyRdecompose |
|
Funktion | Cholesky-Faktorisierung einer symmetrischen, positiv-definiten Matrix |
|
Syntax C/C++ | #include <MFstd.h>
int MF_CholeskyLdecompose( fMatrix ML, fMatrix MA, ui len );
int MF_CholeskyRdecompose( fMatrix MR, fMatrix MA, ui len );
|
C++ MatObj | #include <OptiVec.h>
void matrix<T>::CholeskyLdecompose( const matrix<T>& MA );
void matrix<T>::CholeskyRdecompose( const matrix<T>& MA ); |
Pascal/Delphi | uses MFstd;
function MF_CholeskyLdecompose( ML:fMatrix; MA:fMatrix; len:UIntSize ):Integer;
function MF_CholeskyRdecompose( MR:fMatrix; MA:fMatrix; len:UIntSize ):Integer;
|
|
Beschreibung | Die symmetrische Eingabematrix MA wird in ein Produkt MA = ML * MR zerlegt, wobei ML eine linke (untere) Dreiecksmatrix ist, deren Diagonal-Elemente alle gleich 1 sind, und MR ist eine rechte (obere) Dreiecks-Matrix, wobei MR = MLT. Da also MR die Transponierte von ML ist, ist die vollständige Information in jeder der beiden einzeln enthalten. Daher kann man wählen, entweder mittels MF_CholeskyLdecompose ML zu erhalten oder mittels MF_CholeskyLdecompose MR. Nicht alle symmetrischen Matrizen lassen sich in dieser Weise zerlegen, sondern nur die sogenannten positiv-definiten.
MA darf von ML bzw. MR überschrieben werden, falls gewünscht.
Der Rückgabewert von MF_CholeskyLdecompose und MF_CholeskyRdecompose zeigt an, ob die Zerlegung erfolgreich war (Rückgabewert 0) oder ob die Eingabe-Matrix nicht-positiv-definit ist (Rückgabewert 1).
|
|
Fehlerbehandlung | Im Falle einer nicht-positiv-definiten Matrix bleibt ML bzw. MR undefiniert, und der Rückgabewert wird auf 1 gesetzt. |
|
Rückgabewert | Bei Erfolg FALSE(0), andernfalls TRUE (1) |
|
|