# Why optimal value is 0 in CVXQUAD?

I’m trying to design an algorithm based on majorization minimization (MM) method for DC programming, which iteratively solve the following convex problem.

And the cvx code and output is given as follows.

``````    cvx_solver Mosek;
cvx_begin sdp
variable Q_new(64,64,ue_num,ser_sat_num) hermitian;
expression transmission_power_new(ue_num,ser_sat_num);
expression linear_g(ue_num,ser_sat_num);
expression p2(ue_num,ser_sat_num);
minimize sum(sum(transmission_power_new));
subject to
for c=1:ue_num
for i=1:ser_sat_num
transmission_power_new(c,i)=trace(real(Q_new(:,:,c,i)));
*Q_new(:,:,c,i)*ChannelGain_vector_cell{ser_sat(c,i),c});
Q_new(:,:,c,i)==hermitian_semidefinite(64);
end
demand(c)/bandwidth-sum(p2(c,:))+sum(linear_g(c,:))<=0;
end

cvx_end
``````
``````Interior-point solution summary
Problem status  : PRIMAL_AND_DUAL_FEASIBLE
Solution status : OPTIMAL
Primal.  obj: 0.0000000000e+00    nrm: 1e+02    Viol.  con: 2e-09    var: 0e+00    barvar: 0e+00    cones: 8e-17
Dual.    obj: 7.1516504217e-11    nrm: 6e+01    Viol.  con: 0e+00    var: 6e-23    barvar: 2e-11    cones: 5e-11
Optimizer summary
Optimizer                 -                        time: 0.16
Interior-point          - iterations : 7         time: 0.14
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): +0
``````

But there are problems.

1. The optimal value given by cvx is 0. But when I calculated the objective value with the output matrix `Q_new`, I got a reasonable value. Why?
2. What about the convergence of MM method? My program stopped after one
or two iterations and I think the threshold to stop is set small enough. Is there something wrong with my program? Or some parameters are set improperly?
What should I do to correct my program? I would really appreciate it if someone helped.

What is a “reasonable” value? How did you calculate it? Why is 0 not reasonable?

As for why your overall algorithm does or does not work well, that is out of scope of this forum in the sense that you shouldn’t expect to get help on that. But if someone want to offer any, they can.