Help with 'fminsearch'
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Hi
I am fitting an exponential to my data using least squares, as in:
************************************************************
t = 0:7 ;
rel = [629 537 460 375 334 286 249 227];
fh = @(x,p) p(1) + p(2)*exp(-x./p(3))
errfh = @(p,x,y) sum((y(:)-fh(x(:),p)).^2)
p0 = [mean(rel) (max(rel)-min(rel)) (max(t) - min(t))/2];
P = fminsearch(errfh,p0,[],t,rel)
plot(t,rel,'bo',t,fh(t,P),'r-')
************************************************************
However, now I wish to increase MaxFunEvals. How can I do this, when I use fminsearch in this fashion?
Best, Niles.
5 comentarios
Oleg Komarov
el 9 de Mayo de 2012
Usually oprimization routines all have a varargin input. Edit fminsearch or fminbnd.
Respuestas (2)
Oleg Komarov
el 9 de Mayo de 2012
P = fminsearch(errfh,p0,optimset('MaxFunEvals',1000),t,rel)
2 comentarios
Oleg Komarov
el 9 de Mayo de 2012
What do you mean it did not have the desired effect?
Try to reduce it to 10 or 50. Keep in mind it's a local solver.
Walter Roberson
el 9 de Mayo de 2012
You cannot increase MaxFunEvals when you use fminsearch in that fashion, as fminsearch takes a maximum of 3 inputs, not the 5 you are using. The function handle you provide to fminsearch must take exactly one argument. The initial guess follows the function handle, and the options structure (if provided) follows that.
4 comentarios
Walter Roberson
el 9 de Mayo de 2012
Guessing about what you are trying to pass to what:
P = fminsearch(@(p) errfh(p,t,rel), p0, optimset('MaxFunEvals',1000));
Ver también
Categorías
Más información sobre Optimization en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!