Hi Mark, how to express log(trace(AX)+b) in CVX. I am expression it directly in cvx, but not sure whether it violet the cvx rule.
As I know, if you express it directly in cvx, the cvx may give some warings. It doesn’t mean you are wrong.
You can use the ‘rel_entr’ function.
You can check this:
so, I should use like this rel_entr(trace(A*X)+b) ? I am not sure.
Nice, thank you very much .
You can enter it in CVX directly as
If you, use CVX 2.2 and have available Mosek as solver, this suffices. In such case, you can use
-rel_entr(1,trace(A*X)+b) instead of
log(trace(A*X)+b), but it is just an unnecessary reduction in the understandability of the code.
If you do not have Mosek available as solver, then you should use
-rel_entr(1,trace(A*X)+b) and install CVXQUAD’s
exponential.m replacement as described in the link provided by @NWPU_Xiu
Thank you very much Mark.