Given orthonormal pair $(x_1,x_2)$, i.e., $\langle x_i,x_j\rangle=1$ for $i=j$ and $\langle x_i,x_j\rangle=0$ for $i\neq j$, how to construct unitary matrix $U\in\mathbb{C}^{n\times n}$ with first two columns being equal to $x_1\in\mathbb{C}^{n\times n}$ and $x_2\in\mathbb{C}^{n\times n}$, i.e., $U=[x_1 \quad x_2\quad U_{n\times (n-2)}]$?
My attempt: I was trying for $n=4$. Let $X=[x_1\quad x_2]$, then using svd $X=W\begin{bmatrix}
\sigma_1&\\&\sigma_2\\&\\&\end{bmatrix}V^*$.
Let $S_U=\begin{bmatrix}
\sigma_1&&&\\&\sigma_2&&\\&&\sigma_1&\\&&&\sigma_2\end{bmatrix}$, so basically I transform rectangular singular value matrix to square by repeating its existing singular values. Also let $V_u=\begin{bmatrix}
V&\\
&V
\end{bmatrix}$
, then $U=WS_uV_u^*$, however $U$ turns out not unitary.
Can you please suggest any method to perform this unitary matrix completion problem that will be easy to program?
EDIT: I have used this method also, to get $U$ close to unitary but not exactly unitary:
x3=null([x1 x2 ones(n,1)]'); %to make sure <x1,x3>=0, <x2,x3>=0
x3=x3/sqrt(x3(1)^2+x3(2)^2+x3(3)^2+x3(4)^2); %to make sure <x3,x3>=1
x4=null([x1 x2 x3]'); %to make sure <x1,x4>=0, <x2,x4>=0, <x3,x4>=0
x4=x4/sqrt(x4(1)^2+x4(2)^2+x4(3)^2+x4(4)^2); %to make sure <x4,x4>=1
U=[x1 x2 x3 x4];
Best Answer
Since you are apparently using Matlab, you could simply do the following: