I have a constraint in the form

$\sqrt{|\sum_{c\in C}{h_cw_c}|^2}\ge\sqrt{x}\zeta$

Here, $h_c$ is s row vector (know), $w_c$ is a column vector (variable). $x$ and $\zeta$ are also optimization variables.

How can I transform this into linear/convex constraint?

Also, I have $\text{imag}(h_cw_c)==0$.

Of course, I can write the LHS part as $||\sum_{c\in C}\rm{h_cw_c}||_2\ge\sqrt{x}\zeta$.

Now, how to deal the RHS part?

Is there any way to linearize this?

  • 1
    $\begingroup$ Are any of the variables binary? Otherwise, i think you're out of luck - face it, you have a non-convex nonlinear problem, and you're not going to cram this into CVX, if that is your hope, without a lot of bastardizations. $\endgroup$ Dec 10, 2020 at 13:07
  • $\begingroup$ @MarkL.Stone, unfortunately..no. if not exact linearization, may be some convex overestimation is possible? $\endgroup$
    – KGM
    Dec 10, 2020 at 13:09
  • $\begingroup$ Just use a non-convex solver. Try using YALMIP if you like the MATLAB environment. It handles problems CVX does in a similar, but not exactly the same, manner, and, unlike CVX, also can do non-convex problems and non-DCP convex problems, using either local or global optimization solver. The global solvers will do any under or overestimation for you, better than you would do on your own. $\endgroup$ Dec 10, 2020 at 13:11
  • $\begingroup$ @MarkL.Stone, does YALMIP support binary variables? I have binary variable in other constraints of my problem? $\endgroup$
    – KGM
    Dec 10, 2020 at 13:14
  • $\begingroup$ Yes, using solvers which natively support binary and integer, as well as its own top-level solvers, BNB (for convex problems) and BMIBNB for global solution of non-convex problems. You can use BMIBNB and specify FMINCON as upperesolver to globally optimize mixed-integer nonlinear non-convex problems (even though FMINCON does not support binary or integer problems, BMIBNB only feeds it continuous problems which it can handle. $\endgroup$ Dec 10, 2020 at 13:52


This site is temporarily in read-only mode and not accepting new answers.