MF_polyinterpolMD_polyinterpolME_polyinterpol
FunktionPolynom-Interpolation von Matrix-Elementen
Syntax C/C++#include <MFstd.h>
void MF_polyinterpol( fMatrix MZ, fVector X, fVector Y, ui ht, ui len, fVector XTab, fVector YTab, fMatrix MZTab, ui httab, ui lentab, unsigned degX, unsigned degY );
C++ VecObj#include <OptiVec.h>
void matrix<T>::polyinterpol( const vector<T>& X, const vector<T>& Y, const vector<T>& XTab, const vector<T>& YTab, const matrix<T>& MZTab, unsigned degX, unsigned degY );
Pascal/Delphiuses MFstd;
procedure MF_polyinterpol( MZ:fMatrix; X, Y:fVector; ht, len:UIntSize; XTab, YTab:fVector; MZTab:fMatrix; httab, lentab:UIntSize; degX, degY:UInt );
CUDA-Funktion C/C++#include <cudaMFstd.h>
int cudaMF_polyinterpol( fMatrix d_MZ, fVector d_X, fVector d_Y, ui ht, ui len, fVector d_XTab, fVector d_YTab, fMatrix d_MZTab, ui httab, ui lentab, unsigned degX, unsigned degY );
void MFcu_polyinterpol( fMatrix h_MZ, fVector h_X, fVector h_Y, ui ht, ui len, fVector h_XTab, fVector h_YTab, fMatrix h_MZTab, ui httab, ui lentab, unsigned degX, unsigned degY );
CUDA-Funktion Pascal/Delphiuses MFstd;
function cudaMF_polyinterpol( d_MZ:fMatrix; d_X, d_Y:fVector; ht, len:UIntSize; d_XTab, d_YTab:fVector; d_MZTab:fMatrix; httab, lentab:UIntSize; degX, degY:UInt ): IntBool;
procedure MFcu_polyinterpol( h_MZ:fMatrix; h_X, h_Y:fVector; ht, len:UIntSize; h_XTab, h_YTab:fVector; h_MZTab:fMatrix; httab, lentab:UIntSize; degX, degY:UInt );
BeschreibungFür jedes der htlen Elemente des durch X und Y aufgespannten Koordinatensystems wird ein MZ-Wert gewonnen durch polynomische Interpolation einer Tabelle. Diese Tabelle muss in Form von XTab-YTab-MZTab-Werten vorliegen. XTab und YTab müssen geordnet sein (strikt aufsteigend oder abfallend). Außerdem müssen jeweils alle Werte von XTab und YTab verschieden sein (es können keine zwei MZTab-Werte zu ein- und demselben XTab- bzw. YTab- Wert gehören!). Andernfalls droht Programmabbruch durch eine Division durch 0.
Der Parameter degX bezeichnet die Anzahl von in die Interpolation in X-Richtung einbezogenen Punkten (also nicht den Grad des interpolierenden Polynoms!). Entsprechend bezeichnet degY die Anzahl von in die Interpolation in Y-Richtung einbezogenen Punkten. Jeder Wert zwischen 0 und 2 wird als lineare Interpolation ausgeführt. Maximal ist eine 10-Punkt-Interpolation möglich. Außerdem muss lentab mindestens degX+1 betragen und httab mindestens degY+1.
FehlerbehandlungWerte von degX oder degY > 10 führen zu einer Fehlermeldung "Not possible with more than 10 elements" und zum Programmabbruch. Wenn degX größer ist als lentab-1 oder degY größer als httab-1, wird die Meldung "Invalid parameter(s)" ausgegeben und das Programm ebenfalls abgebrochen.
Andere Fehler werden nicht abgefangen (Sie sind also selbst dafür verantwortlich, dass alle XTab- und YTab-Werte verschieden sind, dass die MZTab-Werte nicht schon nahe an der Überlaufgrenze sind.)
Rückgabewertkeiner
QuerverweisMF_ratinterpol,   MF_natCubSplineInterpol,   VF_polyinterpol

MatrixLib Inhaltsverzeichnis  OptiVec Home