In the “subject to” conditions, is it possible to check if some variable defined between the cvx_begin and cvx_end tags is unitary?
cvx_begin sdp
variable X(n,n);
subject to
% Check if X is unitary.
cvx_end
A matrix is unitary if U U^* = U^*U = I or equivalently if U^{-1} = U^*
However doing either check as
cvx_begin sdp
variable X(n,n);
subject to
X * X' == eye(n,n); % CVX complains about invalid quadratic form.
inv(X) == X'; % CVX doesn't know what "inv" is.
cvx_end
Even attempting to go through with individual for loops and multiply scalar by scalar to yield a new matrix does not agree with CVx. Any feedback would certainly be greatly appreciated.