| MF_solveBySVD
| MD_solveBySVD |
ME_solveBySVD |
|
| Funktion | möglicherweise über- oder unter-determiniertes lineares Gleichungssystem über Singular-Value-Decomposition lösen |
|
| Syntax C/C++ | #include <MFstd.h>
int MF_solveBySVD( fVector X, fMatrix MA, fVector B, unsigned htA, unsigned lenA ); |
| C++ MatObj | #include <OptiVec.h>
void vector<T>::solveBySVD( const matrix<T>& MA, const vector<T>& B ); |
| Pascal/Delphi | uses MFstd;
function MF_solveBySVD( X:fVector; MA:fMatrix; B:fVector; htA, lenA:UInt ): IntBool; |
|
| Beschreibung | Das lineare Gleichungssystem MA * X = B wird unter Verwendung von Singulärwert-Zerlegung (Singular Value Decomposition, SVD) gelöst . Hier führen unterdeterminierte Systems nicht zu Fehlern. Vielmehr erhält man durch Dimensions-Reduktion eine einzelne Lösung aus dem unendlichen Lösungsraum. Hat man aber mehr Gleichungen als Unbekannte, handelt es sich also um ein überdeterminiertes System, enthält der Lösungs-Vektor X einen "Kompromiß" zwischen den Gleichungen unter Minimierung der Euclid'schen Norm des Lösungsvektors.
Diese Funktion sollte immer FALSE (0) zurückgeben. Nur in dem sehr unwahrscheinlichen Fall, daß der SVD-Algorithmus nicht konvergiert, wird TRUE (1) zurückgegeben. Die Länge des Lösungs-Vektors, sizX, muß gleich der Breite der Eingabe-Matrix, lenA, sein, während die Länge des Vektors B, sizB, gleich htA sein muß.
Die Schwelle für die Dimensions-Reduktion durch SV-Editierung sollte mittels MF_SVDsetEdit eingestellt werden. |
|
| Rückgabewert | normalerweise FALSE (0); nur in dem sehr unwahrscheinlichen Fall eines Scheiterns von SVD wird TRUE (1) zurückgegeben. |
|
|