Hey there,
I have to implement one optimization problem from the communication domain. The issue I have is that cvx gets me the message
Error using .* (line 173)
Disciplined convex programming error:
Cannot perform the operation: {real affine} .* {convex}
Error in * (line 36)
z = feval( oper, x, y );
Error in algo (line 17)
SINR = p(k) * (f(:,j)’ * R(:,:,j) * f(:,j));
Here is the original part of the problem formulation:
The problem seems to be the p(k) (part which is affine?), and as far as I understood it the total problem is therefore not necessarily convex. The cvx algorithm was defined by me like this:
N = 5; % Number of antennas
L = 10; % Codebook size
K = 20; % Number of single antenna users
P_max = 50;
cvx_begin 
variable C
variable f(N, K) complex
variable p(K) nonnegative
maximize C
subject to
for k = 1:K
	SINR = 1; % the +1 part in the SINR denominator
	for j = 1:K
		if k == j
			continue
		end
		SINR = p(k) * (f(:,j)' * R(:,:,j) * f(:,j));
	end
	% SINR is the denominator of eq (3b)
	real(p(k) * ( f(:,k)' * R(:,:,k) * f(:,k))) * inv_pos(SINR)  >= C;
	norm(f(:, k)) == 1;
end
sum(p) <= P_max;
cvx_end
The TA of the course gave the impression that the problem should be trivially solved in cvx so am I missing here something?
I have read that I should make sure that the problem is convex but my problem is that the TA told me to “just do it in CVX” so I would assume that it is. The examples in cvx from my lecture were trivial and i got stuck now.
I appreciate any advice.
Kind regards
