필터 지우기
필터 지우기

Fmincon finds a minimum but Nonlinear Constraints are violated

조회 수: 1 (최근 30일)
Matilde
Matilde 2013년 6월 6일
댓글: John D'Errico 2017년 7월 22일
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
Benjamin Bokser
Benjamin Bokser 2017년 7월 22일
I'm having the exact same issue.
John D'Errico
John D'Errico 2017년 7월 22일
@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.

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

답변 (0개)

카테고리

Help CenterFile Exchange에서 Solver Outputs and Iterative Display에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by