I'm using Matlab's fmincon to solve a constrained nonlinear optimization for varying sets of parameters in the objective function. I have 2 parameters and have 400 unique combination of these 2 parameters. Within a particular combination of parameters I use a range of start points (100 start points). Trying to do rough simulation of multi-start functionality using optimization toolbox.For a given combination of parameters in objective function, majority of the start points would solve the optimization problem and exit with a positive exitflag like 1 and in some cases 2. But for very small number of cases, the program would finish with an exitflag of -3 which corresponds to objective function at current iteration went below options.ObjectiveLimit and maximum constraint violation was less than options.TolCon.. In such cases, the output message mentions about problem might be unbounded. One example message is belowProblem appears unbounded.fmincon stopped because the objective function value is less than  the default value of the objective function limit and constraints   are satisfied to within the default value of the constraint tolerance.Stopping criteria details:fmincon stopped because the objective function value, -5.374294e+40, is less than  options.ObjectiveLimit = -1.000000e+20, and the relative maximum constraint  violation, 0.000000e+00, is less than options.TolCon = 1.000000e-06.Optimization Metric                                         Options  objective value =  -5.37e+40               ObjectiveLimit =  -1e+20 (default)  relative max(constraint violation) =   0.00e+00    TolCon =   1e-06 (default)Here are my questions: -a) If the problem was able to find local minima for certain start points (as indicated by exitflag 1) within a particular combination of parameters, why does few other start points mention about problem being unbounded (exitflag -3).b) When the exitflag is -3, the objective function value returned by fmincon does NOT match the explicit calculation of function value at the x point returned by fmincon. Matlab link on Current Point and Function value mentions The function value is the value of the objective function at the current point. which does not state restriction on exitflags. On the other hand, Output Arguments states this for x The solution found by the optimization function. If exitflag > 0, then x is a solution; otherwise, x is the value of the optimization routine when it terminated prematurely. possibly implying that if exitflag is negative then The function value is NOT the value of the objective function at the current point. I'm not sure whether it is inconsistent documentation or a mis-interpretation on my part?Lastly, will draw attention to the statement Exit flags are not infallible guides to the quality of a solution. Many other factors, such as tolerance settings, can affect whether a solution is satisfactory to you. You are responsible for deciding whether a solver returns a satisfactory answer. Sometimes a negative exit flag does not correspond to a bad solution. Similarly, sometimes a positive exit flag does not correspond to a good solution.. I can understand +ve exitflags not being necessarily good in all scenarios, but why would a negative exitflag not necessarily mean a bad solution?
The solution found by the optimization function when exitflag is negative
matlab;constrained optimization