My code is as follows. (In my real code, the indentation is observed well, but is not shown here.)

cvx_begin

variable x nonnegative

maximize( (44+41x-3x*x) * inv_pos(x+4))

subject to

x <= 10

cvx_end

Actually I want to use CVX to solve the following problem:

maximize w1 * log(1 + P1/n1) + w2 * log(1 + P2 / (beta*P1 + n2))

subject to P1+P2 <= Pmax ; P1, P2 >= 0.

where w1, w2, beta, n1, n2, Pmax are all given parameters and nonnegative.

I tried to solve the above problem, but I got some errors while using CVX.

Thus, I tried to solve a simplified problem of the above problem, by setting w1 = w2 = n1 = n2 = 1, beta = 0.25, and Pmax = 10, and by changing the first constraint form inequality to equality constraint.

The simplified problem is as follows.

maximize log(1 + x) + log(1 + (40-4x) / (x+4))

subject to 0 <= x <= 10

I tried to solve the above problem using the following code, but I got some errors again.

Using the fact that log is concave and increasing, I changed the problem as follows.

maximize (1+x) * (44-3x) / (x+4)

subject to 0 <= x <=10

The code is as follows.

cvx_begin

variable x

maximize( log(1 + x) * log(1+(10-x)/(0.25*x+1)) )

subject to

0 <= x <= 10

cvx_end

The error message is as follows.

Please note that when

f = (1+x) * (44-3x) / (x+4),

its second derivative is given as

fââ(x) = -336 / (x+4)^3.

Thus, for nonnegative x, fââ(x) is always negative, so f(x) is concave and max f(x) is a convex problem.