# Expressing an exponential objective

I have an exponential term in my objective function
(a- \frac{b}{x}) \exp\left(\frac{c}{a- \frac{b}{x}}\right), where a,b,c are constant.
For this expression I know that I should replace it with a variable z and a constaint
\{c,(a - b.*\text{inv_pos}(x)),z\} == \text{exponential}(1). Then x and z be my variables.

Error using cvxprob/newcnstr (line 192)
Disciplined convex programming error:
Invalid constraint: {concave} == {real affine}

Error in cvxprob/newcnstr (line 72)
newcnstr( prob, x{k}, y{k}, op );

Error in == (line 3)
b = newcnstr( evalin( ‘caller’, ‘cvx_problem’, ‘[]’ ), x, y, ‘==’ );

What you “know” is wrong. The arguments in the exponential cone constraint must be affine. Aside from that, your constraint would still be wrong. I’ll let you look into rearrangements to see whether it can be brought into standard form. Indeed whether this is even convex or concave.

Thank you for the suggestion. I tried to look at other transformations according to this document https://docs.mosek.com/modeling-cookbook/expo.html#equation-eq-expo-expcone-simple but I still can not find a way to rearrange it. I am not sure if the problem is in transforming the fractional function inside the exponential or not. I also have another term x^2 + (a- \frac{b}{x}) \exp\left(\frac{c}{a- \frac{b}{x}}\right) in the objective. Can anyone help please?

The first step is for you to prove convexity (or not). Perhaps when c >= 0, it’s convex for a - b/x >= 0 and concave for a - b/x <= 0 ? I 'll let you look into that.

Edit: Per my next post, my “Perhaps” doesn’t hold.

all constants are positive and the term a-b/x > 0. I have the proof for the convexity. Acually I solving the dual problem for this problem. I just need to know how to represent the exponential term in CVX

I have the proof for the convexity

a=2, b=1, c=1. At x=2, the 2nd derivative of (a-b/x)*exp(c/(a-b/x)) is -0.12624...

Meanwhile, at x=1, the 2nd derivative is positive. So the expression is neither convex nor concave, even when restricted to a-b/x >= 0.

Thanks for your help. I wrote my question about my research problem in a simplified from in the forum as the technical details are complicated. The convexity of the problem is proved here [https://ieeexplore.ieee.org/ielx7/4267003/4357939/9393794/supp1-3064919.pdf?arnumber=9393794]. Actually, the original problem is not directly convex(https://ieeexplore.ieee.org/ielx7/4267003/4357939/9393794/supp1-3064919.pdf?arnumber=9393794)[https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=9393794] the authors did some transformation. Thanks again for your help. I will try to figure out what is wrong again.

Why don’t you show us the transformed problem which supposedly is convex, along with the convexity proof?

The original problem

p_1 = b_1 \exp(a_1r_2)[\exp(a_1r_1) -1]
p_2 = b_2 [\exp(a_1r_2) -1]

our objective is

\min_{p_1,p_2,f_1,f_2} p_1 \frac{d_1}{r_1} + p_2 \frac{d_2}{r_2}
subject to
C1: \frac{d_1}{r_1} + \frac{d_1c_1}{f_1} \leq \tau
C_2: \frac{d_2}{r_2} + \frac{d_2c_2}{f_2} \leq \tau
0< p_1, p_2 \leq P
f_1 + f_2 \leq F
f_1 > 0 ,f_2 >0

all constants a_1,a_2,b_1,b_2,c_1,c_2,d_1,d_2 are positive and b1 \leq b2.

The original problem is non-convex and has a coupling variable and a coupling constraint. However, the constraints C1 and C2 holds with equality. Then, the problem can be transformed to the following problem as a function of f_1 and f_2 only.

r_1 = \frac{d_1f_1}{\tau f_1 - d_1c_1}
r_2 = \frac{d_2f_2}{\tau f_2 - d_2c_2}

our objective is

\min_{f_1,f_2} p_1 \frac{d_1}{r_1} + p_2 \frac{d_2}{r_2}
subject to
0< p_1, p_2 \leq P
f_1 + f_2 \leq F
f_1 > 0 ,f_2 >0

The proof for the convexity of this problem can be found in detail herehttps://ieeexplore.ieee.org/ielx7/4267003/4357939/9393794/supp1-3064919.pdf?arnumber=9393794 . Since the problem is not directly convex I need to use the dual decomposition and subgradient method to solve the dual problem. In my CVX program, I am trying to write the term \frac{1}{r_2} \exp(ar_2) where r_2 = \frac{d_2f_2}{\tau f_2 - d_2c_2} in a correct form that can be accepted by CVX. I am doing some related work to this work so I am trying to do their programming. In my new formulation, I have one more additional term equal to f_2^2 so I am not sure about the transformation of the fractional term. Thanks for your help in advance. I appreciate.

cvx_begin
variables F2 Z2
minimize ((d2.*b2.*Z2  - ((b2.*tau.*F2 - b2.*d2.*c2)./F2) + lambda.*F2)
F2 > 0
{} == expontential{1}

cvx_end
g1 = cvx_optval;