Help!DCP error: Invalid quadratic form(s): not a square

I’m trying to solve a max-min fair optimization problem as follows.

And here is my cvx code:

cvx_begin sdp
    variable t;
    variable Q(64,64,serve_ue_num) complex semidefinite;
    expression received_power(1,serve_ue_num);
    expression  denominator;
    maximize t;
    subject to 
        for c=1:serve_ue_num
            for cc=1:serve_ue_num
                >=t*(sum(real(received_power(1,[1:c-1 c+1:serve_ue_num])))+NoisePowerReceived_W);

I got error message in the first constraint.But I have no idea about how to modify the code in a manner allowed by cvx.

The error message is because you are multiplying t and Q, which is non-convex, hence not allowed by CVX.

If that were permissible, I would have suggested that when you first asked how to formulate this problem in CVX at CVX programming error: Cannot perform the operation: {convex} ./ {convex} - #2 by Mark_L_Stone .


Yeah, but I’m not sure how to formulate the problem in cvx. And I got error message cannot convert the NaN into logical at the claim of variable Q after trying to reformulate the problem into a gp problem as follow. Do you have any suggestions about the error?


You’ve now had two people hinting at using the bisection method, as discussed in section 4.2.5 “Quasiconvex optimization” of Convex Optimization – Boyd and Vandenberghe

As for Geometric Programming, you haven’t shown us your reproducible code. Did you follow the rules in Geometric programming mode — CVX Users' Guide ? You can’t mix code which follows the “regular” CVX DCP rules with code which follows gp rules in one CVX invocation. You have to pick one or the other set of rules and diligently follow those rules (use cvx_begin gp if following the gp rules).