Thanks in advance for your help and support. I know that this is common topic, posted by many before me. I have read their problems. However, I proved, and it is known, that the following is convex in r .t=(1+0.5*r*λ*v)/(r-λ) [this is a queuing delay equation]
I’ve expressed it in CVX as t>=(1+0.5*r*λ*v)*inv_pos(r-λ). However, an error appears as shown in the title. Please, is there a way to express it to avoid this error (real affine*convex)?
Well, now that you say t is a variable, what counts is joint convexity in r and t, not in r alone.
You haven’t shown us the full context or problem. Perhaps linear fractional or quasiconvex optimization techniques presented in Convex Optimization – Boyd and Vandenberghe can help you use CVX, depending on what your problem actually is. Or perhaps you’re headed for the dreaded nonconvex categorization.
minimize t
s.t.
t>=(1+0.5*r*λ*v)*inv_pos(r-λ)
t<=tmax
The variables are t and r. One may suggest to express it as:
minimize ((1+0.5*r*λ*v)*inv_pos(r-λ))
s.t
(1+0.5*r*λ*v)*inv_pos(r-λ)<=tmax
But putting the expression in the objective function prevent me from manipulating it. What do you think?
Transform it to an LP per section 4.3.2 Linear-fractional programming in Convex Optimization – Boyd and Vandenberghe http://web.stanford.edu/~boyd/cvxbook/
.I don’t think there’s much point to including the t <= tmax constraint, so just leave it out… If the optimal t <= tmax, declare victory, otherwise, call it infeasible, or whatever you feel like doing.