| MF_solve
| MD_solve |
ME_solve |
| MCF_solve |
MCD_solve |
MCE_solve |
|
| Funktion | lineares Gleichungssystem lösen |
|
| Syntax C/C++ | #include <MFstd.h>
int MF_solve( fVector X, fMatrix MA, fVector B, ui len ); |
| C++ MatObj | #include <OptiVec.h>
void vector<T>::solve( const matrix<T>& MA, const vector<T>& B ); |
| Pascal/Delphi | uses MFstd;
function MF_solve( X:fVector; MA:fMatrix; B:fVector; len:UIntSize ): IntBool; |
|
| Beschreibung | Diese Funktion löst das lineare Gleichungs-System MA * X = B. Intern wird hierfür eine LU-Faktorisierung durchgeführt. Wenn das Gleichungssystem eine eindeutige Lösung besitzt, wird FALSE (0) zurückgegeben.
Wenn sich das Gleichungs-System aber als unter-determiniert herausstellt, was immer dann geschieht, wenn eine oder mehrere der Gleichungen tatsächlich Linearkombinationen anderer Gleichungen desselben Systems darstellen, wird die Matrix singulär, und die Lösung schlägt fehl mit einem Rückgabewert von TRUE (1).
Um in Situationen, wo man mit unter-determinierten Matrizen zu rechnen hat, Singularitäten zu umgehen, sollte man mittels MF_LUDsetEdit einen Minimalwertes für die Pivotisierung bei der LU-Faktorisierung definieren. In diesem Fall wird MF_solve immer eine mehr oder weniger sinnvolle Lösung liefern und immer FALSE (0) zurückgeben. Über einen Aufruf von MF_LUDresult erfährt man dann, ob die Pivot-Editierung tatsächlich nötig war.
Alternativ kann man auch MF_safeSolve oder MF_solveBySVD anstelle des einfachen MF_solve verwenden. |
|
| Rückgabewert | FALSE (0), wenn eine Lösung für das lineare Gleichungssystem gefunden wurde; TRUE (1) bei singulären Systemen ohne Pivot-Editierung |
|
|