Hou can i solve this qcqp problem by cvx


(chenchen) #1
cvx_begin
    variable e(N,1) complex
    minimize ((vs+e)'*inv(Rc)*(vs+e))
    subject to
        vs'*e==0
        (vs+e)'*inv(Rc)*(vs+e)<= vs'*inv(Rc)*vs
cvx_end

vs and e are N1 complex vector,Rc is a NN comlpex matrix.

Disciplined convex programming error:
Invalid quadratic form: product is complex.


(Mark L. Stone) #2

I think the problem is due to round-off level imaginary terms in quadratic forms. It seems thhat CVX is rather fussy.

The following worked for me on a test problem I tried:

cvx_begin
    variable e(N,1) complex
    minimize (quad_form(vs+e,inv(Rc)))
    subject to
        vs'*e==0
        quad_form(vs+e,inv(Rc)) <= quad_form(vs,inv(Rc))
cvx_end

real(vs'*inv(Rc)*vs) can be used instead of quad_form(vs,inv(Rc)) and accomplishes eliminating the round-off level imaginary component.