Verfasst am: 14.07.2016, 21:27
Titel: Fit einer Funktion an Daten
Hallo Leute,
ich stehe gerade vor einem (kleinen?) Problem. - Konkret geht es darum, dass ich Messdaten habe, an die ich eine bestehende Funktion dergestalt fitten will. Die Funktion beinhaltet dabei 3 frei wählbare Parameter - diese möchte ich optimal bestimmen.
Hierzu habe ich an die Möglichkeit eines (nichtlinearen) least-square-Fittes gedacht und nutze
lsqcurvefit
; das Code-Snippet, das ich hierzu verwende ist folgendes:
... die entsprechenden Daten-Arrays können dem *.zip-File im Anhang entnommen werden. Ebenfalls ist der Plot enthalten, den ich mit dem Snippet erzeuge.
Soweit funktioniert das eigentlich ganz gut - wenn man sich den Fit ansieht, merkt man allerdings, dass vor allem gegen "Ende" (d.h. b höheren x-Werten) die Messdaten und der Fit recht ungeschickt auseinanderlaufen ...
Und das ist das Problem. - Gibt es eine Möglichkeit, den gezeigten Fit 'besser' hinzubekommen? So, dass es keine derartige große Abweichung am Ende gibt?
(Gibt es "bessere" Fitting-Methoden? Mir fiel hierzu nur der LeastSquares-Fit ein.)
Ansonsten habe ich mir gedacht, könnte man die Funktion eventuell abschnittsweise fitten ... also so, dass z.B. eigene Parameter für einen bestimmten Anfangsbereich, eigene für einen Mittenbereich, und wiederum eigene für Endbereich durch den LeastSquares fit gefunden werden und man dann eine gefittete Funktion mit Fallunterscheidung erhält. (so z.B.: von xData1 bis xData10: Parametersatz 1; xData10 bis xData 40: Parametersatz 2; ab xData40: Parametersatz 3 ...).
- Gibt es hierzu schon eine Möglichkeit, einen derartigen "abschnittsweisen Fit" vorzunehmen? Oder wie könnte man das am besten selbst umsetzen? - Die Übergänge sollten möglichst "fließend" erfolgen, d.h. hier sollten jeweils die Tangenten dieselben sein, um keine Sprünge zu erhalten...
Irgendwie sind das lauter Fragen, aber vielleicht hat das jemand von Euch schon einmal gemacht und kann mir hier mit ein paar Tipps weiterhelfen.
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.