<div dir="ltr"><div dir="ltr"><div>I'm trying to maximize an objection function subject to some inequality constraints. I'm puzzled why IPOPT converges nicely towards a maximum in iteration 6 below, and then consistently decreases the objective function again, never to reach the previous maximum.</div><div><br></div><div>iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls</div><div>   0 3.4514596e+000 0.00e+000 1.28e+004  -1.0 0.00e+000    -  0.00e+000 0.00e+000   0 y</div><div>   1 4.0733925e+000 1.28e-011 7.98e+003  -1.0 5.36e-005   8.0 1.00e+000 1.00e+000f  1 Nhj </div><div>   2 4.5348610e+000 6.86e-011 3.88e+003  -1.0 6.72e-005   7.5 1.00e+000 1.00e+000f  1 </div><div>   3 4.8755784e+000 3.59e-010 2.14e+003  -1.0 9.81e-005   7.0 1.00e+000 1.00e+000f  1 </div><div>   4 5.0819253e+000 1.81e-009 1.01e+003  -1.0 1.31e-004   6.6 1.00e+000 1.00e+000f  1 </div><div>   5 5.1863223e+000 8.85e-009 5.16e+002  -1.0 1.81e-004   6.1 1.00e+000 1.00e+000f  1 </div><div>   6 5.1984290e+000 3.93e-008 2.38e+002  -1.0 2.20e-004   5.6 1.00e+000 1.00e+000f  1 </div><div>   7 5.1398073e+000 1.93e-007 1.13e+002  -1.0 2.86e-004   5.1 1.00e+000 1.00e+000f  1 </div><div>   8 5.0214100e+000 9.48e-007 7.53e+001  -1.0 4.49e-004   4.7 1.00e+000 1.00e+000f  1 </div><div>   9 4.8496351e+000 4.46e-006 5.11e+001  -1.0 6.82e-004   4.2 1.00e+000 1.00e+000f  1 </div><div>  10 4.6276959e+000 2.05e-005 3.15e+001  -1.0 9.95e-004   3.7 1.00e+000 1.00e+000f  1 </div><div>  11 4.3503200e+000 9.00e-005 2.06e+001  -1.0 1.93e-003   3.2 1.00e+000 1.00e+000f  1 </div><div>  12 3.6612505e+000 2.55e-004 9.30e+001  -1.0 7.12e-002   2.8 6.58e-002 1.00e+000f  1 </div><div>  13 3.5887529e+000 9.20e-005 3.85e+000  -1.0 9.09e-004   3.2 1.00e+000 1.00e+000h  1 </div><div>  14 3.4504079e+000 5.40e-004 9.49e+000  -1.0 2.08e-003   2.7 1.00e+000 1.00e+000f  1 </div><div>  15 3.2575577e+000 3.55e-003 1.56e+001  -1.0 5.36e-003   2.2 1.00e+000 1.00e+000f  1 </div><div>  16 3.1991365e+000 7.87e-004 1.78e+000  -1.0 2.46e-003   2.6 1.00e+000 1.00e+000h  1 </div><div>  17 3.1065203e+000 9.52e-003 3.23e+000  -1.0 9.13e-003   2.2 1.00e+000 1.00e+000h  1 </div><div>  18 3.0739173e+000 1.78e-003 1.46e+000  -1.0 3.69e-003   2.6 1.00e+000 1.00e+000h  1 </div><div>  19 3.0011247e+000 1.72e-002 3.80e+000  -1.0 1.31e-002   2.1 1.00e+000 1.00e+000h  1 </div><div>  20 2.9751764e+000 3.29e-003 1.75e+000  -1.0 5.09e-003   2.5 1.00e+000 1.00e+000h  1 </div><div><br></div><div>As I understand the documentation, inf_pr is the max norm of the constraint violation. However, according to my log, there is no violations at all in most of the steps.<br></div><div><br></div><div>The calculated derivatives have been carefully verified by plotting f(x) and f(x0)+f'(x0)*(x-x0), allowing visual inspection of consistency between f(x) and f'(x) (and in the same fashion between f'(x) and f''(x)), but the calculation is particularly challenging for this problem, so I'm not 100% sure.</div><div><br></div><div>I'm I understanding the way IPOPT works incorrectly or where do you suggest I start debugging my calculations? Derivatives? Scalings? I'm forced to use a fairly old version of IPOPT if that makes a difference.</div><div><br></div></div></div>