Interactive Educational Modules in
Scientific Computing

Gram-Schmidt Orthogonalization

This module demonstrates the Gram-Schmidt procedure for orthogonalizing vectors. Two nonzero vectors can be orthogonalized by first normalizing one of them, then orthogonally projecting the second vector onto the first. After subtracting the projection from the second vector and normalizing, we then have two orthonormal vectors. In higher dimensions, this process can be extended to orthogonalize any number of vectors up to the dimension of the space.

The user clicks on the graph to select two vectors in the plane. The steps in the Gram-Schmidt procedure are then carried out by clicking on the appropriate buttons. The result is two orthonormal vectors that span the same space as the original two vectors.

Reference: Michael T. Heath, Scientific Computing, An Introductory Survey, 2nd edition, McGraw-Hill, New York, 2002. See Section 3.5.3, especially Figure 3.4.

Developers: Nicholas Exner and Michael Heath