Help with 'fminsearch'

1 visualización (últimos 30 días)
Niles Martinsen
Niles Martinsen el 9 de Mayo de 2012
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
Oleg Komarov el 9 de Mayo de 2012
Usually oprimization routines all have a varargin input. Edit fminsearch or fminbnd.
Walter Roberson
Walter Roberson el 9 de Mayo de 2012
In 2008, Jos sometimes made mistakes.

Iniciar sesión para comentar.

Respuestas (2)

Oleg Komarov
Oleg Komarov el 9 de Mayo de 2012
P = fminsearch(errfh,p0,optimset('MaxFunEvals',1000),t,rel)
Check the documentation for optimset
  2 comentarios
Niles Martinsen
Niles Martinsen el 9 de Mayo de 2012
I tried this out, but it did not have the desired effect unfortunately.
Oleg Komarov
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.

Iniciar sesión para comentar.


Walter Roberson
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
Niles Martinsen
Niles Martinsen el 9 de Mayo de 2012
Walter, actually when I think it over I am not sure I understand what you mean.
Walter Roberson
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));

Iniciar sesión para comentar.

Categorías

Más información sobre Optimization en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by