使用yalmip工具箱求解半定规划问题时显示凸检测失败
程序代码如下:%%定义变量
r=sdpvar(1,1);
t=sdpvar(1,1);
x=sdpvar(6,1);
Q=sdpvar(6,6);
q=sdpvar(6,1);
eit=sdpvar(1,1);
y=sdpvar(1,1);
w=sdpvar(6,1);
sigma0=[0.5 0.6 0.7 0.8 0.9 1;0.6 0.5 0.6 0.7 0.8 0.9;0.7 0.6 0.5 0.6 0.7 0.8;
0.8 0.7 0.6 0.5 0.6 0.7;0.9 0.8 0.7 0.6 0.5 0.6;1 0.9 0.8 0.7 0.6 0.5];
mju0=[2.8;3;3.2;4;5;5.5];
a=[0 0 0 0 0 0]';
b=[2 1.75 1 3.25 3 3]';
c=[0.00375 0.0175 0.0625 0.00834 0.025 0.025]';
p=[1 1 1 1 1 1]';
%%约束条件
F=[Q>=0];
F=F+[trace((2.3.*sigma0+mju0*mju0')*Q)+mju0'*q+0.2^0.5.*norm(sqrtm(sigma0)*(q+2.*Q*mju0))];
F=F+[[Q q/2+x/2;q'/2+x'/2 r-eit]>=0];
F=F+[eit>=p'*a+b'*x+p'*x+y];
F=F+[y>=w'*w];
F=F+[w>=sqrt(c).*x];
F=F+[w<=sqrt(c).*x];
F=F+[p'*x<=150];
F=F+[[50 20 15 10 10 12]'<=x];
F=F+[x<=[200 80 50 35 30 40]'];
%%目标函数
f=r+t;
%%调用解算器
solvesdp(F,f)
运行后显示为:
ans =
solvertime: 0
problem: 14
info: 'Convexity check failed (, exact model not available.)'
yalmiptime: 0.0460
如果在上述程序下加double(f),显示为:
ans =
NaN