Log Determinant base

Hi Dear Friends,

I am using the " log_det " built-in function of CVX, but I have noticed it uses “e” as the base of the logarithm, is there anyway to change this base?

Thank you a lot.

\log_b\text{det}(X)=\frac{\text{logdet}(X)}{\log(b)}. That is, if you divide log_det(X) by the positive constant log(b), you’re done.

Bien is absolutely right. However, let me interject something else: if you can reformulate your problem to avoid the use of log_det, you should. The reason is that anything involving logarithms requires CVX’s successive approximation heuristic, which is slower and less reliable.

So, for example, if your objective function is


then it is exactly equivalent to change the objective to this:


and then, when the optimization is over, simply compute log_det(X) by hand to get the objective value for the original problem (or compute n*log(cvx_optval)).

Of course, there are times when you simply cannot make the substitution. For instance,


cannot be rewritten in a way that avoids the logarithm.

Good to know.