Hi, I met some GP problems.
My matlab code is follow:
%uplink
%Consider a rectangular area with DxD m^2
%M distributed APs serves K terminals, they all randomly located in the area
clc; clear all
K=5; %number of terminals
M=30; %number of access points
tau_c=200; % coherence intervals
B=20; %Mhz
D=1; %in kilometer
sigma_shd = 8; %in dB
tau = 5;
power_f=0.1; %uplink power: 100 mW
noise_p = (B10^6)(1.381*10^-23)290(10^0.9);
Pu = power_f/noise_p;%nomalized receive SNR
Pp=Pu;%pilot power: 100 mWd0=0.01;%km
d1=0.05;%km
[U,S,V]=svd(randn(tau,tau)); % U includes tau orthogonal sequences%% The above are some initialization parameters, which are not important
%% Large_scale_uncorrelation
BETAA = Cellfree_Large_scale_uncorrelation(D,M,K,sigma_shd); % Generate BETAA M*K matrix%% Pilot Asignment: (random choice)
Phii = Random_Pilot_Assignment( U,tau,K ); % Generate Phii tau * K matrix%% Create Gamma matrix for uncorrelation shadowing
Gammaa = Cellfree_Create_Gamma( BETAA, Phii, M, K ,tau, Pp); % Generate Gammaa M * K matrix%% CVX_______________________________________________
PC = zeros(K,K);
for ii=1:K
for k=1:K
PC(ii,k)=sum(((Gammaa(:,k)./BETAA(:,k)).*BETAA(:,ii))) * Phii(:,k)’*Phii(:,ii);
end
end
PC1=(abs(PC)).^2;cvx_begin gp
variable etaa(K)
variable tfor k=1:1
first = 0;
for kk=[1:k-1,k+1:K]
first = first + etaa(kk) * PC1(kk,k);
end
frist = 1 / (sum(Gammaa(:,k)))^2 * t / etaa(k) * first; % The first item in the original denominatorici = 0; for ii=1:K ici = ici + etaa(ii) * sum(Gammaa(:,k).*BETAA(:,ii)); end second = 1 / (sum(Gammaa(:,k)))^2 * t / etaa(k) * ici; third = 1 / sum(Gammaa(:,k)) / Pu * t / etaa(k); sb_left = first + second + third;
end
minimize t^(-1)
subject to
sb_left - 1 <= 0;
for k=1:K
0 <= etaa(k) <= 1;
endcvx_end
Unfortunately, CVX told me this problem is failed.
Successive approximation method to be employed.
** For improved efficiency, SDPT3 is solving the dual problem.**
** SDPT3 will be called several times to refine the solution.**
** Original size: 51 variables, 20 equality constraints**
** 13 exponentials add 104 variables, 65 equality constraints**
-----------------------------------------------------------------
** Cones | Errors |**
Mov/Act | Centering Exp cone Poly cone | Status
--------±--------------------------------±--------
** 3/ 3 | 8.000e+00 2.611e+01 0.000e+00 | Failed**
** 2/ 2 | 8.000e+00 1.296e+01 0.000e+00 | Inaccurate/Solved**
** 2/ 2 | 8.000e+00s 4.297e+00 2.392e-02 | Solved**
** 1/ 1 | 1.773e+00 3.102e-01 2.229e-08 | Solved**
** 1/ 1 | 5.028e-01 2.168e-02 3.975e-08 | Solved**
** 1/ 1 | 5.231e-01s 2.352e-02s 1.497e-08 | Solved**
** 1/ 1 | 4.429e-01 1.673e-02 4.687e-11 | Solved**
** 1/ 1 | 1.504e-01 1.874e-03 0.000e+00 | Inaccurate/Solved**
** 1/ 1 | 5.093e-02 2.107e-04 0.000e+00 | Inaccurate/Solved**
** 1/ 1 | 1.011e-01s 8.421e-04s 0.000e+00 | Inaccurate/Solved**
** 1/ 1 | 3.861e-01s 1.264e-02s 0.000e+00 | Solved**
** 1/ 1 | 8.795e-01s 6.898e-02s 0.000e+00 | Inaccurate/Solved**
** 2/ 2 | 2.118e+00 4.624e-01 0.000e+00 | Inaccurate/Solved**
** 1/ 1 | 5.844e-01 2.953e-02 0.000e+00 | Inaccurate/Solved**
** 1/ 1 | 1.617e-01 2.167e-03 0.000e+00 | Inaccurate/Solved**
** 1/ 1 | 7.968e-02 5.216e-04 0.000e+00 | Inaccurate/Solved**
** 1/ 1 | 4.664e-02 1.750e-04 0.000e+00 | Inaccurate/Solved**
** 1/ 1 | 1.593e-01s 2.102e-03s 0.000e+00 | Inaccurate/Solved**
-----------------------------------------------------------------
Status: Failed
Optimal value (cvx_optval): NaN
What is ‘Failed’ mean? Is my code wrong? Thanks.