nonlinear minimization with fminunc
조회 수: 5 (최근 30일)
이전 댓글 표시
Hi All:
I am doing parameterization by minimizing a nonlinear target function. However, after the iteration runs, it returns the following message. And returns with the initial values for the parameters that I set.
*Iteration Func-count f(x) Step-size optimality
0 9 1.46536 7.77e+06
1 144 1.39431 1.57417e-14 5.47e+06
Local minimum possible.
fminunc stopped because the size of the current step is less than the default value of the step size tolerance.*
There is no error in the code. What do you suggest to solve this issue?
Thank you!
댓글 수: 0
답변 (2개)
Matt J
2014년 7월 24일
Evaluate the gradient at the initial point and see if it is close to zero. Also, call fminunc with all of its output arguments,
[x,fval,exitflag,output,grad,hessian]= fminunc(...)
to get more diagnostic information.
댓글 수: 2
Shashank Prasanna
2014년 7월 24일
편집: Shashank Prasanna
2014년 7월 24일
The optimization stopped because size of the current step is less than the default value. However you can change the defaults.
I suggest you read the following articles in the link below:
- When the Solver Fails
- When the Solver Might Have Succeeded
- When the Solver Succeeds
There are guidelines on what you can try in each of the situations.
댓글 수: 2
Shashank Prasanna
2014년 7월 24일
fminunc is a derivative based optimizer. If you have discontinuous objective surface or have multiple optimums then fminunc becomes sensitive to initial start points. If you do have an exotic objective function I recommend trying multistart or patternsearch which does better at finding "global" optimum solutions.
Local vs Global:
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!