Can anyone help me on this constraint? Many thanks!


The objective function and constraint (C1) are smooth. I noticed the constraint (C2) is non-convex, and some methods are tried to transform or relax (C2) to let the whole optimization solvable in CVX.

But limited by my knowledge, I have not found any feasible solution…Can anyone give me any guidance? Many thanks for your kind help!

(Mark L. Stone) #2

C2 is convex for x <= 2 and concave for x >= 2. <Edit: see my post below. This is backwards because I copied down C2 incorrectly>

I presume there is a typo in C2: 1 < x < 1, so I don’t know what you really want C1 to be. Even if the upper bound on x in C1 is supposed to be <= 2, because C2 is not convex over its entire natural domain, I don’t think there is hope of expressing it in CVX even if constrained to be in its convex region.

Please read the FAQ Why isn’t CVX accepting my model? READ THIS FIRST! . It is incumbent on you to formulate a convex problem if you wish to use CVX. We can’t tell you how or whether to change or relax a constraint to be convex - you’re the one with the problem, so you need to figure out what you want to or are willing to solve.


Dear Mark, many thanks for your kind reply!

Indeed (C1) should be 0<x<1, my mistake. As you said, C2 is convex when x<=2. Then would it be possible add a new constraint “x<=2” into the optimization problem, and use CVX to solve it? I mean even C2 is not convex over its entire domain, can we still use CVX in a segment, in which the constraint becomes convex or concave?

(Mark L. Stone) #4

You need to comply with CVX’s DCP rules. I don’t see how to do that in this case.


Dear Mark, thanks all the same. Best wishes!

(Mark L. Stone) #6

Whoops, my assessment was for x*(1-exp(-x)) <= 1 , not x*(1+exp(-x)) <= 1.

So it turns out that C2 is concave for x <= 2 and convex for x >= 2. That means that if C1 is 1 <= x <= 2 , then C2 is non-convex in the domain restricted by C1. Therefore the problem is non-convex, period, and it can not be entered into CVX.

Actually, C2 is only feasible for x <= 0.65905, so if the lower bound of C1 is not at least that low, the problem isn’t even feasible, quite apart from whether it can be entered into CVX.


:joy: anyway the problem is infeasible for CVX in both two cases. Many thanks for your kind assistance. I will think about another method to formulate the problem.