If you have access to the Global Optimization Toolbox, you may use “GlobalSearch” or “MultiStart” features of the toolbox to obtain the global minimum to your problem.
In addition, another potential workaround is to use the function “patternsearch”
Example:
>> options = optimoptions('patternsearch','Display','iter','MaxFunctionEvaluations',1500,'MaxIterations',1500,'ConstraintTolerance',1.0e-10,'StepTolerance',1.0e-10);
>> estparam=patternsearch(@objfun,estparam0,A,b,Aeq,beq,lb,ub,[],options)
Finally, you may also try calling “fmincon” multiple times in a “for” or “parfor” loop, giving different initial guesses each time and keeping track of the best solution. This will not necessarily guarantee a global minimum, but it will likely yield a better and more consistent answer.
Best Answer