Matheseiten-Übersicht
zurück

 

Rechner für nichtlineare Kurvenapproximation

Dieses Programm versucht, die Parameter einer gegebenen Funktion so zu bestimmen, daß diese möglichst gut eine Menge von gegebenen Wertepaaren approximiert (mit möglichst minimaler Fehlerquadratsumme Σ(f(xi)-yi)²).

Geben Sie die Wertepaare (xi|yi) ein, außerdem bei f(x,a,b,c,...) eine Funktion mit der Variablen x und höchstens sieben Parametern a bis g. Anstelle eines Funktionsterms kann auch eine Gleichung eingegeben werden, die x und y enthalten muß.

Der Erfolg des implementierten Verfahrens hängt sehr stark von der Güte der Anfangsnäherungen für die Parameter ab. Diese können bei „Startwerte“ angegeben werden. Wenn hier nichts eingetragen wird, werden zufällige Startwerte zwischen -5 und 5 erzeugt. Sie können den Bereich auch selbst festlegen, z.B. durch die Eingabe -1...4. Diesen Bereich können Sie als bindend deklarieren — der Parameter bleibt dann in diesem Intervall. Geben Sie drei Werte ein, z.B. 0,75...1,25...2, so ist der mittlere der Startwert und die beiden anderen sind die Bereichsgrenzen.

Wertepaare       → Zufallswerte
f(x) (Näherungen)

Funktion: f(x,a,b,c...):=
Startwerte für ParameterNäherungenStandardabweichung
a =       σ =
b =
c =
d =
e =
f =
g =

Bereiche bindend    λ =   max. Iterationen    rationale Näherungen testen    autom. Skalierung: Kurve u. Punkte Punkte aus
Trigonometriemodus:

f(x) =
  Dezimalpunkte


Hinweise

Der Plot kann per Maus verschoben, gezoomt und skaliert werden.

Bei explizit (als Gleichung u(x,y)=v(x,y)) gegebenen Funktionen, also Kurven, wird der Differenzterm u(x,y)-v(x,y) optimiert (also dessen Quadratesumme minimiert). Graphen solcher Kurven werden als Menge von Punkten dargestellt, die per zweidimensionalem Newtonverfahren von Startpunkten aus (Gitter mit Netzweite 8 Pixel) approximiert werden. Das funktioniert in der Starteinstellung meist erstaunlich schnell, so daß die Darstellungsgeschwindigkeit einschließlich der interaktiven Graphikfunktionen nicht leidet.

Wenn rationale Näherungen der Parameterwerte eine kleinere Fehlerquadratsumme (bzw. Standardabweichung) ergeben, werden – bei Aktivierung der entsprechenden Option – diese Brüche in Dezimaldarstellung übernommen. Der zugehörige Bruch wird jeweils als Tooltip angezeigt, d.h. wenn man mit der Maus über das Parameterwertfeld geht.

Die Standardabweichung ist die Quadratwurzel der Fehlerquadratsumme (siehe Erläuterungen unten).

© Arndt Brünner, 12. April 2006
Version: 21. Dezember 2021
Alle Rechte vorbehalten!

Funktionsweise

Das Programm findet bei geeigneten Bedingungen sukzessive bessere Parameterwerte mit folgendem Verfahren:

Zuerst werden aus der Funktion f folgende lineare Funktionen abgeleitet:
    ga(x) = ∂f(x,a,b,c,...)/∂a·Δa
    gb(x) = ∂f(x,a,b,c,...)/∂b·Δb
    gc(x) = ∂f(x,a,b,c,...)/∂c·Δc
            · · · · · · · · · · · ·
wobei a,b,c... die konkreten Näherungswerte darstellen, ∂f/∂a die partielle Ableitung von f nach a ist, und Δa, Δb usw. die noch zu bestimmenden Koeffizienten der Linearkombination g(x) = f(x,a,b,c,...) + ga(x) + gb(x) + ... sind.

Diese Koeffizienten (Δab,...) werden mit dem Gaußschen Algorithmus der kleinsten Quadrate (siehe →hier) nun so bestimmt, daß die Fehlerquadratsumme σ²=Σ((yi-g(xi))²) minimal wird.

Nun ergeben sich u.U. bessere Näherungen für die Parameter durch a → a + λ·Δa, b → b + λ·Δb usw., wobei λ ein positiver Schrittweitenparameter ist.

Das Script führt diesen Prozeß so oft durch, bis σ nicht mehr kleiner wird oder die maximale Iterationszahl erreicht ist.