Completing a set of orthonormal vectors in $\mathbb{R}^n$

51 Views Asked by At

Suppose that I have an orthonormal set of vectors $$ \left\{{\bf v}_1, {\bf v}_2, \dots, {\bf v}_k \right\}  \subset \mathbb{R}^n, $$ where $k < n$. How can I use Gram-Schmidt orthonormalisation process to introduce the remaining vectors to have an orthonormal set which spans the entire space $\mathbb{R}^n$?

1

There are 1 best solutions below

1
On BEST ANSWER

Run the Gram–Schmidt process for $\{{\bf v}_1, {\bf v}_2, \dots, {\bf v}_k, {\bf s}_1, {\bf s}_2, \cdots, {\bf s}_n\}$, where ${\bf s}_1=(1,0,0,\cdots, 0)$, ${\bf s}_2=(0,1,0\cdots, 0)$, etc. is the standard basis of $\Bbb R^n$. However, whenever you find some ${\bf u}_i=0$, discard it. (The first $k$ steps are trivial, since ${\bf v}_1, {\bf v}_2, \dots, {\bf v}_k$ are orthonormal.)

Or you can use any $n$ linearly independent vectors instead of the standard basis.

Or as CyclotomicField suggested, "you can pick one vector $\bf r$ of $\Bbb R^n$ at random". Compute $${\bf r}_p={\bf r}-\sum _{i=1}^{j}\operatorname {proj} _{{\bf v}_j}({\bf r}),$$ where ${\bf v}_1,{\bf v}_2,\cdots, {\bf v}_j$ are the orthonormal vectors obtained so far, $j\ge k$. Repeat until you got ${\bf r}_p\not=0$. Then set ${\bf v}_{j+1}=\frac {{\bf r}_p}{\|{\bf r}_p\|}$, extending the orthonormal vectors by another one. Repeat until we have $n$ orthonormal vectors.