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_0

*trace(V(:,i)'*W’

*Q_a*W*Q_a’*V(:,i);

*V(:,i))+sigma_rf*trace(V(:,i)'*Q_a*Q_a’*V(:,i)) +V(:,i)’*R_qqThe error at Matlb:

Disciplined convex programming error:

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

出错 >= (第 21 行)

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

出错 FUNCSET>Get_p (第 384 行)

temp_k - temp__k >= sigma_0*trace(V(:,i)' Q_aW*W’

*Q_a’*

R_qqV(:,i);

*V(:,i))+sigma_rf*trace(V(:,i)'*Q_a*Q_a’*V(:,i)) +V(:,i)’*R_qq

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)/gama*V(:,i)' Q_a * RF_impairW*H_BI

*IRS_impair*G_i

*phi*(V(:,i)‘

*Q_a * RF_impair*W

*H_BI*IRS_impair

*G_i*phi)’;

for j =1:1:K

if j ~= i

G_j = diag(vec(H_r(:,j)));

temp__k = temp__k + p(j)

*V(:,j)'*H_BI

*Q_a * RF_impair*W*IRS_impair*G_j

*phi*(V(:,j)‘

*Q_a * RF_impair*W

*H_BI*IRS_impair

*G_j*phi)’;

end

end

temp_k - temp__k >= sigma_0

*trace(V(:,i)'*W’

*Q_a*W*Q_a’*V(:,i);

*V(:,i))+sigma_rf*trace(V(:,i)'*Q_a*Q_a’*V(:,i)) +V(:,i)’*R_qq0 <= p(i) <= p_max;

end

cvx_end