Suppose you start out with a basis (∣e1⟩,∣e2⟩,…,∣en⟩) that is not orthonormal. The Gram--Schmidt procedure is a systematic ritual for generating from it an orthonormal basis (∣e1′⟩,∣e2′⟩,…,∣en′⟩). It goes like this:
(i) Normalize the first basis vector (divide by its norm):
∣e1′⟩=∥e1∥∣e1⟩.
(ii) Find the projection of the second vector along the first, and subtract it off:
∣e2⟩−⟨e1′∣e2⟩∣e1′⟩.
This vector is orthogonal to ∣e1′⟩; normalize it to get ∣e2′⟩.
(iii) Subtract from ∣e3⟩ its projections along ∣e1′⟩ and ∣e2′⟩:
∣e3⟩−⟨e1′∣e3⟩∣e1′⟩−⟨e2′∣e3⟩∣e2′⟩.
This is orthogonal to ∣e1′⟩ and ∣e2′⟩; normalize it to get ∣e3′⟩. And so on.
Use the Gram--Schmidt procedure to orthonormalize the 3-space basis ∣e1⟩=(1+i)i^+(1)j^+(i)k^, ∣e2⟩=(i)i^+(3)j^+(1)k^, ∣e3⟩=(0)i^+(28)j^+(0)k^.