Verfasst am: 04.03.2013, 12:10
Titel: Probleme beim Kurvenfitting mit lsqnonlin
Hallo zusammen,
ich habe hier ein Problem mit einem Kurvenfitting.
Und zwar habe ich 3 Vektoren. Der erste dient als X-Wert, die beiden anderen sind Y-Werte (eigentlich sind es noch mehr Vektoren, aber ich habe jetzt erst mal nur zwei raus gepickt). Die Y-Werte sind Messergebnisse die jetzt dargestellt werden müssen und an die Funktion
angefittet werden muss. Wobei hier n=4 ist.
Das Problem ist, dass es bei einigen Kurven perfekt funktioniert und bei anderen absolut daneben liegt (siehe Grafik).
% Setzen der Optionen für LSQNONLIN um die Kurve zu fitten
options = optimset('largeScale','off','Algorithm','levenberg-marquardt','Display','none','MaxFunEvals',10000,'TolFun',1e-009,'MaxIter',1000);
% Initialisieren der Koeffizienten für die Funktion
X0=[111111111];
das Problem wird sein, dass lsqnonlin in ein lokales Minimum läuft. Hast du dir mal den dritten Rückgabeparameter (exitflag) angesehen?
Abhilfe kann z.B. durch bessere Startwerte geschaffen werden. Ein Vektor von Einsen ist z.B. sehr ungünstig, da du dann mehrere gleiche Modellteile hast.
Ist es zudem wirklich sinnvoll, hier vier solcher Terme zu nehmen? Erscheint mir ein wenig viel.
Wenn du einen konstanten Term hast, würde ich das "1-" in den anderen Funktionen weglassen. Das Modell ist äquivalent, aber es dürfte für lsqnonlin so wesentlich einfacher sein.
Für fit06 und fit07 kannst du übrigens nochmal fit_simp auswerten statt alles nochmal hinzuschreiben.
Danke für Deine Antworten!
Ich hab mich jetzt mal Manuel an die Messdaten angenähert und dann die Parameter meiner amnuellen Kurve als Startwerte für meine Fittingfunktion genommen. Damit hat's dann hingehauen!
Gruß
Andreas
Einstellungen und Berechtigungen
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.