cvx使用报错 10
cvx_beginvariablecij(10,10);P=[5249165188202123];cmin=[31122720311828161513];cmax=[55...
cvx_begin
variable cij(10,10) ;
P=[5 24 9 16 5 18 8 20 21 23 ];
cmin=[31 12 27 20 31 18 28 16 15 13 ];
cmax=[55 36 51 44 55 42 52 40 39 37 ];
dj=[22 14 36 23 29 29 27 12 13 19];
ci=sum(cij');
cj=sum(cij);
for i=1:10
U(i)=12*(60-P(i))/60*log(0.9*ci(i)-cmin(i)+1);
end
for j=1:10
L(j)=cvx(0.01*cj(j)^2+0.015*cj(j));
end
cost=sum(U)-sum(L);
maximize( geo_mean( cost ) );
subject to
for i=1:10
cmin(i)<=0.9*ci(i)<=cmax(i);
end
for j=1:10
cj(j)<=dj(j);
end
for i=1:10
for j=1:10
cij(i,j)>=0;
end
end
cvx_end
在第十行报错
从 cvx 转换为 double 时出现以下错误:
无法从 cvx 转换为 double。
出错 youhua (line 10)
U(i)=12*(60-P(i))/60*log(0.9*ci(i)-cmin(i)+1); 展开
variable cij(10,10) ;
P=[5 24 9 16 5 18 8 20 21 23 ];
cmin=[31 12 27 20 31 18 28 16 15 13 ];
cmax=[55 36 51 44 55 42 52 40 39 37 ];
dj=[22 14 36 23 29 29 27 12 13 19];
ci=sum(cij');
cj=sum(cij);
for i=1:10
U(i)=12*(60-P(i))/60*log(0.9*ci(i)-cmin(i)+1);
end
for j=1:10
L(j)=cvx(0.01*cj(j)^2+0.015*cj(j));
end
cost=sum(U)-sum(L);
maximize( geo_mean( cost ) );
subject to
for i=1:10
cmin(i)<=0.9*ci(i)<=cmax(i);
end
for j=1:10
cj(j)<=dj(j);
end
for i=1:10
for j=1:10
cij(i,j)>=0;
end
end
cvx_end
在第十行报错
从 cvx 转换为 double 时出现以下错误:
无法从 cvx 转换为 double。
出错 youhua (line 10)
U(i)=12*(60-P(i))/60*log(0.9*ci(i)-cmin(i)+1); 展开
2个回答
2018-07-05 · 百度知道官方认证企业
腾讯电脑管家
腾讯电脑管家是腾讯公司推出的免费安全管理软件,能有效预防和解决计算机上常见的安全风险,并帮助用户解决各种电脑“疑难杂症”、优化系统和网络环境,是中国综合能力最强、最稳定的安全软件。
向TA提问
关注
展开全部
cvx是求解凸优化问题的~你要最小化的目标函数是-(x^2+2*x+2)么,确定前面有负号么?因为有负号的话这个函数不是凸函数,所以cvx不能解,而且你这个函数的最小值一看就是负无穷,也没有解的意义~
只是想测试下的话,你去掉负号,cvx就可以解的~
如果你想系统了解下怎么用cvx的话,可以看下它的帮助cvx_user guide~
只是想测试下的话,你去掉负号,cvx就可以解的~
如果你想系统了解下怎么用cvx的话,可以看下它的帮助cvx_user guide~
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询