How to write the SINR constraint in CVX

Hello, I’m trying the sum-rate maximization problem in CVX. So far I was able to implement my problem in CVX without SINR constraints.
However, still, I’m struggling to write the following constraint in CVX. Can someone help me to write this in CVX?
The constraint is attached. The variable is vec(w).

It is not a convex constraint, so it can’t be expressed with CVX. For example, when f1=0, it becomes a form of square norm>=a constant, which is not convex.

Thank you for your comment. Yes, I do understand that this is not convex constraint. Is there any method to make it convex?

I don’t know if there’s a way. I saw people handling SINR constraints by treating it as difference of convex function (DC Program?), which means you can move your denominator to the right, and then move everything to the right, it will become a DCP. Then it is handled by convex approximation, replacing the second convex function with its taylor first-order expansion.

I don’t know how (or if at all) your problem can be fit in this form, but the typical approach to SINR modeling is via geometric programming (GP)

Like I said your model looks more complicated so it is possible what I said makes no sense, or that you need some more clever reformulation of the whole problem, not just the one constraint.

I have tried the method you suggested before (I mean DCP). But, it did not work here. Anyway, thanks for your comment.

Screenshot 2023-11-14 110425
Hello,
I am trying to write the first equation on cvx, but it gives me error due to the third term.

my code for this equation is :

(square(norm(((g_U1)‘)(P_old(:,3))))+noise_power)-(((2real(((P(:,2))’)(g_U1)((g_U1)‘)*(P(:,2)))))/raw_SINR_private(1))+(square((norm(((g_U1)’)*P(:,2))))*raw_SINR_private_old(1))/square(raw_SINR_private(1))<=0

it give me an error:
Cannot perform the operation: {convex} ./ {real affine}

I defined all the variables, also I tried inv_pos. but give me error also. so can anyone help me.

Thanks in advance

help quad_over_lin

quad_over_lin Sum of squares over linear.
Z=quad_over_lin(X,Y), where X is a vector and Y is a scalar, is equal to
SUM(ABS(X).^2)./Y if Y is positive, and +Inf otherwise. Y must be real.

If X is a matrix, quad_over_lin(X,Y) is a row vector containing the values
of quad_over_lin applied to each column. If X is an N-D array, the operation
is applied to the first non-singleton dimension of X.

quad_over_lin(X,Y,DIM) takes the sum along the dimension DIM of X.
A special value of DIM == 0 is accepted here, which is automatically
replaced with DIM == NDIMS(X) + 1. This has the effect of eliminating
the sum; thus quad_over_lin( X, Y, NDIMS(X) + 1 ) = ABS( X ).^2 ./ Y.

In all cases, Y must be compatible in the same sense as ./ with the squared
sum; that is, Y must be a scalar or the same size as SUM(ABS(X).^2,DIM).

Disciplined convex programming information:
    quad_over_lin is convex, nonmontonic in X, and nonincreasing in Y.
    Thus when used with CVX expressions, X must be convex (or affine)
    and Y must be concave (or affine).

However, that quad_over_lin term would be going the wrong direction (unless \rho_k < 0) to be compatible with DCP rule for LHS of inequality to be convex.

And I don’t know about the 4th term.

Is this overall LHS convex? have you proven it is?

Hello, has the problem been solved