i faced two problem here
- CVX Warning: Models involving “log” or other functions in the log, exp, and entropy family are solved using an experimental successive approximation method. This method is slower and less reliable than the method CVX employs for other models. Please see the section of the user’s guide entitled The successive approximation method for more details about the approach, and for instructions on how to suppress this warning message in the future.
The CVX status is Inaccurate/Solved
CVX Status for the Z-update: Inaccurate/Solved
I am new for CVX. How to get ride of these problems, please?
Here is the code:
% Step 3: Solve Z via CVX (binary MILP)
E3 = zeros(M,K,B);
cvx_begin quiet
variable Z_new(M,K,B) % relaxed allocation
expression E3(M,K,B)
for m = 1:M
for k = 1:K
for b = 1:B
e_self = square_abs(U(m,k,b) * H(m,k,b) * Z_new(m,k,b) - 1);
e_int = 0;
for mp = 1:M
for kp = 1:K
if ~(mp==m && kp==k)
e_int = e_int + square_abs(U(m,k,b) * H(mp,k,b) * Z_new(mp,kp,b));
end
end
end
e_noise = sigma2 * square_abs(U(m,k,b));
E3(m,k,b) = e_self + e_int + e_noise;
end
end
end
minimize (BW/ln2*(sum(sum(sum(W .* E3 - log(W)/ln2)))));
subject to
% Constraint 1: At most 1 user per cell per band
for m = 1:M
for b = 1:B
sum(Z_new(m,:,b)) <= 1;
end
end
% (2) Box constraints on relaxed Z
0 <= Z_new <= 1;
% Constraint 2: Min rate constraint
for m = 1:M
for k = 1:K
rate_expr = 0;
for b = 1:B
rate_expr = rate_expr + BW*(log(W(m,k,b))/ln2 - W(m,k,b)*E3(m,k,b)/ln2 + 1/ln2);
end
rate_expr >= env.R_min;
end
end
cvx_end
Z = Z_new;
disp(['CVX Status for the Z-update: ', cvx_status]);