Clear Filters
Clear Filters

Why does my optimization stop after the first iteration?

4 views (last 30 days)
I do not know much about numerical optimization. My question is, what are possible reasons for fmincon to stop after 0 iterations. Here are the clues:
  • I do not provide a gradient or hessian.
  • It stops because:"size of the current step is less thanthe default value of the step size tolerance and constraints are satisfied to within the default value of the constraint tolerance"
  • feasibility is 0.0000,First-order optimality is 1.206e+09
  • Using patternsearch works and it finds the optimum
Another question: I suspect, that patternsearch is much slower than fmincon when the number of arguments increases, right?
Thank you for your time.
  3 Comments
Rosi Marungu
Rosi Marungu on 25 Jan 2016
Thank you for your answer. Some follow up questions: Isn't it odd that it stops even though First-order optimality is 1.206e+09? This should be a number as small as possible, right? So shouldn't there be a threshold above which the solver cannot declare to have found a solution?
Does that give a clue about what the function looks like at that point?
Thank you very much.
Matt J
Matt J on 26 Jan 2016
Edited: Matt J on 26 Jan 2016
This should be a number as small as possible, right?
First order optimality isn't the only criterion that can trigger a stop. Also, to be considered small, a value for the first-order optimality measure need only be small relative to typical magnitudes of the function's derivative. Try this simple problem, for instance,
[x,fval,ef,out]=fmincon(@(x) 1e18*x^2,.5,[],[],[],[],0,1)
You will see that out.firstorderopt is ~1e9.
Bottom line -- we really need to see your code.

Sign in to comment.

Answers (0)

Community Treasure Hunt

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

Start Hunting!