SOCP with quadratic inequality constraints

Dear all,

The following CVX implementation of a SOCP problem:

> N = 4; w = randn(N,1) + 1i*randn(N,1);
> w = w/norm(w); cvx_begin
>     variable u(N)
>     maximize( real(w'*u) )
>      subject to
>       abs(u(1))==1
>       abs(u(2))==1
>       abs(u(3))==1
>       abs(u(4))==1
> 
> cvx_end

Gives me the following error:

Disciplined convex programming error:
   Invalid constraint: {convex} == {real constant}

Do you know how can I rewrite the problem so that this is admitted in CVX? I have been googling but still no clue.

Thank you in advance

Your constraints are not convex. FAQ: Why doesn’t CVX accept my problem? [READ THIS FIRST] . I’m not sure where your quadratic inequality constraints, if any, are, but you haven’t shown any. Why are you calling this a SOCP?

They are convex indeed. Equality constraints can be constructed by two inequalities.

With one dimension, your constraint is abs(u ) == 1. u = 1 and u = -1 are solutions, but u = 0, which is a convex combination of those solutions, is not a solution. That shows the constraint is not convex. Try reading http://stanford.edu/~boyd/cvxbook/bv_cvxbook.pdf .

Mark is, of course, correct.