| Syntax C/C++ | #include <MFstd.h>
void VF_polyfit( fVector A, unsigned deg, fVector X, fVector Y, ui sizex );
void VF_polyfitwW( fVector A, fMatrix Covar, unsigned deg, fVector X, fVector Y, fVector InvVar, ui sizex ); |
| C++ MatObj | #include <OptiVec.h>
void vector<T>::polyfit( const vector<T>& X, const vector<T>& Y );
void vector<T>::polyfitwW( matrix<T> Covar, const vector<T>& X, const vector<T>& Y, const vector<T>& InvVar );
void vector<T>::polyfitwW( matrix<T>* Covar, const vector<T>& X, const vector<T>& Y, const vector<T>& InvVar ); |
| Pascal/Delphi | uses MFstd;
procedure VF_polyfit( A:fVector; deg:UInt; X, Y:fVector; sizex:UInt );
procedure VF_polyfitwW( A:fVector; Covar:fMatrix; deg:UInt, X, Y, InvVar:fVector; sizex:UInt ); |
|
| Beschreibung | Die Eingabe-Daten werden zur Bestimmung der Koeffizienten ai eines Polynoms n-ten Grades
Pi = a0 + a1Xi + a2Xi2 ... anXin
verwendet. Hierbei wird die Abweichung zwischen den "theoretischen" (durch Auswertung des Polynoms berechneten) Pi-Werten einerseits und den tatsächlichen Yi-Werten minimiert. Genauer gesagt, wird die Anpassungstestfunktion chi-Quadrat,
c2 = Summe( 1/si2 * (Pi - Yi)2 )
minimiert. In der Einzelpunkt-gewichteten Variante VF_polyfitwW müssen die Werte 1/si2 als Vektor InvVar bekannt sein. In der nicht-gewichteten Variante werden alle si willkürlich als 1.0 angenommen.
Argumente:
| A | Vektor der Länge deg+1; gibt die berechneten Koeffizienten zurück |
| Covar | Matrix der Dimensionen [deg+1, deg+1]; gibt die Kovarianzen der Koeffizenten zurück |
| deg | Grad des Fit-Polynoms |
| X, Y, InvVar | Vektoren der Länge sizex mit den Eingabe-Daten |
|
|