On 12/21/2013 5:06 PM, XG wrote: > I am solving a nonlinear problem with about 15 nonlinear terms and no > linear constraints. I am supplying an initially known feasible > solution to fmincon that satisfies all constraints and has an > objective function value of -18.0968. However, fmincon finally arrives > at a much worse solution with an objective value of -1.99005. Here is > a sample of the output: > > ********************* > Warning: The default trust-region-reflective algorithm does not solve > problems with the > constraints you have specified. FMINCON will use the active-set > algorithm instead. For > information on applicable algorithms, see Choosing the Algorithm in > the documentation. >> In fmincon at 486 > In mycode at 244 > Max Line search Directional > First-order Iter F-count f(x) constraint steplength > derivative optimality Procedure 0 12 -18.0968 > 8.866e-14 1 24 > -24.0287 2.708e-05 1 -2.73 894 2 > 50 -24.0289 2.708e-05 -6.1e-05 2.86 387 3 > 73 -24.026 2.707e-05 0.000488 31.4 4.71e+03 > 4 99 -24.0264 5.172e-05 -6.1e-05 1.98 > 7.54e+06 5 113 -18.5173 0.2924 0.25 > 0.00886 3.39e+08 6 125 -1.99005 0.07514 > 1 0.382 9.95e+10 7 138 -1.99005 > 0.03688 0.5 4.95e-10 1.58e+04 8 151 -1.99005 > 0.01816 0.5 4.94e-10 1.71e+05 9 164 > -1.99005 0.009081 0.5 4.94e-10 2.31e+05 Hessian > modified twice 10 177 -1.99005 0.00454 0.5 > 5.02e-10 1.57e+07 Hessian modified twice 11 189 > -1.99005 5.013e-13 1 6.12e-10 1.02e+05 > Local minimum found that satisfies the constraints. > > Optimization completed because the objective function is > non-decreasing in feasible directions, to within the default value of > the function tolerance, > and constraints are satisfied to within the default value of the > constraint tolerance. > ********************* > > I have already seen the following post: > http://mathworks.co.uk/matlabcentral/newsreader/view_thread/308522 > > and tried other but using different solvers didn't help. > > Any ideas are very welcome!
I'm sorry, but I don't understand your unformatted iterative display very well. So perhaps my comments will be beside the point.
Perhaps you could try using the sqp algorithm. Does it have the same bad behavior?
The "Hessian modified twice" outputs indicate that the problem has poor scaling, at least in some regions. Is there anything you can do to make it more regular?
You could try using patternsearch from the same initial point. It is not as efficient as fmincon, but it is pretty reliable.
Alan Weiss MATLAB mathematical toolbox documentation