Disciplined convex programming error:Invalid computation: prod( {convex} )


The problem I am trying to solve in cvx is:

minimize \left(\frac{1-\tau_j}{\tau_j}\right)\sigma + \left[\frac{1}{\tau_j}\prod\limits_{k\neq j}^{N}\left(1+\frac{R_k}{R_j}\frac{\tau_j}{1-\tau_j}\right)-\frac{1}{\tau_j}\right]\frac{L}{R_i}

subject to 0 \leq \tau_j \leq 1

where \tau_j is the variable of optimization.

\sigma, L and R_i, \forall i are constants.

I am facing two problems with the above formulation:

(a) CVX does not accept product of convex terms i.e. I am unable to write the expression i.e. \prod\limits_{k\neq j}^{N}\left(1+\frac{R_k}{R_j}\frac{\tau_j}{1-\tau_j}\right) in cvx.

(b) Although the objective function is convex, the term in expressions i.e. \left[\frac{1}{\tau_j}\prod\limits_{k\neq j}^{N}\left(1+\frac{R_k}{R_j}\frac{\tau_j}{1-\tau_j}\right)-\frac{1}{\tau_j}\right]\frac{L}{R} consists of \left(-\frac{1}{\tau_j}\right) that is treated as concave and hence cvx gives me error Illegal operation: {convex} + {concave}.

This seems to be a standard convex optimization problem. How can it be formulated using cvx?

FAQ: Why doesn’t CVX accept my problem? [READ THIS FIRST]

What makes you think it is convex? How did you prove this to yourself?

What are the restrictions on (values of) your constants? For example, if sigma is negative and L = 0, then your objective is concave. Given suitable restrictions on the constants, which you need to state, have you then proven the objective is convex? Edit Didn’t see mcg’s comments before.

The constants have positive values and are greater than zero. I have proven the convexity by simply expanding and solving for N=2,3… For example: For N=2, the concave term gets cancelled, and the expression is clearly convex.

I’ll be honest, I remain skeptical. Nevertheless, the FAQ applies.