Help with 'fminsearch'

조회 수: 3 (최근 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));

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Optimization에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by