# How to express the type of log({convex}) in cvx?

The problem from the paper whose doi is “10.1109/TWC.2017.2789293” is as follows:

I don’t know how to express the formula in the red box. And I have learnt about this one http://ask.cvxr.com/t/log-convex/9169. but it didn’t work, I ran the code in this way only to get a wrong conclusion. And my code is as follows:

%SCA
epsilon_Traj = 1;
obj1 = 0;
t = 0;
Q_t = Q_0;
V_t = V_0;
tmp1 = zeros(K,N+1);
for k = 1:K
for m =1:M
tmp1(k,: ) = tmp1(k,:)+Pbeta0./(Heig^2+norms(Q_t(:,:,m)-W(:,:,k),2).^2);
end
end
tmp1 = tmp1+sigma2;
item1 = log2(tmp1);
for k = 1:K
for m = 1:M
beta0./((Heig^2+norms(Q_t(:,:,m)-W(:,:,k),2).^2).^2)./tmp1(k,:)/log(2);
end
end
while epsilon_Traj >= 1e-4
t = t+1;
cvx_begin quiet
variable Q(2,N+1,M);
variable V(2,N+1,M);
variable A(2,N+1,M);
variable yita;
variable S(M,N+1,K);
variable y(M,N+1,K);
variable R_lb2(M,N+1,K);
expression varia(M,N+1,K)
expression R_lb1(K,N+1);
expression Tmp(M,N+1);
expression cons1(K,N+1);
maximize(yita)
subject to
for k = 1:K
for m = 1:M
y(m,:,k) >= rel_entr(1,(Heig^2+S(m,:,k))/(Pbeta0));
end
end
for k = 1:K
for m = 1:M
varia(m,:,k) = norms(Q_t(:,:,m)-W(:,:,k).ones(2,N+1),2).^2-pow_pos(norms(Q(:,:,m)-W(:,:,k).ones(2,N+1),2),2);
if M > 1
if m == 1
R_lb2(m,:,k) >= log_sum_exp([y(2:M,:,k);ones(1,N+1)log(sigma2)],1);
elseif m == M
R_lb2(m,:,k) >= log_sum_exp([y(1:M-1,:,k);ones(1,N+1)log(sigma2)],1);
else
R_lb2(m,:,k) >= log_sum_exp([y(1:M-1,:,k);y(m+1:M,:,k);ones(1,N+1)log(sigma2)],1);
end
end
end
end
for k = 1:K
for m = 1:M
cons1(k,: ) = cons1(k,:)+Alp(m,:,k).
(R_lb1(k,:)-R_lb2(m,:,k));
end
end
sum(cons1,2)/(N+1) >= yita
1e-5
for k = 1:K
for m = 1:M
S(m,:,k) <= norms(Q_t(:,:,m)-W(:,1,k),2,1).^2+ …
2
diag((Q_t(:,:,m)-W(:,1,k)).’
(Q(:,:,m)-Q_t(:,:,m))).’
end
end
for m = 1:M
norms(V(:,:,m),2,1) <= Vmax;
norms(V_t(:,:,m),2,1).^2+diag(2
V_t(:,:,m).’
(V(:,:,m)-V_t(:,:,m))).’ >= Vmin^2;
norms(A(:,:,m),2,1) <= amax;
Q(:,2:N+1,m) == Q(:,1:N,m)+V(:,1:N,m)deltat+1/2A(:,1:N,m)deltat^2;
V(:,2:N+1,m) == V(:,1:N,m)+A(:,1:N,m)deltat;
end
cvx_end
if ~contains(cvx_status,‘Solved’)
break;
end
obj2 = yita
1e-5;
epsilon_Traj = abs(obj2-obj1)/abs(obj2)
obj1 = obj2;
%update
Q_t = Q;
V_t = V;
tmp1 = zeros(K,N+1);
for k = 1:K
for m =1 :M
tmp1(k,: ) = tmp1(k,:)+P
beta0./(Heig^2+norms(Q_t(:,:,m)-W(:,:,k),2).^2);
end
end
tmp1 = tmp1+sigma2;
item1 = log2(tmp1);
for k = 1:K
for m = 1:M