Matlab:cvx凸规划误差
我是cvx新手,在解决以下凸问题时出错: 在上述公式中,L=| E |,'p'和'm'为正实指数。这是我的密码:Matlab:cvx凸规划误差,matlab,optimization,convex,cvx,Matlab,Optimization,Convex,Cvx,我是cvx新手,在解决以下凸问题时出错: 在上述公式中,L=| E |,'p'和'm'为正实指数。这是我的密码: cvx_begin variable x(L,L); maximize(sum(sum(m(1:L,1:L).*(1-x(1:L,1:L))+(p(1:L,1:L).*x(1:L,1:L))))) subject to for j=1:L x(j,j)==1; sum(x(j,:))<=C; end
cvx_begin
variable x(L,L);
maximize(sum(sum(m(1:L,1:L).*(1-x(1:L,1:L))+(p(1:L,1:L).*x(1:L,1:L)))))
subject to
for j=1:L
x(j,j)==1;
sum(x(j,:))<=C;
end
for i=1:L
for j=1:L
0<=x(i,j)<=1;
end
end
cvx_end
但是,我不知道如何修复它 我只是试了一下,没有出错。你有什么版本的CVX?@user1877862它是在matlab R2014a上运行的3.0beta版。我应该注意到,‘p’和‘m’的一些值可能是零(或正)。它是否有缺陷?0或正值都可以。是否有任何值
Inf
或NaN
?这可能会导致您看到的错误。是的,存在“Inf”值。除此之外,代码现在正在运行。感谢you@user1877862我需要添加另一个约束,即x_I,j+x_j,k-x_I,k≤ 1.∀i、 j,k∈E:k>i,j≠i、 k
,我使用三个for
循环和两个if
来包括~=
,但这使得x
值在问题解决后为负值(cvx忽略我的第二个约束)。我如何以正确的形式完成这项工作?
Error using + (line 29)
Disciplined convex programming error:
Invalid operations:
{invalid} + {0}
{0} + {invalid}