NLA Visualizations

Classical Gram-Schmidt

Orthogonalizing a set of vectors

Algorithm

We process each vector aja_j in turn. First, we project it onto all previously computed orthogonal vectors qiq_i (where i<ji < j). We subtract these projections to get a residual vector uju_j, which is orthogonal to all previous qiq_i. Finally, we normalize uju_j to get qjq_j.

Step-by-Step Construction

Step 0 of 5
StartFinish
Initial vectors a1,a2,a3a_1, a_2, a_3.

R Matrix Construction

R=[r110r120r130r210r220r230r310r320r330]R = \begin{bmatrix} \hphantom{r_{11}}\llap{0} & \hphantom{r_{12}}\llap{0} & \hphantom{r_{13}}\llap{0} \\[0.5em] \hphantom{r_{21}}\llap{0} & \hphantom{r_{22}}\llap{0} & \hphantom{r_{23}}\llap{0} \\[0.5em] \hphantom{r_{31}}\llap{0} & \hphantom{r_{32}}\llap{0} & \hphantom{r_{33}}\llap{0} \end{bmatrix}

Entries rij=qiTajr_{ij} = q_i^T a_j and rjj=ujr_{jj} = \\|u_j\\|

Click & drag to rotate camera