Hi! There is a problem in my simulation when using cvx. My purpose is to estimate the matrix S and the sign of BS is equal to Z. But the S calculated by cvx results in BS ==H, i.e, B*S-H == 0. It is not subject to my aim. And I has also tried to change the solvers to sedumi or mosek. However, It doesn’t work.
The following is the problem model:
And the matlab code is showd as
indent preformatted text by 4 spaces
% Lasso quesiton in MMV model
function [X,idx] = Cvx_CS_Th_M(Z,B,K,H)
[~,N] = size(B);
L = size(Z,2);
cvx_begin
variable S(N,L) complex
minimize sum(norms(S,2,2))
subject to
real(B*S-H).*real(Z)>=0;
imag(B*S-H).*imag(Z)>=0;
cvx_end
row_norm = sum(abs(X).^2,2);
[~,idx_vec]=sort(row_norm,'descend');
idx = idx_vec(1:K);
end
Calling SDPT3 4.0: 3456 variables, 432 equality constraints
num. of constraints = 432
dim. of socp var = 3024, num. of socp blk = 432
dim. of linear var = 432
SDPT3: Infeasible path-following algorithms
version predcorr gam expon scale_data
NT 1 0.000 1 0
it pstep dstep pinfeas dinfeas gap prim-obj dual-obj cputime
0|0.000|0.000|4.5e+01|2.8e+01|3.0e+05| 1.142965e+03 0.000000e+00| 0:0:00| chol 2 2
1|1.000|0.508|9.6e-05|1.4e+01|1.6e+05| 3.148374e+03 -3.893701e+00| 0:0:00| chol 1 1
2|1.000|0.977|3.7e-05|4.0e-01|7.1e+03| 2.673668e+03 -5.250377e-01| 0:0:00| chol 1 1
3|0.712|0.874|1.5e-05|7.5e-02|1.7e+03| 1.085809e+03 -6.048111e-01| 0:0:01| chol 1 1
4|0.821|0.787|3.9e-06|2.2e-02|5.2e+02| 4.132097e+02 -8.975130e-01| 0:0:01| chol 1 1
5|0.937|1.000|2.8e-07|8.1e-04|6.8e+01| 6.581068e+01 -8.666917e-01| 0:0:01| chol 1 1
6|0.596|0.531|1.1e-07|4.2e-04|3.2e+01| 3.207541e+01 -6.265875e-02| 0:0:01| chol 1 1
7|0.399|0.570|6.9e-08|1.9e-04|2.2e+01| 2.297170e+01 1.525467e+00| 0:0:01| chol 1 1
8|0.642|0.322|2.5e-08|1.3e-04|1.0e+01| 1.243864e+01 2.164350e+00| 0:0:01| chol 1 1
9|0.288|0.454|1.8e-08|6.9e-05|7.7e+00| 1.025852e+01 2.550344e+00| 0:0:02| chol 1 1
10|0.456|0.445|9.6e-09|3.8e-05|4.7e+00| 7.407481e+00 2.716724e+00| 0:0:02| chol 1 1
11|0.687|0.479|3.0e-09|2.0e-05|2.1e+00| 5.043203e+00 2.905026e+00| 0:0:02| chol 1 1
12|0.605|0.649|1.2e-09|7.0e-06|1.0e+00| 3.957578e+00 2.945240e+00| 0:0:02| chol 1 1
13|0.891|0.920|1.3e-10|5.6e-07|1.7e-01| 3.161937e+00 2.995562e+00| 0:0:02| chol 1 1
14|0.946|0.977|6.9e-12|1.3e-08|9.0e-03| 3.008811e+00 2.999851e+00| 0:0:02| chol 1 1
15|0.976|0.989|1.8e-13|1.4e-10|2.2e-04| 3.000213e+00 2.999996e+00| 0:0:03| chol 2 2
16|0.923|1.000|1.2e-11|1.0e-12|2.4e-05| 3.000023e+00 3.000000e+00| 0:0:03| chol 3 4
17|0.898|0.996|1.6e-10|1.5e-12|3.3e-06| 3.000003e+00 3.000000e+00| 0:0:03| chol 14 27
18|0.525|0.980|4.7e-10|2.3e-12|1.8e-06| 3.000002e+00 3.000000e+00| 0:0:03| chol
linsysolve: Schur complement matrix not positive definite
switch to LU factor. lu 30 30
19|0.475|0.997|1.1e-08|3.4e-12|1.1e-06| 3.000001e+00 3.000000e+00| 0:0:03| lu 11 30
20|0.379|1.000|7.2e-08|5.1e-12|7.0e-07| 3.000001e+00 3.000000e+00| 0:0:04| lu 11 30
21|0.287|0.837|8.3e-08|8.4e-12|5.1e-07| 3.000000e+00 3.000000e+00| 0:0:04| lu 11 ^13
22|0.291|0.645|8.5e-08|1.4e-11|3.8e-07| 3.000000e+00 3.000000e+00| 0:0:04| lu 11 30
23|0.120|0.107|1.1e-07|3.0e-11|3.3e-07| 3.000000e+00 3.000000e+00| 0:0:04| lu 11 ^23
24|0.073|0.094|9.6e-08|5.3e-11|3.1e-07| 3.000000e+00 3.000000e+00| 0:0:04|
stop: progress is too slow
lack of progress in infeas
number of iterations = 24
primal objective value = 3.00000035e+00
dual objective value = 3.00000000e+00
gap := trace(XZ) = 5.10e-07
relative gap = 7.29e-08
actual relative gap = 4.98e-08
rel. primal infeas (scaled problem) = 8.26e-08
rel. dual " " " = 8.42e-12
rel. primal infeas (unscaled problem) = 0.00e+00
rel. dual " " " = 0.00e+00
norm(X), norm(y), norm(Z) = 2.4e+00, 1.6e+00, 2.5e+01
norm(A), norm(b), norm© = 4.3e+02, 1.4e+01, 2.2e+01
Total CPU time (secs) = 4.38
CPU time per iteration = 0.18
termination code = -5
DIMACS: 4.0e-07 0.0e+00 9.2e-11 0.0e+00 5.0e-08 7.3e-08
Status: Inaccurate/Solved
Optimal value (cvx_optval): +3