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 = R*R’;
c0 = rand(M,1);
i = sqrt(-1)
as = rand(M,1) + i*rand(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) invRnn*as; as’*invRnn as’

*invRnn*as-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.