Cvxquad with sum(rel_entr(...)) seems to give wrong result

@mcg This does appear to be a bug somewhere. Thanks for reporting it. I have no idea whether the bug is in CVX or CVXQUAD 9alkthough, CVXQUAD;s Pade approximant is not invoked). The original version is producing a much better “optimal” objective value than what you call the “CVXQUAD” version. Both solutions satisfy the constraints, but the “CVXQUAD” version has no active constraints, and its solution can clearly seen to be non-optimal even locally, But actually, the CVXQUAD Pade approximant is not being invoked for the “CVXQUAD” version - I don’t know why, and it is still using the Successive Approximation method, at least on my machine (I don;t know why)…

For the random problem instance I tried, the “CVXQUAD”(but not really) version had optimal p’ of
0.0556 0.0500 0.3569 0.0496 0.0717 0.4646 0.1627 0.0829 0.0473 0.0470,
producing objective value (I used the original maximization which has a negative sign in font of rel_entr) of 0.4432. That is the same value as obtained using that p on the objective function from the original version. I.e., sum(-rel_entr(1,1+p.*lambda)) = sum_log(1+p.*lambda) = 0.4432 … So it appears that these functions are being correctly evaluated when provided with numeric (not CVX expression) arguments. I don’t know whether they are being correctly evaluated with CVX expression arguments.

I leave you to try out alternative formulations for use in CVXQUAD, as described in mcg’s post at Solve optimization problems of exp function .Please let us know what happens when you try these other ways of dealing with the log.