A problem in recogonizing Convex constraints


(Ahmadi) #1

Hello !
I have a question about working with CVX . If R is a hermitian matrix and W is a compelx Vector and A is a complex vector like W and M is a real number so Could the following Optimimztion problem be solved using CVX :

minimize (W ’ * R * W)
subject to
W ’ * A >= 1 + M * norm(W) ;
imag( W ’ * A ) == 0 ;

I have faced this error when I tried to solve the above Problem using CVX :

Disciplined convex programming error:
Invalid constraint: {complex affine} >= {convex}
If the problem could not be solved using CVX in the form I have writed , Is there any other form to propose it so the error doesn’t show up (and CVX solves the problem)
I’m begginer in CVX , So It would be great if anyone could help


(Mark L. Stone) #2

Per http://cvxr.com/cvx/doc/dcp.html#constraints

One or both sides of an equality constraint may be complex; inequality constraints, on the other hand, must be real. A complex equality constraint is equivalent to two real equality constraints, one for the real part and one for the imaginary part. An equality constraint with a real side and a complex side has the effect of constraining the imaginary part of the complex side to be zero.

In another constraint, you are constraining imag( W ’ * A ) to be zero, but CVX doesn’t account for that when processing your disallowed complex inequality. I think if you change
W ’ * A >= 1 + M * norm(W)
to
real(W ’ * A) >= 1 + M * norm(W)
that should be accepted by CVX. and do what you apparently want to do.