Verfasst am: 04.10.2013, 16:10
Titel: Anwendung der Least Square Method(kleinste Quadrate Methode)
Hallo Matlab User,
ich möchte über die 'Summe der Abstandsquadrate-Methode' einen Parameter optimieren; ich habe aus einem Messstand daten und Daten aus einer analytischen Gleichung; mir ist jetzt nicht ganz klar, wie ich Matlab sagen kann dass er einen bestimmten Parameter aus meiner analytischen Gleichung minimieren soll.
Was mich gerade ein wenig durcheinander bringt, ist die Tatsache, dass die Messdaten reine Zahlendaten sind (als Spaltenvektor) und die analytische Gleichung Zeitabhängig ist und vom Parameter Rb abhängt und dieser Parameter Rb soll optimiert werden.
Wie würdet ihr da vorgehen? Wäre sowas möglich über fmincon oder fminsearch?
vielen Dank für deine schnelle antwort; im folgenden Code habe ich die analytische Gleichung dargestellt; der Rb Wert stellt einen Schätzwert dar und diesen gilt es zu optimieren;
In dem Beispiel unter lsqcurvefit wird eine Funktion erstellt; mir ist nicht ganz klar wie die Funktion in meinem Fall lauten sollte, da Tf(t,Rb) abhängig ist, wobei Rb optimiert werden sollte
danke für deine Hinweise, ich habe meinen Code überarbeitet, aber es funktioniert noch immer nicht :/ Wo könnte der Fehler liegen?
Was ich möchte ist das x(1) der Rb Parameter ist, und x(2) der Lambda_sand Parameter; diese beiden Werte sollen optimiert werden; die analytische Lösung unter dem F(x,xdata)=... soll den Messdaten aus Tfwerte(2:end,2) angeglichen werden
Die Funktion muss als Function Handle zur Verfügung gestellt werden.
Man kann dies tun, indem man auf eine externe Funktion verweist. Bei "Einzeilern" wie hier eignet sich aber auch ein anonymous function handle gut.
Ein letzte Frage bezieht sich noch auf das Setzen bzw das Verändern des Abbruchskriterium; meine Funktion durchläuft bisher nur 3 Iterationen und da dachte ich mir setze doch den Wert TolFun von 10^-6 auf einen kleineren Wert; aber die Frage ist wie
Code:
optionsLSQ = optimset('Display','Iter','TolFun',1e-10);
[xbest,resnorm,residual,exitflag,output] = lsqcurvefit(F,x0,xdata,ydata,optionsLSQ); %die Methode der kleinesten Abstandsquadrate wird angewendet
ein Blick in die Doku zeigt, dass die nächsten Argumente nach ydata untere und obere Schranken sind. Wenn man diese überspringen möchte, kann man das mit [].
Zitat:
x = lsqcurvefit(fun,x0,xdata,ydata,lb,ub,options) minimizes with the optimization options specified in the structure options. Use optimset to set these options. Pass empty matrices for lb and ub if no bounds exist.
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.