cvx_solver Mosek
cvx_save_prefs
cvx_begin
variable W_r(N,N) hermitian semidefinite
variable W_t(N,N) hermitian semidefinite
variable F_f(J,J) hermitian semidefinite
variables lamda_br chi_br(L1)
variables lamda_jr chi_jr(L1)
variables lamda_bt chi_bt(L2)
variables lamda_jt chi_jt(L2)
variables x1 x2
expressions T_burr T_bu_rr T_jurr …
T_butt T_bu_tt T_jutt …
A_br(M+1,M+1,L1) A_bt(M+1,M+1,L2)…
A_jr(M+1,M+1,L1) A_jt(M+1,M+1,L2)…
B1t(M,M,L2) B2t(M,1,L2) B3t(1,M,L2) B4t(1,L2)…
J1t(M,M,L2) J2t(M,1,L2) J3t(1,M,L2) J4t(1,L2)…
B1r(M,M,L1) B2r(M,1,L1) B3r(1,M,L1) B4r(1,L1)…
J1r(M,M,L1) J2r(M,1,L1) J3r(1,M,L1) J4r(1,L1)…
Pha1_r Pha2_r Pha1_t Pha2_t
%%%%r区
T_bur=(trace(HH_bu_rWr));%%%%%SDR开始
T_bu_r=(trace(HH_bu_rWt));
T_jur=trace(GG_ju_r*Ff);
t_ur=1/((T_jur)+a0);
T_burr=trace(HH_bu_r*W_r);
T_bu_rr=trace(HH_bu_r*W_t);
T_jurr=trace(GG_ju_r*F_f);
Pha1_r=real(-t_ur*((T_jurr)+a0)+log(t_ur)+1)+...
log_det(real(T_burr+(T_jurr)+a0));
%%%%t区
T_but=trace(HH_bu_t*Wt);%%%%%SDR开始
T_bu_t=trace(HH_bu_t*Wr);
T_jut=trace(GG_ju_t*Ff);
t_ut=1/((T_jut)+a0);%%%%%引用引理
T_butt=trace(HH_bu_t*W_t);%%%%%SDR开始
T_bu_tt=trace(HH_bu_t*W_r);
T_jutt=trace(GG_ju_t*F_f);
Pha1_t=real(-t_ut*((T_jutt)+a0)+log(t_ut)+1)+...
log_det(real(T_butt+T_jutt+a0));
for l1=1:L1
B1r(:,:,l1)=lamda_br*eye(M)-h_be_r*W_r*h_be_r';
B2r(:,:,l1)=-h_be_r*W_r*h_be_r'*H_ie_r(:,l1);
B3r(:,:,l1)=-H_ie_r(:,l1)'*h_be_r*W_r*h_be_r';
B4r(:,l1)=-lamda_br*exp(log(error)*2)-...
H_ie_r(:,l1)'*h_be_r*W_r*h_be_r'*H_ie_r(:,l1)+chi_br(l1) ;
A_br(:,:,l1)=[B1r(:,:,l1),B2r(:,:,l1);B3r(:,:,l1),B4r(:,l1)];
Gamma_wr=trace(Wrx*(H_ie_r(:,l1)*H_ie_r(:,l1)'+exp(log(error)*2)*eye(M)+...
2*error*sqrt(eye(M)*(H_ie_r(:,l1)'*Wrx*H_ie_r(:,l1))/trace(Wrx))));
J1r(:,:,l1)=lamda_jr*eye(M)+h_je_r*F_f*h_je_r';
J2r(:,:,l1)=h_je_r*F_f*h_je_r'*H_ie_r(:,l1);
J3r(:,:,l1)=H_ie_r(:,l1)'*h_je_r*F_f*h_je_r';
J4r(:,l1)=-lamda_jr*exp(log(error)*2)+...
H_ie_r(:,l1)'*h_je_r*F_f*h_je_r'*H_ie_r(:,l1)-chi_jr(l1) ;
A_jr(:,:,l1)=[J1r(:,:,l1),J2r(:,:,l1);J3r(:,:,l1),J4r(:,l1)];
Gamma_fr=trace(Frx*(H_ie_r(:,l1)*H_ie_r(:,l1)'+exp(log(error)*2)*eye(M)-...
2*error*sqrt(eye(M)*(H_ie_r(:,l1)'*Frx*H_ie_r(:,l1))/trace(Frx))));
t1=real((Gamma_wr+Gamma_fr+a0)^(-1));
Pha2_r(:,l1)=real(t1*(chi_br(l1)+chi_jr(l1)+a0)-log(t1)-1)-log_det(real(chi_br(l1)+a0));
end
for l2=1:L2
B1t(:,:,l2)=lamda_bt*eye(M)-h_be_t*W_t*h_be_t';
B2t(:,:,l2)=-h_be_t*W_t*h_be_t'*H_ie_t(:,l2);
B3t(:,:,l2)=-H_ie_t(:,l2)'*h_be_t*W_t*h_be_t';
B4t(:,l2)=-lamda_bt*exp(log(error)*2)-...
H_ie_t(:,l2)'*h_be_t*W_t*h_be_t'*H_ie_t(:,l2)+chi_bt(l2) ;
A_bt(:,:,l2)=[B1t(:,:,l2),B2t(:,:,l2);B3t(:,:,l2),B4t(:,l2)];
Gamma_wt=trace(Wtx*(H_ie_t(:,l2)*H_ie_t(:,l2)'+exp(log(error)*2)*eye(M)+...
2*error*sqrt(eye(M)*(H_ie_t(:,l2)'*Wtx*H_ie_t(:,l2))/trace(Wtx))));
J1t(:,:,l2)=lamda_jt*eye(M)+h_je_t*F_f*h_je_t';
J2t(:,:,l2)=h_je_t*F_f*h_je_t'*H_ie_t(:,l2);
J3t(:,:,l2)=H_ie_t(:,l2)'*h_je_t*F_f*h_je_t';
J4t(:,l2)=-lamda_jt*exp(log(error)*2)+...
H_ie_t(:,l2)'*h_je_t*F_f*h_je_t'*H_ie_t(:,l2)-chi_jt(l2) ;
A_jt(:,:,l2)=[J1t(:,:,l2),J2t(:,:,l2);J3t(:,:,l2),J4t(:,l2)];
Gamma_ft=trace(Ftx*(H_ie_t(:,l2)*H_ie_t(:,l2)'+exp(log(error)*2)*eye(M)-...
2*error*sqrt(eye(M)*(H_ie_t(:,l2)'*Ftx*H_ie_t(:,l2))/trace(Ftx))));
t2=real((Gamma_wt+Gamma_ft+a0)^(-1));
Pha2_t(:,l2)=real(t2*(chi_bt(l2)+chi_jt(l2)+a0)-log(t2)-1)-log_det(real(chi_bt(l2)+a0));
end
maximize B/log(2)*(nr*(Pha1_r-x1))+...
B/log(2)*(nt*(Pha1_t-x2))
subject to
x1>=0;
x2>=0;
real(trace(W_r+W_t))<=P1_max(ll);
real(trace(F_f))<=Pn;
for l1=1:L1
Pha2_r(:,l1)<=x1;
A_br(:,:,l1) == hermitian_semidefinite(M+1);
A_jr(:,:,l1) == hermitian_semidefinite(M+1);
end
for l2=1:L2
Pha2_t(:,l2)<=x2;
A_bt(:,:,l2) == hermitian_semidefinite(M+1);
A_jt(:,:,l2) == hermitian_semidefinite(M+1);
end
cvx_end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Calling Mosek 9.1.9: 558 variables, 111 equality constraints
For improved efficiency, Mosek is solving the dual problem.
MOSEK Version 9.1.9 (Build date: 2019-11-21 11:34:40)
Copyright (c) MOSEK ApS, Denmark. WWW: mosek.com
Platform: Windows/64-X86
MOSEK warning 960: E[13,13] = -3.0e+13 is large in absolute size.
MOSEK warning 960: E[6,6] = -3.0e+13 is large in absolute size.
MOSEK warning 960: E[6,6] = -1.2e+13 is large in absolute size.
MOSEK warning 960: E[13,13] = -1.2e+13 is large in absolute size.
MOSEK warning 960: E[13,13] = -4.2e+13 is large in absolute size.
MOSEK warning 960: E[6,6] = -4.2e+13 is large in absolute size.
MOSEK warning 960: E[6,6] = 2.4e+13 is large in absolute size.
MOSEK warning 960: E[13,13] = 2.4e+13 is large in absolute size.
MOSEK warning 960: E[13,13] = -3.0e+13 is large in absolute size.
MOSEK warning 960: E[6,6] = -3.0e+13 is large in absolute size.
Warning number 960 is disabled.
MOSEK warning 62: The A matrix contains a large value of -1.0e+10 in constraint ‘’ (40) at variable ‘’ (50).
MOSEK warning 62: The A matrix contains a large value of 1.0e+10 in constraint ‘’ (40) at variable ‘’ (55).
MOSEK warning 62: The A matrix contains a large value of -1.3e+10 in constraint ‘’ (35) at variable ‘’ (75).
MOSEK warning 62: The A matrix contains a large value of 1.3e+10 in constraint ‘’ (35) at variable ‘’ (79).
MOSEK warning 710: #3 (nearly) zero elements are specified in sparse col ‘’ (107) of matrix ‘A’.
MOSEK warning 710: #1 (nearly) zero elements are specified in sparse col ‘’ (110) of matrix ‘A’.
MOSEK warning 710: #3 (nearly) zero elements are specified in sparse col ‘’ (113) of matrix ‘A’.
MOSEK warning 710: #4 (nearly) zero elements are specified in sparse col ‘’ (116) of matrix ‘A’.
Problem
Name :
Objective sense : min
Type : CONIC (conic optimization problem)
Constraints : 111
Cones : 6
Scalar variables : 118
Matrix variables : 11
Integer variables : 0
Optimizer started.
Presolve started.
Linear dependency checker started.
Linear dependency checker terminated.
Eliminator started.
Freed constraints in eliminator : 4
Eliminator terminated.
Eliminator started.
Freed constraints in eliminator : 0
Eliminator terminated.
Eliminator - tries : 2 time : 0.00
Lin. dep. - tries : 1 time : 0.00
Lin. dep. - number : 0
Presolve terminated. Time: 0.00
Problem
Name :
Objective sense : min
Type : CONIC (conic optimization problem)
Constraints : 111
Cones : 6
Scalar variables : 118
Matrix variables : 11
Integer variables : 0
Optimizer - threads : 4
Optimizer - solved problem : the primal
Optimizer - Constraints : 103
Optimizer - Cones : 7
Optimizer - Scalar variables : 74 conic : 62
Optimizer - Semi-definite variables: 11 scalarized : 948
Factor - setup time : 0.00 dense det. time : 0.00
Factor - ML order time : 0.00 GP order time : 0.00
Factor - nonzeros before factor : 4291 after factor : 4355
Factor - dense dim. : 0 flops : 1.44e+06
ITE PFEAS DFEAS GFEAS PRSTATUS POBJ DOBJ MU TIME
0 2.4e+01 2.8e+09 8.8e+01 0.00e+00 -8.969345880e+01 -1.161516665e+00 1.0e+00 0.00
1 1.2e+01 1.4e+09 6.3e+01 -1.00e+00 -9.383315842e+01 -5.003492681e+00 4.9e-01 0.00
2 1.9e+00 2.2e+08 2.7e+01 -1.00e+00 -1.568855229e+02 -4.598546914e+01 7.3e-02 0.02
3 5.1e-02 5.9e+06 4.4e+00 -1.00e+00 -2.234563068e+03 -1.670601933e+03 2.0e-03 0.02
4 1.4e-03 1.6e+05 7.1e-01 -1.00e+00 -8.076676464e+04 -6.298051588e+04 5.3e-05 0.02
5 1.8e-04 2.1e+04 2.6e-01 -1.00e+00 -5.817065864e+05 -4.481371132e+05 7.0e-06 0.02
6 8.8e-05 1.0e+04 1.8e-01 -9.99e-01 -1.179916336e+06 -9.091592687e+05 3.4e-06 0.02
7 8.4e-05 9.7e+03 1.8e-01 -9.98e-01 -1.243073113e+06 -9.578682379e+05 3.2e-06 0.02
8 8.4e-05 9.7e+03 1.8e-01 -9.97e-01 -1.243073113e+06 -9.578682379e+05 3.2e-06 0.02
9 8.4e-05 9.7e+03 1.8e-01 -9.98e-01 -1.243073113e+06 -9.578682379e+05 3.2e-06 0.02
Optimizer terminated. Time: 0.03
Interior-point solution summary
Problem status : ILL_POSED
Solution status : PRIMAL_ILLPOSED_CER
Dual. obj: -3.3391424711e+00 nrm: 2e+00 Viol. con: 0e+00 var: 3e-06 barvar: 3e-06 cones: 0e+00
Optimizer summary
Optimizer - time: 0.03
Interior-point - iterations : 10 time: 0.03
Basis identification - time: 0.00
Primal - iterations : 0 time: 0.00
Dual - iterations : 0 time: 0.00
Clean primal - iterations : 0 time: 0.00
Clean dual - iterations : 0 time: 0.00
Simplex - time: 0.00
Primal simplex - iterations : 0 time: 0.00
Dual simplex - iterations : 0 time: 0.00
Mixed integer - relaxations: 0 time: 0.00
Status: Failed
Optimal value (cvx_optval): NaN
ans =
NaN