CVX cannot solve maximize (X1*inv_pos(1+X2))

CVX cannot solve:

maximize (X1*inv_pos(1+X2))
s.t. convex constraints <= 0

where X1 and X2 are positive variables.
With Hessian Matrix, we find that X1*inv_pos(1+X2) is joint concave with regarding to Y1 and Y2.

Below are the error messages in Matlab:

Error .* (line 173)
Disciplined convex programming error:
Cannot perform the operation: {real affine} .* {convex}

Error * (line 36)
z = feval( oper, x, y );

Error ObjFuc_aim (line 35)
maximize ( -Y1*inv_pos(1+Y2));

Thanks ahead!!!

Your CVX code models
X1/max(1+X2,0)
That is neither convex nor concave.

For X2 > -1, this simplifies to X1/(1+X2). Now restrict this to X1 and X2 are positive. Evaluating the Hessian of this at X1 = X2 = 1 produces one positive eigenvalue and one negative eigenvalue. So neither convex nor concave even on this restricted domain.

Thanks so much for the explanation, Sir ! :smiley:
What shall be do to convert or approximate X1/(1+X2) into a concave form, such that

maximize X1/(1+X2) if we restrict this to X1 and X2 are positive…

in the CVX optimization environment?

That function is not concave. The subject of what would be a good approximation for your purposes is outside the scope of this forum. If that is really the function you wish to maximize, you may be better off using a non-convex solver.

Thanks! Have a nice day!