Cannot maximize a(n) log-convex expression error!

Hi,
I have the following GP:

P1:

   cvx_begin gp
        cvx_solver Mosek;
        
        variable Pc Nonnegative;
        variable Pg Nonnegative;
        variable bettaD Nonnegative;

        maximize(log(Pg*bettaD)+log(Pc*10/(1+Pg*2)));
        Pg.*bettaD >=1 ;
        Pc*10/(1+Pg*2) >=1 ;
        bettaD <= 3/(1+Pc*2);
cvx_end

CVX solves P1. However, if I rewrite P1 in the following form it gives me error:
P2:

cvx_begin gp
        cvx_solver Mosek;
        variable Pc Nonnegative;
        variable Pg Nonnegative;
        variable bettaD Nonnegative;
        variable Rm Nonnegative;
        variable Rd Nonnegative;

        maximize(Rm+Rd);
        Pg.*bettaD >=1 ;
        Pc*10/(1+Pg*2) >=1 ;
        bettaD <= 3/(1+Pc*2);
        Rd<=log(Pg*bettaD);
        Rm<= log(Pc*10/(1+Pg*2));
        
cvx_end

It gives me this error:
Cannot maximize a(n) log-convex expression.
Could you please help me how to debug P2?

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

http://web.cvxr.com/cvx/doc/gp.html

It may seem like these are equivalent but they are not, for technical reasons I can’t get into. Using logarithms in geometric programs is not supported.

1 Like