Help!How to express this problem

1 2 problem

This is my code.

T_tra=1;D=[0.5,0.4,0.8,0.3,0.2];Y=[4,5,5.5,9,10];h=0.001Y.^(-2);
P_BS=30;NP=-50;gamma=P_BS
h/NP;
Delta=0.01;
cvx_begin gp
variable t_D(1,5) nonnegative;variable t_U(1,5) nonnegative; variable miu(1,5);
expression r_U(1,5);
for i=1:5
r_U(1,i)=t_U(1,i)*log(1+(h(1,i)gamma(1,i)(sum(t_D)-t_D(1,i)+miu(1,i)))/t_U(1,i))/log(2);
end
maximize(r_U)
subject to
for i=1:5
t_D(1,i)*log(1+gamma(1,i)-gamma(1,i)*miu(1,i)/t_D(1,i))/log(2)>=D(1,i);
sum(t_D)+sum(t_U)<=T_tra;
0<=miu(1,i)<=t_D(1,i);
end
cvx_end

but it has a error
LNNO$119

how to solve this?

Expressions of the form
x*log2(1+y/x)
can be entered into CVX as
-rel_entr(x,x+y)/log(2)
presuming that x is a variable, or affine (linear) function of a variable, and `Y`` is concave (which includes a variable or linear (affine) function of a variable as special cases).

The superscripts D are apparently indices, not exponents. Therefore, this reformulation should work on your problem.

help rel_entr

rel_entr Scalar relative entropy.
rel_entr(X,Y) returns an array of the same size as X+Y with the
relative entropy function applied to each element:
{ X.*LOG(X./Y) if X > 0 & Y > 0,
rel_entr(X,Y) = { 0 if X == 0 & Y >= 0,
{ +Inf otherwise.
X and Y must either be the same size, or one must be a scalar. If X and
Y are vectors, then SUM(rel_entr(X,Y)) returns their relative entropy.
If they are PDFs (that is, if X>=0, Y>=0, SUM(X)==1, SUM(Y)==1) then
this is equal to their Kullback-Liebler divergence SUM(KL_DIV(X,Y)).
-SUM(rel_entr(X,1)) returns the entropy of X.

Disciplined convex programming information:
    rel_entr(X,Y) is convex in both X and Y, nonmonotonic in X, and
    nonincreasing in Y. Thus when used in CVX expressions, X must be
    real and affine and Y must be concave. The use of rel_entr(X,Y) in
    an objective or constraint will effectively constrain both X and Y 
    to be nonnegative, hence there is no need to add additional
    constraints X >= 0 or Y >= 0 to enforce this.

T~_{GY`{)Z(A%UC5J)Q)1HM Thanks! I have successfully solved this problem through this method. But there is another problem.

If you have Mosek 9.x available, i recommend you use that (latest version of Mosek 9.2.x) as solver. If not, install CVXQUAD’s exponential.m replacement, and follow the instructions at CVXQUAD: How to use CVXQUAD's Pade Approximant instead of CVX's unreliable Successive Approximation for GP mode, log, exp, entr, rel_entr, kl_div, log_det, det_rootn, exponential cone. CVXQUAD's Quantum (Matrix) Entropy & Matrix Log related functions .

After doing that, if the result is still infeasible, follow the guidance at https://yalmip.github.io/debugginginfeasible/ , all of which also applies to CVX, excpet for section 1.