# How to express the following Rate expression using rel_entr of CVX?

After carefully reading the previous threads related to rel_entr function of cvx. We have the following transformations in hand:

``````1) rel_entr(x,y)=x.*log(x/y)
2) -rel_entr( x, x+y)= x*log( 1+y/x )
3)  x*log(1+y/(x+y)) = -2*rel_entr(x+y,x+2*y) -    rel_entr(x+2*y,x+y)
4)  x*log(1+x/y)=rel_entr(x+y,y) +rel_entr(y,x+y)
``````

Question: I want to know that how can we express the following expression using rel_entr function?

`x*log(1+y1/x+y2)`,
where it is confirmed that this is a concave function for x>0. y1 and y2 are constant values. Please note that y1 and y2 are not equal.

It will be really appreciated if someone can address the above notes problem. Thanks!

Moderator edit
5) `log(1 + 1/x) = rel_entr(x,x+1) + rel_entr(x+1,x)`

Presuming there is not a missing parenthesis in your post:

``````x*log(1+y1/x+y2) =
x*(log(1+(y1/(1+y2))/x) + log(1+y2)) =
-rel_entr(x,x+y1/(1+y2)) + x*log(1+y2)``````

Dear Mark! Many thanks for your kind response. I think there is some confusion due to parenthesis. Let me recast my fucntion again as follows:

`x*log(1+(y1/(x+y2)))`

Your response will be really appreciated. Many Thanks!

It looks like you already found most of my relevant posts.

refers to

and then finished off with

So essentially the same techniques can be used here.

`x*log(1+y1/(x+y2)) = (x+y2)*log(1+y1/(x+y2)) - y2*log(1+y1/(x+y2)) = -rel_entr(x+y2,x+y2+y1) - y2*(rel_entr((x+y2)/y1,(x+y2)/y1+1)+rel_entr((x+y2)/y1+1,(x+y2)/y1))`

Dear Mark Sir! Many thanks for your kind support.