# Invalid constraint:{complex affine} >= {complex constant}

The problem:

This problem is a convex problem when I fix other variables ,and I use CVX to solve this problem, but appear a error as follow, main error in the code is:
temp_k - temp__k >= sigma_0trace(V(:,i)'Q_aWW’Q_a’V(:,i))+sigma_rftrace(V(:,i)'Q_aQ_a’V(:,i)) +V(:,i)’ R_qqV(:,i);

The error at Matlb:
Disciplined convex programming error:
Invalid constraint: {complex affine} >= {complex constant}

b = newcnstr( evalin( ‘caller’, ‘cvx_problem’, ‘[]’ ), x, y, ‘>=’ );

temp_k - temp__k >= sigma_0trace(V(:,i)'Q_aWW’Q_a’V(:,i))+sigma_rftrace(V(:,i)'Q_aQ_a’V(:,i)) +V(:,i)’
R_qq
V(:,i);

The code:
function update_p = Get_p(K,V,Q_a,RF_impair,W,H_BI,IRS_impair,H_r,phi,R_qq,sigma_0,sigma_rf,gama,p_max)
cvx_begin quiet
%cvx_solver Mosek
variable p(K,1)
minimize(sum§)
subject to
for i =1:1:K
temp__k = 0;
G_i = diag(vec(H_r(:,i)));
temp_k = p(i)/gamaV(:,i)'Q_a * RF_impairWH_BIIRS_impairG_iphi(V(:,i)‘Q_a * RF_impairWH_BIIRS_impairG_iphi)’;
for j =1:1:K
if j ~= i
G_j = diag(vec(H_r(:,j)));
temp__k = temp__k + p(j)V(:,j)'Q_a * RF_impairWH_BIIRS_impairG_jphi(V(:,j)‘Q_a * RF_impairWH_BIIRS_impairG_jphi)’;
end
end
temp_k - temp__k >= sigma_0trace(V(:,i)'Q_aWW’Q_a’V(:,i))+sigma_rftrace(V(:,i)'Q_aQ_a’V(:,i)) +V(:,i)’ R_qqV(:,i);
0 <= p(i) <= p_max;
end
cvx_end

Have you solve it? I have the same question with you. I am looking forward to a reply.

CVX requires both sides of an inequality constraint to be real.

If you want each of real and imaginary parts to separately satisfy the inequality, then use separate inequalities for `real(LHS) <= real(RHS)` and `imag(LHS) <= imag(RHS)`.

If you want the inequality to be just for the real part, then use `real(LHS) <= real(RHS)` .In some case, there is a “nuisance” roundoff level imaginary term due to roundoff error, in which case, just apply `real(...)` to eliminate it.