Value of the dual objective

Dear cvx users,
Could you tell me how can I get value of the dual objective in cvx under MATLAB? That is, is there anything like cvx_optval_dual?
Thanks a lot!

I believe CVX relies for the most part on primal-dual solvers, which try to reduce the duality gap to zero, within tolerance. If they succeed in doing so at a finite value, optimality is declared, and the optimal dual objective = optimal primal objective.

I’m not really sure what happens when a constraint qualification, such as Slater, is not satisfied, in which case the duality gap may not be zero at optimality. I think that would be a case in which CVX/solver would not declare optimality. Perhaps many (most?) such cases in which Slater condition is not satisfied for a DCP might still be absorbable within feasibility tolerance slop and wind up with zero duality gap in numerical practice…

If any linearly constrained problems, such as LP or convex QP are ever solved by another method, such as Simplex, then duality gap is zero due to Linear Constraint Qualification. So again, optimal dual objective value = optimal primal objective value.

Someone more knowledgeable than me in these matters, can refine or expand my answer as necessary.

1 Like