clear;clc; a=randn(3,1)+1i*randn(3,1); A=a*a'; cvx_begin sdp variable phi(3,1) complex expression B(3,3) B=phi*phi'; minimize trace(A*B) subject to [phi*phi',phi;phi',1 ]==hermitian_semidefinite(4); cvx_end
For the above problem, I found that the outer product (x*x’) is not allowed in CVX. The error is shown as
Disciplined convex programming error: Invalid quadratic form(s): not a square.
What’s the meaning of this error and how can I express outer product in object and constraints?