# Constraint to check the orthogonality of two vectors

```````enter code here`
cvx_begin
variables X(3) Y(3) Z(5) VX(L) VY(L) VZ(L)
asd = VX'*VY;
minimize (norm(S*X - VX,1)+norm(T*Y - VY,1)+norm(U*Z - VZ,1))
subject to
0 <= dot(VX,VY) <= 1;
0 <= dot(VX,VZ) <= 1;
0 <= dot(VY,VZ) <= 1;
cvx_end
``````

Given S, T and U are vectors of some length L. Where VX = SX; VY = TY, and VZ = U*Z actually. I want to obtain X,Y and Z such that the resultant VX, VY and VZ are mutually orthogonal. I have tried using many things but they are not helping. I would really appreciate your help if you could somehow re-frame the question so that I can achieve the aforementioned task.
Thank you.

This cannot be done in CVX. It simply is not convex.

As stated, it is unclear what you are asking. “VX” is a variable name but “SX” is S times X? But if SX is multiplication, then how can X have length 3 and S length L?

VX is a variable name but there has been a typographical error. VX = S-multiply-X, similarly VY = T-multiply-Y. S is a matrix of order L-by-3 hence the result VX, VY or VZ is a vector of length L.

I see. Then you should change the statement, “Given S, T and U are vectors of some length L.”