How to resolve : increase max function value in fitting using fminsearch?
6 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Hi
I was trying to fit my data with fminsearch function with following code:
f = @(a,b,c,x) a - b.*(x).^c;
obj_fun = @(params) norm(f(params(1), params(2), params(3), x) -y);
sol = fminsearch(obj_fun, [1,1,1]);
err = .02*ones(size(x));
errorbar(x,y,err,'horizontal','s',"MarkerFaceColor",[0.8500, 0.3250, 0.0980], ...
"MarkerSize",4,"CapSize",4,"Color",[0.8500, 0.3250, 0.0980],"LineWidth",1)
hold on
x = linspace(min,max,20);
plot(x,f(sol(1),sol(2),sol(3),x),'-',"Color",[0.8500, 0.3250, 0.0980],"LineWidth",1)
hold off
Its getting the fit, but I think this is not best optimum fit its showing following message:
Exiting: Maximum number of function evaluations has been exceeded
- increase MaxFunEvals option.
Current function value: 2.586758
it will be realy great if some experties help me here to take care of this. Im attaching data here (data.txt).
Is there any other function which I can use instade of this to fit and better gobal optimazation.
Thank you in advance!
0 Commenti
Risposta accettata
Matt J
il 16 Giu 2022
Modificato: Matt J
il 16 Giu 2022
You could do as the message says and increas MaxFunEvals, but for your model, it would be better to download fminspleas,
[x,y]=readvars('https://www.mathworks.com/matlabcentral/answers/uploaded_files/1034515/data.txt');
funlist={1,@(c,xd) -xd(:).^c};
[c,ab]=fminspleas(funlist, 1 ,x, y);
sol=[ab(:).',c]
2 Commenti
Più risposte (1)
Matt J
il 16 Giu 2022
Modificato: Matt J
il 16 Giu 2022
If you have the Curve Fitting Toolbox,
[x,y]=readvars('https://www.mathworks.com/matlabcentral/answers/uploaded_files/1034515/data.txt');
ft=fit(x(:),y(:),'power2')
plot(ft,x,y)
5 Commenti
Matt J
il 17 Giu 2022
@Sonnath what is unacceptable about the fit that your current model gives you? You'll notice that both fit() and fminspleas() are in agreement on the fitted parameters.
Vedere anche
Categorie
Scopri di più su Least Squares in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!