MF_solveBySVD MD_solveBySVD ME_solveBySVD
Funktionmö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, ui htA, ui lenA );
C++ MatObj#include <OptiVec.h>
void vector<T>::solveBySVD( const matrix<T>& MA, const vector<T>& B );
Pascal/Delphiuses MFstd;
function MF_solveBySVD( X:fVector; MA:fMatrix; B:fVector; htA, lenA:UIntSize ): IntBool;
BeschreibungDas 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ückgabewertnormalerweise FALSE (0); nur in dem sehr unwahrscheinlichen Fall eines Scheiterns von SVD wird TRUE (1) zurückgegeben.
QuerverweisMF_SVdecompose,   MF_solve,   Kap. 10

MatrixLib Inhaltsverzeichnis  OptiVec Home