I write a program about the transmit beamforming by the cvx, but many papers said that the relaxed problem is dual to the original problem, so that the rank of the weight matrix is 1, but my result is not, the next is my codes, is it right?
cvx_begin
variable W(nTx,nTx,mRx) complex semidefinite;
sum = 0;
for i = 1:mRx
sum = sum + trace(W(:,:,i));
end
minimize ( sum );
subject to
for i = 1:mRx
ip = 0;
sp = trace(R(:,:,i)*W(:,:,i));
for j = 1:i-1
ip = ip + trace(R(:,:,i)*W(:,:,j));
end
for j = i+1:mRx
ip = ip + trace(R(:,:,i)*W(:,:,j));
end
sp - gamma(i)*ip >= gamma(i)*sigma(i);
%W(:,:,i) == semidefinite(nTx);
end
cvx_end
It is a rare case when you can guarantee the relaxed problem obtains the same optimal value as the original nonconvex problem. It happens, but not often. I suspect you are reading the papers’ claims incorrectly. Regardless, this really is not a CVX-specific question, so you should ask the authors.
Thank you mcg!
In my opinin,the operateor “trace” should be “normal” ?
By the way,I copy code to Matalb find it doesn’t work——“Disciplined convex programming error: Cannot minimize a(n) complex affine expression.”
The thing is that rank-1 weight matrix is only one of the available solutions. So even if your code is correct you have to find a way to specify the rank of W.