The second argument must be concave

First of all, I read the other convex ./ convex errors and “why isnt CVX accepting my model” topic but couldnt figured out how to pass this error.

The original error was :

Error using .*
Disciplined convex programming error:
Cannot perform the operation: {convex} ./ {convex}
Error in ./ (line 19)
z = times( x, y, ‘./’ );
Error in * (line 36)
z = feval( oper, x, y );
Error in / (line 15)
z = mtimes( x, y, ‘rdivide’ );
Error in optimclosedform (line 69)
maximize( abs(rx_intended) / abs(rx_interference + rx_noise) );

and I used quad_over_lin as suggested but it now requires second argument to be concave.

Optimization problem is a basic SINR calculation and I dont think it should be that hard so I hink I miss some basic thing in my code.

I’m just trying to find transmit power(scalar) value that maximizes SINR

Here is the code :

cvx_begin
    variable p([64 10]);

        W_ZF = H' * inv(H * H');
        W_ZF = (W_ZF / norm(W_ZF,'fro')); 
        rx_noise = (1/sqrt(2)) * randn(1,1) *db2pow(noisevariancedb) +  (1/sqrt(2)) * 1j * randn(1,1)*db2pow(noisevariancedb) *10e7;

        tx_symbols = W_ZF;
        tx_symbols = (tx_symbols.' ./ (N*K*mean(abs(W_ZF.')))).' ;     
        tx_symbols = tx_symbols .* p ;  
    
        k = 1;
        H_k = H(k,:);
        rx_gains = H_k * tx_symbols ;  
        rx_intended =  rx_gains(:,k); 
        rx_interference = sum(rx_gains(:,[1:k-1 k+1:end]));


    maximize( quad_over_lin(rx_intended , abs(rx_interference + sqrt(rx_noise) )  ) );
    subject to
        sum(sum(p)) < 100

cvx_end

and the error :

Error using cvx/quad_over_lin
The second argument must be concave.
Error in optimclosedform (line 69)
maximize( quad_over_lin(rx_intended , abs(rx_interference + sqrt(rx_noise) ) ) );

Even if the 2nd argument of quad_over_lin were concave, you would be maximizing a convex expression, which is not consistent with being a convex optimization problem.

So even though you say you’ve read Why isn't CVX accepting my model? READ THIS FIRST!
did you pay attention to the part about proving your optimization problem is convex? I’ll mark this non-convex until someone shows otherwise.

Hello, I also had a similar problem, is your problem solved

@mububear Have you proven your optimization problem is convex?

The problem I encountered :1) the first argument must be affine; 2)the second argument must be concave.

The problem you encountered is that you have not proven the optimization problem is convex. Please carefully read the link.