0

我想在 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,为什么会发生这种情况?任何人都可以帮忙吗?

4

1 回答 1

0

yalmip 假设对称决策矩阵,P = sdpvar(3,3,'full') 会做得更好

于 2014-08-04T12:18:21.467 回答