我想在 Matlab 中使用 Yalmip 来解决 sdp 问题,
min X11+X13
s.t. X22=1
X is positive semidefinite
以下是代码
P = sdpvar(3,3);
cons = [P >= 0,P(2,2)==1];
options = sdpsettings('Solver','Sedumi');
obj = [P(1,1)+P(1,3)];
solvesdp(cons,obj,options);
PP = double(P)
PP(1,1)+PP(2,3)
结果如下所示
PP =
1.2900 0.0000 -2.2900
0.0000 0.0000 0.0000
-2.2900 0.0000 5.8700
ans =
1.2900
我对结果很好奇,我有约束 P(2,2)==1,而在最终结果中,P(2,2)=5.87,为什么会发生这种情况?任何人都可以帮忙吗?