NLA Visualizations

Modified Gram-Schmidt

Orthogonalizing by row instead of column

Algorithm

Instead of processing each original vector aja_j entirely, MGS computes qiq_i and immediately projects it out of all remaining vectors vjv_j (j>ij > i). This updating of the remaining pool of vectors improves numerical stability compared to Classical Gram-Schmidt.

Step-by-Step Construction

Step 0 of 6
StartFinish
Initial vectors v1=a1v_1=a_1, v2=a2v_2=a_2, v3=a3v_3=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=qiTvj(i)r_{ij} = q_i^T v_j^{(i)} and rii=vi(i)r_{ii} = \|v_i^{(i)}\|

Click & drag to rotate camera