I am regenerating the results of a paper published in IEEE transactions in wireless communications where they used CVX to solve a convex optimization problem. They are minimizing the following function
Minimize
log_2 (1+\frac{\alpha}{b^H X b +1})+ \lambda. tr(X)
S.T.:
X is a postive semi-definite matrix (covariance matrix).
where \alpha and \lambda are constant scalars. and b is a constant vector.
The above problem is convex. Since X is positive semi-definite, therefore b^H X b > 0.
I tried many ways to formulate this problem using CVX. However, none of them succeeded. e.g.
@Marc , I don’t see you to get -log(x/(1+x)) accepted by CVX. Specifically, x/(1+x) is indeed concave for x > 0, but I don’t see how to get it accepted.
@mohamedmarzban ,log(1+1/x) is convex for x > 0, but I don’'t know how it can be entered in CVX, and suspect it can not. Perhaps you can email the article authors and inquire how they used CVX.
Oops, sorry, I didn’t scroll down enough. I see you’ve already reached out to them.
Frankly, while I greatly appreciate all of the citations for CVX in academic papers, I find that this kind of situation happens quite often—authors do not publish the models they use, so there’s no way to reproduce their work.
However, in Writing x*log(1+x/y) ,the wizard of conic reformulation,@Michal_Adamaszek
produced the result x*log(1+x/y) = rel_entr(x+y,y) + rel_entr(y,x+y)
Setting x = 1, then Interchanging the roles of x and y so as to match the problem in this thread, results in log(1 + 1/x) = rel_entr(x,x+1) + rel_entr(x+1,x)
The RHS is accepted by CVX, and as a bonus, is already in a form needed by CVXQUAD. It executes without error.
log(1+1/x) is convex. Therefore, using one of the reformulations shown in the preceding posts, it can be minimized.in CVX. But it can’t be maximized in CVX, because that would be a non-convex optimization problem.