MF_solve MD_solve ME_solve
MCF_solve MCD_solve MCE_solve
Funktionlineares 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/Delphiuses MFstd;
function MF_solve( X:fVector; MA:fMatrix; B:fVector; len:UIntSize ): IntBool;
BeschreibungDiese 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ückgabewertFALSE (0), wenn eine Lösung für das lineare Gleichungssystem gefunden wurde; TRUE (1) bei singulären Systemen ohne Pivot-Editierung
QuerverweisMF_LUdecompose,   MF_inv,   Kap. 10

MatrixLib Inhaltsverzeichnis  OptiVec Home