cvx_begin
cvx_precision high
variable Q(1,2)
variable mu1 nonnegative
variable gamma1(1,len1)
expression R_LB(1,len1)
for k = 1:len1
index = Scheduled_user_index(k);
index_subband = Assigned_subband_index(Scheduled_user_index(k));
%计算信道增益
g_c = g_rician(index,index_subband);
ita = Pow(index)* g_c *sqrt(beta_0) /noise_power;
R_LB(k) = ita*W*(-rel_entr(1,(1+ita/(pow_pos(norm((Quav-ruser(index,:)),2),2)+H^2)))/log(2)) + ita * W * (-1)*(pow_pos(norm((ruser(index,:)-Q),2),2)-pow_pos(norm((Quav-ruser(index,:)),2),2)) /((pow_pos(norm((Quav-ruser(index,:)),2),2)+H^2+ita)*(pow_pos(norm((ruser(index,:)-Quav),2),2)+H^2)*log(2));
end
Q_d = [Q - Q_b, H];
Tround = norm(Q_d) /v;
objection = mu1 + Tround ;
minimize objection
subject to
for k = 1: len1
mu1 >= (d_opt(k) / R_s(Scheduled_user_index(k)) + d_opt(k) * gamma1(k));
end
for k= 1:len1
10e7 * R_LB(k) >= 10e7 *gamma1(k);
10e7 * gamma1(k)>= 10 ;
end
abs(Q(1,1))<= 1000;
abs(Q(1,2))<= 1000;
cvx_end
disp(Q)
disp(Tround )
disp(mu1)
Quav = Q;
T_opt(i) = T_opt(i) +objection;
end
I am sure that the two terms of the objective function are of the same order of magnitude, but the optimization variable Q is always equal to the boundary value. Please give me some suggestions.Thank you!