# How to linearize or fix this disciplined convex programming error?

How can I linearize this constraint

$$d_{u,c}\sigma \le \|{\bf f}_{u,c}\|^2\le Td_{u,c}$$ $$\sigma$$ is a very small number based on scale of $$f$$

$$T>0$$, $${\bf f}_{u,c}$$ is optimization variable, a complex vector. $$d_{u,c}$$ is also an optimization variable which in binary.

• Which vector norm is $||\cdot||$ in your notation? The euclidean norm?
– joni
Commented Jan 15, 2023 at 19:39
• yes it is. or l2 norm
– KGM
Commented Jan 15, 2023 at 20:17

$$d_{u,c}\sigma \le \|{\bf f}_{u,c}\|^2$$ is inherently non-convex, because affine <= convex is non-convex, unless the LHS is zero, in which case this constraint can be eliminated as vacuous. Therefore, it can't be linearized into DCP compliance. I am interpreting the norm as being the two-norm. The one-norm or infinity-norm could be linearized into DCP compliance, as shown in Section 9,1 of Mosek Modeling Cookbook, suitably adjusted to handle complex variables, and for infinity norm as opposed to one-norm.
I guess by the constraint $$\|\mathbf f_{u, c}\|^2 \geq \sigma d_{u,c}$$ with a very small $$\sigma$$, what you want is $$d_{u,c} = 1 \Rightarrow \|\mathbf f_{u,c}\|^2_2 > 0$$. In this case, since $$\|\mathbf f_{u,c}\|_2 > 0 \Leftrightarrow \|\mathbf f_{u,c}\|_1>0$$, you can replace the l2 norm with l1 norm, and l1 norm could be transformed to DCP, as mentioned. So the result is $$d_{u, c} \tilde{\sigma} \leq \|\mathbf f_{u,c}\|_1\\ \|\mathbf f_{u,c}\|_2^2 \leq Td_{u,c}$$ where $$\tilde{\sigma}$$ is another small number.