Hi, everyone, I have an optimization problem,
which is obtained by convex relaxation.
Then, I write code in matlab based on CVX as follows:
clc;clear all
M = 50;
R = rand(M,M);
R = RR’;
c0 = rand(M,1);
i = sqrt(-1)
as = rand(M,1) + irand(M,1);
lambda = 10;
Alength = rand(M,1);
R = R + i*R;
invRnn = inv®;
Bmax = 1;
cvx_begin sdp
variable B(M,1)
variable b(M,1)
variable t(M,1)
minimize ( sum(c0.(2.^B)) )
subject to
[invRnn + diag(b) invRnnas; as’*invRnn as’invRnnas-lambda] >= zeros(M+1, M+1)
sum(B) <= Bmax
for i = 1:M
% b(i,1) >= (2^B(i)-1)^2/Alength(i)^2;
[1, t(i); t(i), b(i,1)*Alength(i,1)^2] >= 0
t(i) >= 2^B(i,1)-1
end
% b >= ((2.^B-1)./Alength).^2
cvx_end
stem(B)
But I cannot get the solution, matlab always give me an error message as
So who knows how to correct the error? Thanks in advance.