https://ww2.mathworks.cn/help/optim/ug/fmincon.html
参考文档
举例:
//
OPTIONS = optimoptions('fmincon','Algorithm','sqp','FunctionTolerance ',1e-15,'StepTolerance ',1e-15);
[eta,fval,exitflag] = fmincon(@goalfun,eta0,A,b,[],[],[],[],[],OPTIONS);
exitflag 参考下面:
GlobalSearch
创建一个具有多个局部极小值的优化问题,并尝试使用GlobalSearch查找全局极小值。
举例
rng default % active-set
gs = GlobalSearch;
opts = optimoptions(@fmincon,'Algorithm','active-set');
problem = createOptimProblem('fmincon','x0',eta0,...
'objective',@goalfun,'Aineq',A,'bineq',b, 'options',opts);
[eta,fval,exitflag] = run(gs,problem);
MultiStart
求多个局部极小值
举例
rng default % For reproducibility
opts = optimoptions(@fmincon,'Algorithm','active-set');
problem = createOptimProblem('fmincon','objective',...
@goalfun,'x0',eta0,'Aineq',A,'bineq',b,'options',opts);
ms = MultiStart;
[eta,fval] = run(ms,problem,30);