要查看 quadprog 的优化过程,请设置选项以显示迭代输出并返回四个输出。问题可以表示为最小化下式
12xTHx+fTx
约束条件为
0≤x≤1,
其中
H=[21-11312-1125],f=[4-712]。
输入问题系数。
H = [2 1 -1
1 3 1/2
-1 1/2 5];
f = [4;-7;12];
lb = zeros(3,1);
ub = ones(3,1);
设置选项以显示求解器的迭代进度。
options = optimoptions('quadprog','Display','iter');
调用带有四个输出的 quadprog。
[x fval,exitflag,output] = quadprog(H,f,[],[],[],[],lb,ub,[],options)
Iter Fval Primal Infeas Dual Infeas Complementarity
0 2.691769e+01 1.582123e+00 1.712849e+01 1.680447e+00
1 -3.889430e+00 0.000000e+00 8.564246e-03 9.971731e-01
2 -5.451769e+00 0.000000e+00 4.282123e-06 2.710131e-02
3 -5.499997e+00 0.000000e+00 1.221903e-10 6.939689e-07
4 -5.500000e+00