Maybe you should try CVX 3.0beta with ECOS solver. That avoids use of the successive approximation method to deal with 2^(L_um(n,1)
and 2^(L_mu(n,1)
. I was able to run the original problem in this configuration, and get (I don;t know how reliable these results are)
60 -1.363e+03 -1.363e+03 +2e-10 5e-03 4e-08 7e-03 2e-13 0.0007 9e-01 1 1 1 | 0 0
61 -1.363e+03Slacks/multipliers leaving the cone, recovering best iterate (44) and stopping.
NUMERICAL PROBLEMS (reached feastol=1.5e-03, reltol=1.3e-13, abstol=1.7e-10).------------------------------------------------------------
Status: Solved
Optimal value (cvx_optval): -0.0784041
although I’m not sure I ran the problem correctly. It looks like you made use of a new capability added in MATLAB 2016A https://blogs.mathworks.com/loren/2016/10/24/matlab-arithmetic-expands-in-r2016b/ which essentially automatically inserts repmat in certain places where dimensions were incompatible per the old MATLAB rules. I am using MATLAB 2014A, so I had to manually insert some repmats to get things compatible per that version of MATLAB.
I think your code is not very well scaled, and that may be contributing to numerical difficulties. I don;t have specific recommendations on reformulation, but large magnitude positive and negative exponents, as you have now are probably not a good thing.
Also see the post by Michal_Adamaszek in Does cvx solve nonlinear convex problems? . But I don’t know what the plans are for support of this forthcoming MOSEK native exponential cone capability in CVX