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.
How to write f(x,y1,y2,p,q) = x^4 / ((y1 + y2) * p * log(1+q)) in CVX
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.