# How to transform a*x/(b*x-c) (convex function) in the CVX?

I have verify that ax_k /( b - cx_k) is a convex function, where a,b,c are constants. It is used in the constraint function as follows:
\sum_{k=1}^{K} ax_k /( b - cx_k) <=E, where E is a constant.
I have tried to transform it into a /( b/x_k - c), but it doesn’t work.
How can CVX identify this convex function?

1 Like

How did you verify is is convex? It is not.

Edit: Yes, what @Michal_Adamaszek answered below is valid, but requires the argument of inv_pos to be nonnegative in order to be equivalent to the problem as originally stated. I.e., the function is only convex on a limited domain. That is why I said it was non-convex.

Transform your function to the form p+\frac{f}{gx+h} that is p+f*inv_pos(g*x+h). https://docs.mosek.com/modeling-cookbook/cqo.html#rational-functions

1 Like

In my problem, the values of a,b and c make it a convex function. I have understood your kindly reply, and it is really helpful! Thank you for your patience!