Problem with multiplication of two variables in cvx in matlab

76 Views Asked by At

Here is the problem I'm trying to optimize.

enter image description here

where, x,y have non negative elements.

The code I have written for a simple one dimensional variable and not working is as follows

cvx_begin gp
    variable xCVX nonnegative  
    variable yCVX nonnegative  
    Objective = log(1+((8 * xCVX * yCVX)/((4 * xCVX + 2 * yCVX))));
    maximize (Objective)
cvx_end

I know the objective is concave so I used maximization and since there are multiplication, I used gp. but I get the error

Disciplined convex programming error: Illegal operation: {real constant} + {log-concave}

and without gp i get

Error using .* (line 262) Disciplined convex programming error: Invalid quadratic form(s): not a square.

changing the cost function with variable change ui = xi/yi and vi = yi/xi to

(u,v) = \sum_{i = 1}^{N} log(1 + (gi * hi /(gi / ui +hi / vi)) , u,v have non negative elements.

and finally w=1/ui z = 1/vi will lead to

(w,z) = \sum_{i = 1}^{N} log(1 + (gi * hi /(gi * wi +hi * zi)) , w,z have non negative elements.

which will result in Illegal operation: log( {convex} ). here there is no multiplication of w or z

What is the trick to solve this optimization problem?

0

There are 0 best solutions below