Valid Posynomial Expression


(Menna Khaled) #1

Please help!
I’m getting the error "Invalid constraint: {log-concave} < {real constant}"
so I printed the output and found that the it became concave when it’s the product of posynomials. However in this link “http://cvxr.com/cvx/doc/gp.html” it’s stated that the product of two posynomials is a valid posynomial expression.

  1. So what exactly do you mean by stating it’s a valid posynomial expression ?
    2)Do you have a proposition concerning how can I solve this problem ?
    Also can’t I just access the output at each iteration in cvx instead of having only the size and type of the output printed? as it’d be much easier to debug.

Your help is really greatly appreciated.


(Mark L. Stone) #2

It looks like you are raising a posynomial to the negative 1 power (i.e., dividing by it), which is not allowed.

However, can you multiply out your inequality and thereby avoid raising to the negative 1 power? It looks to me like you can.


(Menna Khaled) #3

Thanks for your help !
it became convex, however the error is still there, it just became “Invalid constraint: {log-convex} < {real constant}” instead.
When I googled it, I found this comment of yours:


but I don’t have an “equal sign” in the constraint. So I’m still stuck.

Please help !


(Mark L. Stone) #4

Are you able to put your constraint in one of these forms?

A less-than inequality constraint <= where the left side is a generalized posynomial and the right side is a monomial.

A greater-than inequality constraint >= where the left side is a monomial and the right side is a generalized posynomial.


(Menna Khaled) #5

Unfortunately I can’t think of a way to do this, I need this posynomial to be greater than a minimum value. So, since raising the posynomial to the power (-1) will result in an error, I can’t think of another way in which I can reverse the inequality sign


(Mark L. Stone) #6

It looked to me like your inequality should be going the “correct” direction to be convex (valid).

If the inequality is really going in the wrong direction, then the problem is not convex and you will have to find some other way to solve it.


(Menna Khaled) #7

OK thanks for your help, really appreciated