MFsym_sqrt
| MDsym_sqrt |
MEsym_sqrt |
|
Funktion | Quadratwurzel einer symmetrischen Matrix mit ausschließlich positiven Eigenwerten |
|
Syntax C/C++ | #include <MFstd.h>
int MFsym_sqrt( fMatrix MB, fMatrix MA, ui len ); |
C++ MatObj | #include <OptiVec.h>
void matrix<T>::sqrt( const matrix<T>& MA ); |
Pascal/Delphi | uses MFstd;
function MFsym_sqrt( MB, MA:fMatrix; len:UIntSize ):IntBool; |
|
Beschreibung | Die Quadratwurzel der symmetrischen Matrix A wird berechnet, so dass die Matrix B die Gleichung MB * MB = MA erfüllt. Man beachte, dass außer der Symmetriebedingung noch die zweite Bedingung erfüllt sein muss, dass alle Eigenwerte von MA positiv oder gleich 0 sein müssen. Zwar können auch nicht-symmetrische Matrizen oder solche mit negativen Eigenwerten u.U. eine Quadratwurzel besitzen. Der hier verwendete Algorithmus ist aber auf den einfachsten Fall derjenigen Matrizen beschränkt, die immer eine Quadratwurzel besitzen. Die Berechnung erfolgt über die Eigenwerte und Eigenvektoren. Beim Auftreten eines negativen Eigenwertes erfolgt eine Fehlermeldung, und das Ergebnis wird unter Ersetzung des negativen Eigenwertes durch 0 berechnet. War der beanstandete negative Eigenwert sehr klein, so kann das Ergebnis u.U. noch brauchbar sein.
Ein Rückgabewert FALSE oder 0 signalisiert Erfolg; TRUE oder nicht-Null stehen für Mißerfolg. |
|
Rückgabewert | im Erfolgsfall FALSE (0); sonst TRUE (1) |
|
|