I presume the solver failed, in some way, but you don’t show us the CVX and solver output, so I don’t know. <Edit: I no longer believe the sentence in this paragraph to be true - see my next post. But the remainder of this post is not withdrawn.>
I don’t know what var_u
and var_e
supposed to do, but having a number such as 1e-11.5
may cause numerical difficulties or unreliability in the solver.
Why are you multiplying both sides of a constraint by 1e6
? That is not a good thing to do.
I don’t know why you have the constraint (X(n,n))>=0;
, but that only constrains one element of X`, namely, the n,n element of it. it does not, for instance, constrain all elements of the diagonal. And it is redundant because the semidefinite constraint forces all diagonal elements to be nonnegative.
Also, the strict inequality constraints will only be enforced as >=
. If you need strict positivity, you’ll need to make the RHS something like 1e-5. Actually, your constraints on ep
and ep2
do nothing, because you set them to double precision values and did not declare them as variables, so those “constraints” will be evaluated by MATLAB (not CVX) as true, and do nothing in your optimization problem.
There’s probably plenty more wrong with your formulation ( i haven’t checked), so hopefully you will reexamine everything.
If you can use CvX 2.2 with Mosek 9.x as solver, use that. Otherwise, follow the advice at CVXQUAD: How to use CVXQUAD's Pade Approximant instead of CVX's unreliable Successive Approximation for GP mode, log, exp, entr, rel_entr, kl_div, log_det, det_rootn, exponential cone. CVXQUAD's Quantum (Matrix) Entropy & Matrix Log related functions