mu_opt=zeros(K,L);
for k=1:K % 辅助变量mu用phg算
for l=1:L
mu_opt_fenzi=p(k)*squeeze(h((k-1)*L+l,:,k))g(:,k);
mu_opt_fenmu=sigma;
for i=1:K
if i~=k
mu_opt_fenmu=mu_opt_fenmu+p(i)^2abs(squeeze(h((k-1)*L+l,:,i))*g(:,i))^2;
end
end
mu_opt(k,l)=mu_opt_fenzi/mu_opt_fenmu;
end
end
cvx_quiet(false);
cvx_begin
% cvx_solver MOSEK
variable p_k(K, 1)
variable gamma_k nonnegative
expression y(K,L)
for k=1:K
for l=1:L
y(k,l)=2*real(conj(mu_opt(k,l))*p_k(k)*squeeze(h((k-1)*L+l,:,k))*g(:,k))-abs(mu_opt(k,l))^2*sigma;
for i=1:K
if i~=k
y(k,l)=y(k,l)-abs(mu_opt(k,l))^2*pow_pos(abs(p_k(i)*squeeze(h((k-1)*L+l,:,i))*g(:,i)),2);
end
end
end
end
maximize gamma_k
subject to
min(min(y))>=gamma_k;
pow_pos(norm(p_k),2) <= P_max;
cvx_end