How to write f(x,y1,y2,p,q) = x^4 / ((y1 + y2) * p * log(1+q)) in CVX

Hi, I am trying to write a objective function: f(x,y1,y2,p,q) = x^4 / ((y1 + y2) * p * log(1+q)) where x>=0, 0<=y1<=1, 0<=y2<=2, 0<=p<=1, q>=0. I have proved this function should be convex by proving all its principal minors of hessian matrix are larger or equal to 0. Can I use CVX to write this objective function fitting DCP rule?
Thank you.

What are the optimization variables? If all of x,y1,y2,p,q are optimization variables, that is neither convex nor concave. Perhaps your calculations are erroneous.

Edit: @LeoTree See @jackfsuia 's and my posts below for an important “clarification” to this post.

x^4 / ((y1 + y2) * p * log(1+q)) <= z is a convex constraint. It can be reformulated as x^4 <= (y1 + y2) * p * log(1+q)* z, i.e., x <= ((y1 + y2) * p * log(1+q)* z) ^(1/4), which is x<= geo_mean([y1 + y2,p, log(1+q), z]) in CVX terms. Read 4 The power cones — MOSEK Modeling Cookbook 3.3.0 if you are interested in those formulation process.

@jackfsuia Nice reformulation!. I was indeed correct about f. However, raising to the (1/4) power makes it work, as you have shown.

Another hard lesson that “algebraic” convexity is not necessarily invariant to variable changes which preserve the same feasible region.