Minimize log(1+1/x) where 0<x<inf



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


log_2 (1+\frac{\alpha}{b^H X b +1})+ \lambda. tr(X)
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.

variable X(N,N) complex semidefinite
expression summation
trace(X) )

But I obtain the following error

Error using cvx/log (line 64)
Disciplined convex programming error:
Illegal operation: log( {convex} ).

The authors mentioned that they used CVX to solve this problem. So, I am sure it can be implemented using CVX. Can someone help?


(Mark L. Stone) #2

Can you reformulate in terms of minimizing

-log(concave function)

for some concave function? Note that to follow CVX’s rules, the argument of log must be a concave function. Then the log will be a concave function.

Note that your title question is easily handled as


Thank you Mark for your quick response.

I tried a lot to formulate it in the form of -log (concave fn.) but unfortunately I couldn’t.

The authors must have found some work around to make CVX accept the formulation and that’s what I am trying to figure out.

Sorry for the title. It should have been log (1+1/x). I have updated that.

(Dinh) #4

May be you should try to minimize -log(x/(1+x))

(Mark L. Stone) #5

@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.


Thanks again Mark for your reply.

Actually, I emailed the first author but he did not answer. Maybe I will email the second author.


(Michael C. Grant) #7

You should reach out to the authors to find out how they formulated their problem in CVX.

(Michael C. Grant) #8

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.

(Dinh) #9

Sorry for the late answer. May be you can rewrite your problem in the following form

minimize y
such that log(1 + 1/x) \leq y

which is equivalent to

minimize y
such that exp(-y) + exp(-y-log(x)) \leq 1

The following code is working at least

variables x y
minimize( y )
exp(-y) + exp(-y - log(x) ) <= 1

Log{convex} log(1+1/(1+x))