I am trying to minimize
x = trace(PM); y = trace(PN);
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
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
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.
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
P2 are both optimization variables, is neither convex nor concave, and can’t be entered as such in CVX.