Fmincon finds a minimum but Nonlinear Constraints are violated

2 views (last 30 days)
Hello!
I'm running an optimization problem through fmincon imposing only nonlinear constraints:
options = optimset('Display','iter','Algorithm','interior-point');
[falps,Fval,EXITFLAG] = fmincon('cost_function',a_opt,[],[],[],[],[],[],'constraint',options);
Constraint is the function in with both equalities and inequalities over a_opt are defined as constraint.
Fmincon works outputting:
First-order Norm of
Iter F-count f(x) Feasibility optimality step
0 51 0.000000e+00 0.000e+00 1.453e-02
1 113 9.427769e-03 0.000e+00 1.891e+02 1.376e-04
2 166 9.427765e-03 0.000e+00 1.466e+02 2.813e-09
Local minimum possible. Constraints satisfied.
fmincon stopped because the size of the current step is less than
the default value of the step size tolerance and constraints are
satisfied to within the default value of the constraint tolerance.
<stopping criteria details>
The details:
Optimization stopped because the relative changes in all elements of x are
less than options.TolX = 1.000000e-10, and the relative maximum constraint
violation, 0.000000e+00, is less than options.TolCon = 1.000000e-06.
Optimization Metric Options
max(abs(delta_x./x)) = 7.58e-11 TolX = 1e-10 (default)
relative max(constraint violation) = 0.00e+00 TolCon = 1e-06 (default)
With the resulting falps variables the equalities constraint are the following:
gteq =
0
0
0
0
0
0
0
0
0
0.6577
-2.1498
-2.0769
-0.0000
-0.0047
-0.5568
-0.5811
-0.0215
0.0000
0.0000
-0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
-0.0000
0.0000
Which is non zero. Why fmincon terminates? Could it be for the First-order optimality equal to e+02?
'interior-point' by definition should satisfy bounds at all iterations!
Thank you in advance for the help!
  3 Comments
John D'Errico
John D'Errico on 22 Jul 2017
@Benjamin: If you are having the exact same issue, then you should have read the response by MATT. Nobody else can see into your computer, to know what you might have done wrong, or to know where the problem lies. So learn to use the debugging tools, or provide sufficient information to get help.

Sign in to comment.

Answers (0)

Products

Community Treasure Hunt

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

Start Hunting!