Scaling problem in LMI

clc,clear;
close all;
bs_antenna_number = 4;
eve_antenna_number = 2;
irs_antenna_number = 4;% 6 is no error, 10 is error

s = rng(0);% random seed 
%% paramters
temp= 15:5:40;
trans_maxpower_all =10.^((temp-30) ./ 10); % trans_power=1 
noise_power = 10^(-11); 



rate_user_th = 0.5; 

error = 0.02;

H_bs_irs_temp = 1e-2*(rand(irs_antenna_number,bs_antenna_number)+1i*rand(irs_antenna_number,bs_antenna_number));


h_irs_u1_temp = 1e-2*(rand(irs_antenna_number,1)+1i*rand(irs_antenna_number,1));
H_irs_e1_temp = 1e-2*(rand(eve_antenna_number,irs_antenna_number)+1i*rand(eve_antenna_number,irs_antenna_number));
rho = error*norm(H_irs_e1_temp,'fro');
%parameter initial 
Pmax = trans_maxpower_all(2);
p1_ini = 0.5*Pmax;
p2_ini = 0.5*Pmax;
f1_ini = sqrt(p1_ini/bs_antenna_number)*exp(1i*2*pi*rand(bs_antenna_number,1));
f2_ini = sqrt(p2_ini/bs_antenna_number)*exp(1i*2*pi*rand(bs_antenna_number,1));
v_ini = exp(1i*2*pi*rand(irs_antenna_number,1));
xi =2;
gamma = 1/noise_power;
%     factor = 1/Pmax;
F1_ini = f1_ini*f1_ini' ;
F2_ini = f2_ini*f2_ini';
Phi_ini = diag(v_ini);
h_u = (h_irs_u1_temp'*Phi_ini*H_bs_irs_temp)';
H_e = H_irs_e1_temp*Phi_ini*H_bs_irs_temp;
irs_antenna_number = length(v_ini);
%     cvx_solver mosek
cvx_begin   
    variable F1(bs_antenna_number,bs_antenna_number) hermitian  semidefinite
    variable F2(bs_antenna_number,bs_antenna_number) hermitian  semidefinite
    variable q(2,1) 
    variable p(2,1) nonnegative
    variable epsilon(1) nonnegative
    expression C(irs_antenna_number,irs_antenna_number)  
    maximize (q(1)-q(2))
    subject to
        log(1+real(trace(gamma*(F1+F2)*(h_u*h_u'))))>=q(1)*log(2)
        
        A1 = 1+gamma*real(trace(F2_ini*(h_u*h_u')));
        log(A1)+real(trace(gamma*(h_u*h_u')*(F2-F2_ini)))/A1<= q(2)*log(2)
        C = Phi_ini*H_bs_irs_temp*((2^xi-1)*F2-F1)*H_bs_irs_temp'*Phi_ini';
        S=[H_irs_e1_temp;
            eye(irs_antenna_number)];
        

        (blkdiag(((2^xi-1)*noise_power-epsilon)*eye(eve_antenna_number), epsilon/rho^2.*eye(irs_antenna_number))+(S*C*S'))==hermitian_semidefinite(irs_antenna_number+eve_antenna_number)         
        q(1) - q(2) >= rate_user_th 
        
        bs_antenna_number*diag(F1) == p(1)
        
        bs_antenna_number*diag(F2) == p(2)
        
        sum(p) <= Pmax
%             trace(F1+F2)<= Pmax
        F1 == hermitian_semidefinite(bs_antenna_number)
        F2 == hermitian_semidefinite(bs_antenna_number)
cvx_end


hello, i want to solve this problem using cvx, but i don’t know how to deal with the scaling problem in LMI.
As shown in the picture, the coefficients of the left hand of the LMI constraint are very small, can you help me?

Try changing units.

Read https://docs.mosek.com/modeling-cookbook/practical.html?highlight=scaling#scaling

i try to change the units, but different values leads to different results. i don’t know how to deal with it.

Scaling is an art, not n absolute a science.

Maybe if you show solver logs and results, someone (not necessarily me) can offer some suggestions.

clc,clear;
close all;
bs_antenna_number = 4;
eve_antenna_number = 2;
irs_antenna_number = 4;% 6 is no error, 10 is error

s = rng(0);% random seed 
%% paramters
temp= 15:5:40;
trans_maxpower_all =10.^((temp-30) ./ 10); % trans_power=1 
noise_power = 10^(-11); 



rate_user_th = 0.1; 

error = 0.005;

H_bs_irs_temp = 1e-2*(rand(irs_antenna_number,bs_antenna_number)+1i*rand(irs_antenna_number,bs_antenna_number));


h_irs_u1_temp = 1e-2*(rand(irs_antenna_number,1)+1i*rand(irs_antenna_number,1));
h_irs_u1_temp = h_irs_u1_temp/sqrt(noise_power);
H_irs_e1_temp = 1e-2*(rand(eve_antenna_number,irs_antenna_number)+1i*rand(eve_antenna_number,irs_antenna_number));
H_irs_e1_temp = H_irs_e1_temp/sqrt(noise_power);
rho = error*norm(H_irs_e1_temp,'fro');
noise_power=1;
%parameter initial 
Pmax = trans_maxpower_all(2);
p1_ini = 0.5*Pmax;
p2_ini = 0.5*Pmax;
f1_ini = sqrt(p1_ini/bs_antenna_number)*exp(1i*2*pi*rand(bs_antenna_number,1));
f2_ini = sqrt(p2_ini/bs_antenna_number)*exp(1i*2*pi*rand(bs_antenna_number,1));
v_ini = exp(1i*2*pi*rand(irs_antenna_number,1));
xi =1;
gamma = 1/noise_power;
%     factor = 1/Pmax;
    F1_ini = f1_ini*f1_ini' ;
    F2_ini = f2_ini*f2_ini';
    Phi_ini = diag(v_ini);
    h_u = (h_irs_u1_temp'*Phi_ini*H_bs_irs_temp)';
    H_e = H_irs_e1_temp*Phi_ini*H_bs_irs_temp;
    irs_antenna_number = length(v_ini);
%     cvx_solver mosek
    cvx_begin   
        variable F1(bs_antenna_number,bs_antenna_number) hermitian  semidefinite
        variable F2(bs_antenna_number,bs_antenna_number) hermitian  semidefinite
        variable q(2,1) 
        variable p(2,1) nonnegative
        variable epsilon(1) nonnegative
        expression C(irs_antenna_number,irs_antenna_number)  
        maximize (q(1)-q(2))
        subject to
            log(1+real(trace(gamma*(F1+F2)*(h_u*h_u'))))>=q(1)*log(2)
            
            A1 = 1+gamma*real(trace(F2_ini*(h_u*h_u')));
            log(A1)+real(trace(gamma*(h_u*h_u')*(F2-F2_ini)))/A1<= q(2)*log(2)
            C = Phi_ini*H_bs_irs_temp*((2^xi-1)*F2-F1)*H_bs_irs_temp'*Phi_ini';
            S=[H_irs_e1_temp;
                eye(irs_antenna_number)];
            

            (blkdiag(((2^xi-1)*noise_power-epsilon)*eye(eve_antenna_number), epsilon/rho^2.*eye(irs_antenna_number))+(S*C*S'))==hermitian_semidefinite(irs_antenna_number+eve_antenna_number)         
            q(1) - q(2) >= rate_user_th 
            
            bs_antenna_number*diag(F1) == p(1)
            
            bs_antenna_number*diag(F2) == p(2)
            
            sum(p) <= Pmax
%             trace(F1+F2)<= Pmax
    F1 == hermitian_semidefinite(bs_antenna_number)
    F2 == hermitian_semidefinite(bs_antenna_number)
    cvx_end


this is the blog, thank you very much.

Please show all the CVX and Mosek output, which would include any warnings Mosek might have issued about near zero or large magnitude input data.

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.

Calling Mosek 9.1.9: 131 variables, 42 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 © MOSEK ApS, Denmark. WWW: mosek.com
Platform: Windows/64-X86

MOSEK warning 710: #2 (nearly) zero elements are specified in sparse col ‘’ (5) of matrix ‘A’.
MOSEK warning 710: #2 (nearly) zero elements are specified in sparse col ‘’ (10) of matrix ‘A’.
Problem
Name :
Objective sense : min
Type : CONIC (conic optimization problem)
Constraints : 42
Cones : 1
Scalar variables : 31
Matrix variables : 5
Integer variables : 0

Optimizer started.
Presolve started.
Linear dependency checker started.
Linear dependency checker terminated.
Eliminator started.
Freed constraints in eliminator : 1
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.02
Problem
Name :
Objective sense : min
Type : CONIC (conic optimization problem)
Constraints : 42
Cones : 1
Scalar variables : 31
Matrix variables : 5
Integer variables : 0

Optimizer - threads : 8
Optimizer - solved problem : the primal
Optimizer - Constraints : 40
Optimizer - Cones : 2
Optimizer - Scalar variables : 21 conic : 17
Optimizer - Semi-definite variables: 5 scalarized : 222
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 : 820 after factor : 820
Factor - dense dim. : 0 flops : 2.60e+05
ITE PFEAS DFEAS GFEAS PRSTATUS POBJ DOBJ MU TIME
0 4.0e+00 2.0e+02 4.9e+00 0.00e+00 3.903035739e+00 0.000000000e+00 1.0e+00 0.03
1 8.1e-01 4.1e+01 2.1e+00 -9.71e-01 5.584411855e+00 5.499905180e+00 2.0e-01 0.11
2 1.2e-01 6.2e+00 6.5e-01 -8.59e-01 8.960011869e+00 2.472620330e+01 3.0e-02 0.11
3 2.4e-02 1.2e+00 1.1e-01 -1.74e-01 -6.543418016e+00 5.835013851e+00 5.9e-03 0.13
4 9.4e-03 4.8e-01 7.7e-03 1.47e+00 2.303420479e+00 2.457293575e+00 2.4e-03 0.13
5 5.8e-03 3.0e-01 3.2e-03 2.96e+00 2.511756492e+00 2.615576313e+00 1.5e-03 0.13
6 1.2e-03 6.2e-02 2.6e-04 1.62e+00 2.792844012e+00 2.808323977e+00 3.0e-04 0.13
7 2.6e-04 1.3e-02 2.6e-05 1.08e+00 2.950720624e+00 2.954387030e+00 6.4e-05 0.14
8 1.1e-04 5.4e-03 7.7e-06 8.91e-01 2.954272630e+00 2.956343869e+00 2.6e-05 0.14
9 4.4e-05 2.2e-03 2.3e-06 7.72e-01 2.956107748e+00 2.957311180e+00 1.1e-05 0.14
10 1.5e-05 7.9e-04 5.2e-07 5.15e-01 2.946884525e+00 2.947357074e+00 3.8e-06 0.14
11 2.2e-06 1.1e-04 2.8e-08 9.34e-01 2.948274829e+00 2.948342298e+00 5.4e-07 0.14
12 4.1e-07 2.1e-05 2.3e-09 9.88e-01 2.948292467e+00 2.948305665e+00 1.0e-07 0.14
13 2.5e-07 1.3e-05 1.1e-09 9.07e-01 2.948244695e+00 2.948253626e+00 5.9e-08 0.16
14 6.5e-08 2.4e-06 7.0e-11 1.11e+00 2.948180644e+00 2.948181248e+00 9.1e-09 0.16
15 6.4e-08 2.3e-06 6.4e-11 8.77e-01 2.948192701e+00 2.948193279e+00 7.3e-09 0.16
16 2.2e-08 2.7e-08 1.3e-13 8.26e-01 2.948153569e+00 2.948153597e+00 1.6e-10 0.17
17 2.2e-08 2.7e-08 1.3e-13 1.65e+00 2.948153569e+00 2.948153597e+00 1.6e-10 0.17
18 1.9e-08 2.7e-08 1.3e-13 -5.94e+00 2.948153567e+00 2.948153595e+00 1.6e-10 0.17
19 1.9e-08 2.7e-08 1.3e-13 1.01e+00 2.948153567e+00 2.948153595e+00 1.6e-10 0.17
20 1.9e-08 2.7e-08 1.3e-13 1.04e+00 2.948153567e+00 2.948153595e+00 1.6e-10 0.17
21 1.8e-08 2.7e-08 1.3e-13 1.68e+00 2.948153567e+00 2.948153595e+00 1.6e-10 0.19
22 1.8e-08 2.7e-08 1.3e-13 4.61e-01 2.948153567e+00 2.948153595e+00 1.6e-10 0.19
23 1.8e-08 2.7e-08 1.3e-13 1.02e+00 2.948153567e+00 2.948153595e+00 1.6e-10 0.19
24 1.8e-08 2.7e-08 1.3e-13 1.02e+00 2.948153567e+00 2.948153595e+00 1.6e-10 0.19
25 1.7e-08 2.6e-08 1.2e-13 9.99e-01 2.948153565e+00 2.948153592e+00 1.6e-10 0.19
26 1.7e-08 2.5e-08 1.1e-13 1.00e+00 2.948153565e+00 2.948153591e+00 1.5e-10 0.19
27 1.7e-08 2.5e-08 1.1e-13 9.98e-01 2.948153565e+00 2.948153591e+00 1.5e-10 0.20
Optimizer terminated. Time: 0.23

Interior-point solution summary
Problem status : PRIMAL_AND_DUAL_FEASIBLE
Solution status : OPTIMAL
Primal. obj: 2.9481535653e+00 nrm: 7e+01 Viol. con: 2e-03 var: 3e-06 barvar: 0e+00 cones: 0e+00
Dual. obj: 2.9481535910e+00 nrm: 3e+01 Viol. con: 0e+00 var: 2e-09 barvar: 2e-09 cones: 0e+00
Optimizer summary
Optimizer - time: 0.23
Interior-point - iterations : 28 time: 0.20
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: Solved
Optimal value (cvx_optval): +3.04815

I duplicated your result (and Mosek warnings). Despite the warnings, the optimal variable values all seem of reasonable scale (except a small number of imaginary terms in off-diagonal elements in the hermitian psd matrices), and apparently Mosek did not encounter difficulty in solving the problem.

Nevertheless, you should look at all the “net” coefficients in your model to try to identify where the near zeros elements arise. I’m not sure how straightforward that is, because CVX does transform your problem before providing ti to the solver.

BTW, optimal F1 and F2 each have 3 (out of 4) eigenvalues equal to zero (within tolerance). I.e., they are rank one matrices, even though MATLAB’s rank command says 4 (due to its much tighter numerical tolerance).

You haven’t shown us any other scalings which lead to different results.

ok,thank you very much.


As shown in the picture, the coefficients are of a small order of magnitude (10^-8-10^-5), can i multiple a
factor (for example 10^4)to improve numerical stability.

If you can multiply numbers to get close to 1, that may improve numerical stability. Of course, you need foe the problem to be mathematically equivalent after any scaling.

my constraint is \mathbf{A}\succeq0, i think a\mathbf{A}\succeq0 is equivalent to my constraint, where a is a factor.

Yes, if a > 0. Choose a to make non-zero elements of aA close to one in magnitude.

clc,clear;
close all;
bs_antenna_number = 4;
eve_antenna_number = 2;
irs_antenna_number = 4;% 6 is no error, 10 is error

s = rng(0);% random seed 
%% paramters
temp= 15:5:40;
trans_maxpower_all =10.^((temp-30) ./ 10); % trans_power=1 
noise_power = 10^(-11); 



rate_user_th = 0.1; 

error = 0.005;

H_bs_irs_temp = 1e-2*(rand(irs_antenna_number,bs_antenna_number)+1i*rand(irs_antenna_number,bs_antenna_number));


h_irs_u1_temp = 1e-2*(rand(irs_antenna_number,1)+1i*rand(irs_antenna_number,1));
h_irs_u1_temp = h_irs_u1_temp/sqrt(noise_power);
H_irs_e1_temp = 1e-2*(rand(eve_antenna_number,irs_antenna_number)+1i*rand(eve_antenna_number,irs_antenna_number));
H_irs_e1_temp = H_irs_e1_temp/sqrt(noise_power);
rho = error*norm(H_irs_e1_temp,'fro');
noise_power=1;
%parameter initial 
Pmax = trans_maxpower_all(2);
p1_ini = 0.5*Pmax;
p2_ini = 0.5*Pmax;
f1_ini = sqrt(p1_ini/bs_antenna_number)*exp(1i*2*pi*rand(bs_antenna_number,1));
f2_ini = sqrt(p2_ini/bs_antenna_number)*exp(1i*2*pi*rand(bs_antenna_number,1));
v_ini = exp(1i*2*pi*rand(irs_antenna_number,1));
xi =1;
gamma = 1/noise_power;

% factor = 1/Pmax;
F1_ini = f1_inif1_ini’ ;
F2_ini = f2_ini
f2_ini’;
Phi_ini = diag(v_ini);
h_u = (h_irs_u1_temp’Phi_iniH_bs_irs_temp)’;
H_e = H_irs_e1_tempPhi_iniH_bs_irs_temp;
irs_antenna_number = length(v_ini);
ratio = 1e0;%1e0,1e5,1e2
% cvx_solver mosek
cvx_begin
variable F1(bs_antenna_number,bs_antenna_number) hermitian semidefinite
variable F2(bs_antenna_number,bs_antenna_number) hermitian semidefinite
variable q(2,1)
variable p(2,1) nonnegative
variable epsilon(1) nonnegative
expression C(irs_antenna_number,irs_antenna_number)
maximize (q(1)-q(2))
subject to
log(1+real(trace(gamma*(F1+F2)(h_uh_u’))))>=q(1)*log(2)

        A1 = 1+gamma*real(trace(F2_ini*(h_u*h_u')));
        log(A1)+real(trace(gamma*(h_u*h_u')*(F2-F2_ini)))/A1<= q(2)*log(2)
        C = Phi_ini*H_bs_irs_temp*((2^xi-1)*F2-F1)*H_bs_irs_temp'*Phi_ini';
        S=[H_irs_e1_temp;
            eye(irs_antenna_number)];
        

        ratio*(blkdiag(((2^xi-1)*noise_power-epsilon)*eye(eve_antenna_number), epsilon/rho^2.*eye(irs_antenna_number))+(S*C*S'))==hermitian_semidefinite(irs_antenna_number+eve_antenna_number)         
        q(1) - q(2) >= rate_user_th 
        
        bs_antenna_number*diag(F1) == p(1)
        
        bs_antenna_number*diag(F2) == p(2)
        
        sum(p) <= Pmax

% trace(F1+F2)<= Pmax
F1 == hermitian_semidefinite(bs_antenna_number)
F2 == hermitian_semidefinite(bs_antenna_number)
cvx_end

when i change the value ofratio, the results different, however, the cvx results is NAN when ratio=1e3

Show us all the solver and CVX output, and how the results differ.

If result is NAN, CVX provides a reason why.

when ratio=10:
Calling Mosek 9.1.9: 145 variables, 49 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 © MOSEK ApS, Denmark. WWW: mosek.com
Platform: Windows/64-X86

MOSEK warning 710: #1 (nearly) zero elements are specified in sparse col ‘’ (12) of matrix ‘A’.
MOSEK warning 710: #2 (nearly) zero elements are specified in sparse col ‘’ (19) of matrix ‘A’.
Problem
Name :
Objective sense : min
Type : CONIC (conic optimization problem)
Constraints : 49
Cones : 1
Scalar variables : 45
Matrix variables : 5
Integer variables : 0

Optimizer started.
Presolve started.
Linear dependency checker started.
Linear dependency checker terminated.
Eliminator started.
Freed constraints in eliminator : 1
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.03
Problem
Name :
Objective sense : min
Type : CONIC (conic optimization problem)
Constraints : 49
Cones : 1
Scalar variables : 45
Matrix variables : 5
Integer variables : 0

Optimizer - threads : 16
Optimizer - solved problem : the primal
Optimizer - Constraints : 47
Optimizer - Cones : 2
Optimizer - Scalar variables : 28 conic : 24
Optimizer - Semi-definite variables: 5 scalarized : 222
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 : 1128 after factor : 1128
Factor - dense dim. : 0 flops : 2.61e+05
ITE PFEAS DFEAS GFEAS PRSTATUS POBJ DOBJ MU TIME
0 3.7e+00 1.6e+03 1.2e+02 0.00e+00 1.199030357e+02 0.000000000e+00 1.0e+00 0.06
1 5.9e-01 2.6e+02 4.8e+01 -9.97e-01 1.207138182e+02 6.898403111e+00 1.6e-01 0.13
2 2.3e-01 1.0e+02 3.0e+01 -9.83e-01 1.152161512e+02 1.206773447e+01 6.3e-02 0.13
3 4.6e-02 2.0e+01 1.2e+01 -9.56e-01 5.476044426e+01 1.420918823e+01 1.3e-02 0.13
4 7.2e-03 3.2e+00 3.4e+00 -7.74e-01 -1.386606927e+02 8.592746504e+00 1.9e-03 0.14
5 2.3e-03 9.9e-01 4.4e-01 4.30e-01 -1.369844767e+01 1.776219220e+00 6.1e-04 0.14
6 1.1e-03 5.1e-01 3.5e-02 2.18e+00 5.116689756e+00 7.612169185e-01 3.1e-04 0.14
7 4.8e-04 2.1e-01 1.2e-02 2.37e+00 1.554945462e+00 7.225545000e-01 1.3e-04 0.14
8 3.1e-04 1.4e-01 5.1e-03 1.70e+00 2.107298339e+00 1.676268047e+00 8.4e-05 0.14
9 7.0e-05 3.1e-02 5.3e-04 1.31e+00 2.813786925e+00 2.733160810e+00 1.9e-05 0.16
10 1.8e-05 8.1e-03 7.4e-05 1.10e+00 3.415192712e+00 3.396684682e+00 4.9e-06 0.16
11 2.4e-06 1.1e-03 3.6e-06 1.00e+00 3.601372702e+00 3.599101447e+00 6.4e-07 0.16
12 1.2e-06 5.4e-04 2.2e-06 6.78e-01 3.632287139e+00 3.631468563e+00 3.3e-07 0.17
13 4.7e-07 2.1e-04 5.1e-07 5.06e-01 3.675849249e+00 3.675376244e+00 1.3e-07 0.17
14 1.6e-07 6.9e-05 1.3e-07 4.69e-01 3.699900636e+00 3.699850538e+00 4.4e-08 0.17
15 6.9e-08 3.0e-05 4.2e-08 7.35e-01 3.719026353e+00 3.719042541e+00 1.9e-08 0.19
16 2.6e-08 1.3e-05 1.1e-08 9.40e-01 3.726334779e+00 3.726343571e+00 7.8e-09 0.19
17 2.0e-08 8.2e-06 6.0e-09 9.06e-01 3.728347394e+00 3.728354511e+00 5.0e-09 0.19
18 4.9e-09 5.4e-07 1.0e-10 9.74e-01 3.731552938e+00 3.731553707e+00 5.9e-10 0.19
19 4.5e-09 4.7e-07 8.5e-11 1.00e+00 3.731595077e+00 3.731595752e+00 5.2e-10 0.20
20 4.5e-09 4.7e-07 8.5e-11 1.00e+00 3.731595077e+00 3.731595752e+00 5.2e-10 0.20
21 4.5e-09 4.7e-07 8.5e-11 1.00e+00 3.731595077e+00 3.731595752e+00 5.2e-10 0.20
Optimizer terminated. Time: 0.27

Interior-point solution summary
Problem status : PRIMAL_AND_DUAL_FEASIBLE
Solution status : OPTIMAL
Primal. obj: 3.7315950773e+00 nrm: 1e+01 Viol. con: 2e-01 var: 3e-03 barvar: 0e+00 cones: 0e+00
Dual. obj: 3.7315957516e+00 nrm: 2e+03 Viol. con: 0e+00 var: 4e-09 barvar: 1e-06 cones: 0e+00
Optimizer summary
Optimizer - time: 0.27
Interior-point - iterations : 22 time: 0.22
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: Solved
Optimal value (cvx_optval): +3.8316

when ratio=100

Calling Mosek 9.1.9: 145 variables, 49 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 © MOSEK ApS, Denmark. WWW: mosek.com
Platform: Windows/64-X86

MOSEK warning 710: #1 (nearly) zero elements are specified in sparse col ‘’ (12) of matrix ‘A’.
MOSEK warning 710: #2 (nearly) zero elements are specified in sparse col ‘’ (19) of matrix ‘A’.
Problem
Name :
Objective sense : min
Type : CONIC (conic optimization problem)
Constraints : 49
Cones : 1
Scalar variables : 45
Matrix variables : 5
Integer variables : 0

Optimizer started.
Presolve started.
Linear dependency checker started.
Linear dependency checker terminated.
Eliminator started.
Freed constraints in eliminator : 1
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.03
Problem
Name :
Objective sense : min
Type : CONIC (conic optimization problem)
Constraints : 49
Cones : 1
Scalar variables : 45
Matrix variables : 5
Integer variables : 0

Optimizer - threads : 16
Optimizer - solved problem : the primal
Optimizer - Constraints : 47
Optimizer - Cones : 2
Optimizer - Scalar variables : 28 conic : 24
Optimizer - Semi-definite variables: 5 scalarized : 222
Factor - setup time : 0.01 dense det. time : 0.00
Factor - ML order time : 0.00 GP order time : 0.00
Factor - nonzeros before factor : 1128 after factor : 1128
Factor - dense dim. : 0 flops : 2.61e+05
ITE PFEAS DFEAS GFEAS PRSTATUS POBJ DOBJ MU TIME
0 3.9e+00 2.6e+04 1.2e+03 0.00e+00 1.199903036e+03 0.000000000e+00 1.0e+00 0.05
1 7.4e-01 4.9e+03 5.2e+02 -1.00e+00 1.198997358e+03 3.917241353e+00 1.9e-01 0.13
2 2.8e-01 1.9e+03 3.2e+02 -9.99e-01 1.190059195e+03 4.627082901e+00 7.1e-02 0.13
3 3.5e-02 2.4e+02 1.1e+02 -9.97e-01 1.099523192e+03 2.035577131e+01 9.0e-03 0.13
4 6.1e-03 4.1e+01 4.6e+01 -9.79e-01 5.592073545e+02 1.976125793e+01 1.6e-03 0.13
5 1.1e-03 7.4e+00 1.6e+01 -8.77e-01 -1.371621674e+03 1.429603470e+01 2.8e-04 0.14
6 2.7e-04 1.8e+00 3.7e+00 -3.08e-01 -1.644405579e+03 3.328657646e+00 6.9e-05 0.14
7 1.2e-04 8.3e-01 4.8e-01 1.31e+00 -3.477232630e+01 1.365629712e+00 3.2e-05 0.14
8 5.5e-05 3.7e-01 7.6e-02 2.76e+00 3.215871481e+00 5.954807637e-01 1.4e-05 0.14
9 3.1e-05 2.0e-01 2.5e-02 2.18e+00 1.691417942e+00 4.726386419e-01 7.8e-06 0.14
10 5.7e-06 3.8e-02 1.8e-03 1.36e+00 7.061266809e-01 5.034315897e-01 1.5e-06 0.16
11 7.6e-07 5.0e-03 7.2e-05 1.10e+00 1.744059842e+00 1.678276595e+00 1.9e-07 0.16
12 2.3e-07 1.6e-03 1.2e-05 1.11e+00 2.933777626e+00 2.913077503e+00 6.1e-08 0.16
13 5.0e-08 2.1e-04 6.1e-07 9.96e-01 3.280659533e+00 3.278388602e+00 9.0e-09 0.16
14 3.4e-08 7.8e-05 1.5e-07 9.37e-01 3.336679859e+00 3.335866517e+00 3.5e-09 0.16
15 3.4e-08 7.8e-05 1.5e-07 9.71e-01 3.336679859e+00 3.335866517e+00 3.5e-09 0.17
16 3.4e-08 7.8e-05 1.5e-07 1.07e+00 3.336679859e+00 3.335866517e+00 3.5e-09 0.17
Optimizer terminated. Time: 0.20

Interior-point solution summary
Problem status : UNKNOWN
Solution status : UNKNOWN
Primal. obj: 3.3366798592e+00 nrm: 1e+01 Viol. con: 4e+01 var: 1e+00 barvar: 0e+00 cones: 0e+00
Dual. obj: 3.3358665175e+00 nrm: 1e+03 Viol. con: 0e+00 var: 2e-07 barvar: 6e-04 cones: 0e+00
Optimizer summary
Optimizer - time: 0.20
Interior-point - iterations : 17 time: 0.17
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

I would try to upgrade to the latest Mosek version 9.3.

i think this is not because the version of mosek.

@Erling is the CEO and Chief Scientist of Mosek. I would defer to his judgment on Mosek. So at least try upgrading Mosek. Its failure on the second problem might be a close call, for which the latest Mosek 9.3 (more than 2 years additional development vs the version you used) might do better.

If you do install Mosek 9.3.x, I would rename or remove the existing mosek directory under CVX, and reinstall CVX., Or if you don’t do that, do cvx_solver and then set the mosek 9.3 as the version you want using the long name for it shown in cvx_solver. Otherwise, CVX might still use Mosek 9.1.

ok i will update mosek