Help with 'fminsearch'

1 次查看(过去 30 天)
Niles Martinsen
Niles Martinsen 2012-5-9
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 个评论
Oleg Komarov
Oleg Komarov 2012-5-9
Usually oprimization routines all have a varargin input. Edit fminsearch or fminbnd.
Walter Roberson
Walter Roberson 2012-5-9
In 2008, Jos sometimes made mistakes.

请先登录,再进行评论。

回答(2 个)

Oleg Komarov
Oleg Komarov 2012-5-9
P = fminsearch(errfh,p0,optimset('MaxFunEvals',1000),t,rel)
Check the documentation for optimset
  2 个评论
Niles Martinsen
Niles Martinsen 2012-5-9
I tried this out, but it did not have the desired effect unfortunately.
Oleg Komarov
Oleg Komarov 2012-5-9
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
Walter Roberson 2012-5-9
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 个评论
Niles Martinsen
Niles Martinsen 2012-5-9
Walter, actually when I think it over I am not sure I understand what you mean.
Walter Roberson
Walter Roberson 2012-5-9
Guessing about what you are trying to pass to what:
P = fminsearch(@(p) errfh(p,t,rel), p0, optimset('MaxFunEvals',1000));

请先登录,再进行评论。

Community Treasure Hunt

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

Start Hunting!

Translated by