Hi,

I am trying to minimize

log(x/y) where

x = trace(P*M); y = trace(P*N);

where M, N are symmetric matrices and P is positive definite and x>y.

P is given by

P = AQA’ + AUB’ + BUA’ + BYB’;

where P*Y = U^TU; M = [A(1,1)^2 A(1,1)A(1,2);A(1,1)A(1,2) A(1,2)^2];

N = [A(1,1)^2 0;0 0];

U is the variable.

I have tried with minimizing xlog(x/y) and it minimizes the log(x/y) as well.

so my questions are

- Is minimizing xlog(x/y) approximates minimizing log(x/y) for x>y>0?
- Is there a way to approximate a convex function of log(x/y) using some slack variable?

I believe you can enter the problem in the image almost “as is”, using CVX’s `rel_entr`

function.

As for solving it, use Mosek if available to you, otherwise follow the instructions 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

Yes Mark,

The image is what I approximated for log(P_1/P_2). But my question again is minimizing log(P_1/P_2) equal to or approximate to minimizing the rel_entr in the image.

Thanks for the quick response.

It’s different.

I presumed the problem in the image is what you want to solve, and that is a convex optimization problem which can easily be entered in CVX. `log(P_1/P_2)`

in which `P1`

and `P2`

are both optimization variables, is neither convex nor concave, and can’t be entered as such in CVX.

1 Like