matlab中使用yalmip计算规划问题,结果为NAN,附代码,麻烦大神看看指点一下

Cstart=[5000 1600 2400 1200]'; Len=[6 3 3 2 4 4 2]';
Cmin=[2250 1800 3750 4800]';
Cadd=[2.7 2.2 1.8 3.8]';
Dem=[12000 32000 25000 36000 25000 30000 18000]';
Pmax=[1750 1500 2000 3500]';
Pmin=[750 1000 1200 1800]';
Avail=[10 4 8 3]';
start=intvar(4,7);
work=intvar(4,7);
padd=intvar(4,7);
f=sum(Cstart'*start)+Len'*(Cmin'*work+Cadd'*padd)';

F=[];
F=[F start>=0 padd>=0];
for i=1:4
F=[F 0<=work(i,:)<=Avail(i)];
end
for i=1:4
for j=1:7
F=[F padd(i,j)<=(Pmax(i)-Pmin(i))*work(i,j)];
end
end
for j=1:7
F=[F Pmin'*work(:,j)+sum(padd(:,j))>=Dem(j)];
end
for j=1:7
F=[F Pmax'*work(:,j)>=1.20*Dem(j)];
end
for i=1:4
for j=1:7
if j==1
F=[F start(i,1)>=work(i,1)-work(i,7)];
else
F=[F start(i,j)>=work(i,j)-work(i,j-1)];
end
end
end
ops = sdpsettings('solver','cplex');
output=solvesdp(F,f,ops);
z=double(f)

z =

NaN

start=double(start)

start =

NaN NaN NaN NaN NaN NaN NaN
NaN NaN NaN NaN NaN NaN NaN
NaN NaN NaN NaN NaN NaN NaN
NaN NaN NaN NaN NaN NaN NaN

work=double(work)

work =

NaN NaN NaN NaN NaN NaN NaN
NaN NaN NaN NaN NaN NaN NaN
NaN NaN NaN NaN NaN NaN NaN
NaN NaN NaN NaN NaN NaN NaN

padd=double(padd)

padd =

NaN NaN NaN NaN NaN NaN NaN
NaN NaN NaN NaN NaN NaN NaN
NaN NaN NaN NaN NaN NaN NaN
NaN NaN NaN NaN NaN NaN NaN

weixin_41531327
weixin_41531327 应该不是无解吧,解决了么兄弟?我也碰到这个问题了
7 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐