MF_LUimprove MD_LUimprove ME_LUimprove
MCF_LUimprove MCD_LUimprove MCE_LUimprove
   
MFb_LUimprove MDb_LUimprove MEb_LUimprove
MCFb_LUimprove MCDb_LUimprove MCEb_LUimprove
Funktioniterative Genauigkeits-Verbesserung der über LU-Faktorisierung erzielten Lösung eines linearen Gleichungs-Systems
Syntax C/C++#include <MFstd.h>
void MF_LUimprove( fVector X, fVector B, fMatrix MA, fMatrix LU, uiVector Ind, ui len );
void MFb_LUimprove( fVector X, fVector B, fMatrix MA, fMatrix LU, uiVector Ind, ui len, fVector Buf );
C++ MatObj#include <OptiVec.h>
void vector<T>::LUimprove( const vector<T> B, const matrix<T>& MA, const matrix<T>& MLU, const vector<ui>& Ind );
void vector<T>::LUbimprove( const vector<T> B, const matrix<T>& MA, const matrix<T>& MLU, const vector<ui>& Ind, vector<T> Buf );
Pascal/Delphiuses MFstd;
procedure MF_LUimprove( X, B:fVector; MA, MLU:fMatrix; Ind:uiVector; len:UIntSize );
procedure MFb_LUimprove( X, B:fVector; MA, MLU:fMatrix; Ind:uiVector; len:UIntSize; Buf:fVector );
BeschreibungVor allem für große Matrizen können die akkumulierten Rundungsfehler bei der Matrix-Inversion recht groß werden. Führt man aber die Lösung eines linearen Gleichungs-Systems über LU-Zerlegung mittels MF_LUdecompose durch und bewahrt dabei die Eingabe-Matrix auf, so eröffnet sich die Möglichkeit, die numerische Genauigkeit der von MF_LUsolve berechneten Lösung iterativ zu verbessern. Hierzu rufe man anschließend an MF_LUsolve noch MF_LUimprove. Diese Funktion benötigt als Argumente: den Ausgabe-Vektor X von MF_LUsolve, den Vektor B des linearen Gleichungssystemes und sowohl die originale Matrix A als auch deren LU-faktorisierte Form MLU samt den Permutations-Indizes Ind.

Diese Funktionen benötigen Pufferspeicher. Die "Normal-Versionen" (Präfix MF_, MCF_ usw.) allozieren ihn selbst, während die Versionen mit den Präfixen MFb_, MCFb_ etc. als zusätzliches Aufruf-Argument einen Vektor Buf übernehmen. Die erforderliche Größe von Buf beträgt len Elemente des jeweiligen Datentyps.

QuerverweisKap. 10

MatrixLib Inhaltsverzeichnis  OptiVec Home