How does "fminunc" try new point ?

1 次查看(过去 30 天)
I want to minimize "residual sum of squares" by "fminunc". Solver returns local minimum found message. But, During iterative calculation, Solver returns "User objective function returned NaN; trying a new point...". Algorithm of "fminunc" is quasi-newton, so I understand that Solver does not necessarily converge to "local minimum point". I want to know "How does this solver try new point ? ".

采纳的回答

Alan Weiss
Alan Weiss 2018-6-12
I believe that, when a solver takes a step and encounters NaN, it then tries a step in the same direction but half the length. If that fails again, then the same direction but halved again. After a few tries it will give up, but I don't know how many tries it takes.
Alan Weiss
MATLAB mathematical toolbox documentation
  2 个评论
Naoya Inoue
Naoya Inoue 2018-6-12
Thank you for answering. Please tell me more two question. First:Is there any rationale for "fminunc" to halve the step? Second:If "fminunc" given up, how does he find new point ? Is it randam ? I try object by "fminunc". There was a big change in iterations. An example is shown below. """command window iteration Func-count f(x) Step-size First-order optimality 51 939 0.0059922 0.5 0.000562 \User objective function returned NaN; trying a new point... 52 1039 0.00599184 0.000669653 0.000729 """
Alan Weiss
Alan Weiss 2018-6-12
I do not know of a reference, but I believe that this is a typical way to handle failures in a line search.
"Give up" means that fminunc stops iterating after too many evaluation failures and returns the best answer it can. It does not proceed further.
I could not easily read you iterative display. If you want us to be able to read and comment on it, please mark it up with the {} Code button.
Alan Weiss
MATLAB mathematical toolbox documentation

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Solver Outputs and Iterative Display 的更多信息

产品


版本

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by