How can i solve this problem by CVX?


(chenchen) #1

%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20181029175146
cvx_begin
variable y(3,1) complex
minimize (quad_form(y,RU))
subject to
y’y==N
cvx_end
y is a 3
1 complex vector,RU is a 3*3 comlpex matrix.N is a constant。

Error using cvxprob/newcnstr (line 192)
Disciplined convex programming error:
Invalid constraint: {convex} == {real constant}

Error in cvx/eq (line 12)
b = newcnstr( evalin( ‘caller’, ‘cvx_problem’, ‘[]’ ), x, y, ‘==’ );

Error in chonggouxiugai2017 (line 94)
y’*y==N


(Erling D.Andersen) #2

The constraint

y’*y==N

is obviously nonconvex. Most likely you can do

y’*y \leq N

(chenchen) #3

If I do as you say,the restriction will change
And I try it ,the result y is close to 0
Obviously,that’s not i want


(Erling D.Andersen) #4

Please read Why isn't CVX accepting my model? READ THIS FIRST! and supply a proof that your model is convex. Then we can help you.

Note

y^2 = 1

obviously is a nonconvex set.


(Mark L. Stone) #5

Well, you have a non-convex problem. If the convex relaxation y^Hy <= N does not produce an acceptable solution, then you will need to use a non-convex solver, and CVX can not be used.

Edit. Erling posted seconds before me. Anyhow, you will not be able to prove your model is convex, because it is not*

*unless N = 0, in which case the problem is rather trivial