Ich versuche die unten dargestellte Krve aus Messwerten mittels fminsearch zu fitten aber leider komme ich nicht weiter hat ggf. jemand eine Idee?
Code:
t = messung(:,1);
u = messung(:,2);
subplot(2,1,1) plot(t, u, '*') grid on
[estimates, model] = fitcurvedemo(t,u) hold on
[sse, FittedCurve] = model(estimates);
plot(t , FittedCurve, 'r');
function[estimates, model] = fitcurvedemo(xdata, ydata) % Call fminsearch with a random starting point.
start_point = rand(1, 3);
model = @expfun;
options = optimset('MaxFunEvals',1000000000000000,'TolFun',1e-16);
estimates = fminsearch(model, start_point);
% expfun accepts curve parameters as inputs, and outputs sse, % the sum of squares error for A*exp(-lambda*xdata)-ydata, % and the FittedCurve. FMINSEARCH only needs sse, but we want % to plot the FittedCurve at the end. function[sse, FittedCurve] = expfun(params)
A = params(1);
lambda = params(2);
TT = params(3);
FittedCurve = .54-A.*exp(-lambda * xdata-TT);
ErrorVector = FittedCurve - ydata;
if( FittedCurve(1) > 0.53)
FittedCurve(1) end % if ( FittedCurve(1) < 0.55 && FittedCurve(1) > 0.5 )
sse = sum(ErrorVector.^ 2);
% disp('BB'); % else % sse = 11e9; % end end end
ein fit hängt stark von den startwerten ab. deine wälst du nur zufällig über rand. ich denke da könnte man zuerst ansetzen.
bitte benutze die code umgebung um code zu posten. grüße
_________________
In dem Beispiel wird ja sogar eine Funktion verwendet, die deiner sehr ähnlich ist.
Wenn dort etwas nicht klar ist, bitte konkrete Fragen dazu stellen.
ein vereinfachtes Interface für Curve Fitting.
Bekommst du denn nun einen guten Fit?
Grüße,
Harald
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.