# Function "norm" has a high priority? So that the other item of my objective function doesn't work

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!

The function `norm` doesn’t have any special priority, beyond the usual algebraic rules of precedence in mathematical expressions, whether or not in CVX. If you think it has too great an influence, that is a deficiency in your model or your understanding of your model.

If the optimal solution of your problem is always on an artificially large magnitude bound (1000 in your case?), that would suggest the model is not very good relative to your intended use. If you change 1000 to 10000, is the solution now on the 10000 bound?

The constraints in which the LHS or LHS and RHS are multiplied by 10e7, are probably a bad way of trying to address numerical scaling issues. You should try to change the units in your problem so that all non-zero input data and , if possible, optimal objective value are within a small number of orders of magnitude of 1. An optimal objective value of very small magnitude might be o.k, but a very large magnitude optimal objective value is likely a bad thing.

Beyond that, your model is sufficiently complicated, and no input data or CVX or solver output has been provided, that it is hard to give more specific advice. And the forum readers have no idea what your model represents in the real world or its intended use. So they are not in a good position to provide suggestions to make it a better model of the real world. for your intended use.

Thanks for the advice, my results improved! And I have another question, During the iteration process，sometimes the result is inaccurate/solved, and sometimes it is solved.

Don’t use `cvx_precision high`. You should always leave that at its default.

It may also be the case that the problem is still not very well scaled numerically.