Beschreibung | Die Eingabe-Daten werden zur Bestimmung der Koeffizienten ai eines Polynoms deg-ten Grades verwendet.
VF_polyfit, VF_polyfitwW:
Pi = a0 + a1Xi + a2Xi2 ... anXin
A enthät deg+1 Elemente.
VF_polyfitEven, VF_polyfitEvenwW:
Das Polynom besteht ausschließlich aus geraden Termen,
Pi = a0 + a2Xi2 ... a2nXi2n
A enthät deg/2+1 Elemente. Die Koeffizienten der ungeraden Terme (alle = 0) werden nicht gespeichert.
VF_polyfitOdd, VF_polyfitOddwW:
Das Polynom besteht ausschließlich aus ungeraden Termen,
Pi = a1Xi + a3Xi3 ... a2n+1Xi2n+1
A enthät (deg+1)/2 Elemente. Die Koeffizienten der geraden Terme (alle = 0) werden nicht gespeichert.
Die Koeffizienten werden so berechnet, dass die Abweichung zwischen den "theoretischen" (durch Auswertung des Polynoms berechneten) Pi-Werten einerseits und den tatsächlichen Yi-Werten minimiert wird. Genauer gesagt, wird die Anpassungstestfunktion chi-Quadrat,
c2 = Summe( 1/si2 * (Pi - Yi)2 );
minimiert. In den Einzelpunkt-gewichteten Varianten VF_polyfitwW etc. müssen die Werte 1/si2 als Vektor InvVar bekannt sein. In den nicht-gewichteten Varianten 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 Falls die Kovarianzen nicht benötigt werden, rufe man die Funktion mit Covar=NULL / nil. |
deg | Grad des Fit-Polynoms |
X, Y, InvVar | Vektoren der Länge sizex mit den Eingabe-Daten |
Es empfiehlt sich, die X-Achse so zu wählen, dass sie den Nullpunkt einschließt. Weit entfernt vom Nullpunkt wird die Anpassung nämlich immer schlechter. Dies liegt an der Form der für die Anpassung verwendeten Polynome, die nur maximal deg-1 Maxima bzw. Minima haben können. Falls Ihre X-Achse beispielsweise von 9 bis 10 reicht, sollten Sie sie lieber um den Betrag -9,5 verschieben, so dass x' = 0 in der Mitte des Bereiches liegt. Eine Verschiebung um -9,0 mit x' =0 am Beginn des Bereiches wäre ebenfalls gut.
In dem sehr seltenen Fall, dass diese Funktion keine Lösung finden kann, gibt sie 1 (TRUE) zurück und setzt alle A[i] = 0. |