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 f(x) (Näherungen)

Funktion:    f(x,a,b,c...) =  

Startwerte für Parameter Näherungen Standardabweichung
a =               σ =
b =
c =
d =
e =
f =
g =

Einstellungen:
    Bereiche bindend      λ =      max. Iterationen      gerundete Werte testen      Trigonometriemodus:    

f(x) =
  Dezimalpunkte


© Arndt Brünner, 12. April 2006
Version: 4. November 2018
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.