The Gram-Schmidt Algorithm
In any inner-product space, we can choose the basis in which to
work. It often greatly simplifies calculations to work in an
orthogonal basis. For one thing, if S = {v1, v2,
:, vn} is an orthogonal basis for an inner product space V,
then it is a simple matter to express any vector w ∈ V as a linear
combination of the vectors in S:
w = |
<w,v1> || v1 ||2
|
v1 + |
<w,v2> || v2 ||2
|
v2 +
:+ |
<w,vn> || vn ||2
|
vn. |
|
That is, w has coordinates |
|
< w,v1 > ||v1||2 |
v1 |
< w,v2 > ||v2||2 |
v2 . . . |
< w,vn > ||vn||2 |
vn |
|
|
T
| relative to the basis S. |
|
|
Given an arbitrary basis {u1, u2,
:, un} for an
n-dimensional inner product space V, the Gram-Schmidt
algorithm constructs an orthogonal basis {v1, v2,
:, vn} for V:
Step 1: |
|
Let v1 = u1 |
Step 2: |
|
Let v2 = u2 - projW1u2 = u2 - [ <u2,v1> / || v1||2 ]v1 where W1 is the space spanned by v1, and
projW1u2 is the orthogonal projection of u2 on W1.
|
Step 3: |
|
Let v3 = u3 -projW2 u3 = u3- [ <u3,v1> / || v1 ||2 ]v1 - [ <u3,v2> / || v2 ||2 ]v2 where W2 is
the space spanned by v1 and v2.
|
Step 4: |
|
Let v4 = u4 -projW3 u4 = u4- [ <u4,v1> / || v1 ||2 ]v1 - [ <u4,v2> / || v2 ||2 ]v2 - [ <u4,v3> / || v3 ||2 ]v3 where W3 is
the space spanned by v1, v2 and v3.
|
|
. . . |
|
Continue this process up to vn. The resulting orthogonal set
{v1,v2,
:,vn} consists of n linearly
independent vectors in V and so forms an orthogonal basis for V.
Notes
- To obtain an orthonormal basis for an inner product space
V, use the Gram-Schmidt algorithm to construct an orthogonal basis.
Then simply normalize each vector in the basis.
- For Rn with the Eudlidean inner product (dot product), we
of course already know of the orthonormal basis { (1,0,0,
:,0), (0,1,0,
:,0),
:, (0,
:,0,1)}. For more abstract spaces, however, the existence of an
orthonormal basis is not obvious. The Gram-Schmidt algorithm is
powerful in that it not only guarantees the existence of an
orthonormal basis for any inner product space, but actually gives the
construction of such a basis.
Example
Let V = R3 with the Euclidean inner product. We will apply the
Gram-Schmidt algorithm to orthogonalize the basis { (1,-1,1),(1,0,1),(1,1,2)}.
Step 2: v2 |
= |
(1,0,1) - |
(1,0,1) · (1,-1,1)
||(1,-1,1)||2 |
(1,-1,1) |
|
|
= |
|
|
= |
|
Step 3: v3 |
= |
(1,1,2) - |
(1,1,2) · (1,-1,1)
||(1,-1,1)||2 |
(1,-1,1) - |
(1,1,2) · (1/3,2/3,1/3)
||(1/3,2/3,1/3)||2 |
(1/3,2/3,1/3) |
|
|
= |
(1,1,2) - |
2 3 |
(1,-1,1) - |
5 2 |
(1/3,2/3,1/3) |
|
|
= |
(-1/2,0,1/2) |
You can verify that { (1,-1,1),(1/3,2/3,1/3),(-1/2,0,1/2)} forms an orthogonal
basis for R3. Normalizing the vectors in the orthogonal basis,
we obtain the orthonormal basis
|
|
|
|
|
√3 3
|
, |
-√3 3
|
, |
√3 3
|
|
, |
|
|
√6 6
|
, |
√6 3
|
, |
√6 6
|
|
, |
|
|
-√2 2
|
, 0, |
√2 2
|
|
|
. |
|
Key Concept [index]
Given an arbitrary basis { u1,u2,
:,un}
for an n-dimensional inner product space V, the Gram-Schmidt
algorithm constructs an orthogonal basis { v1,v2,
:,vn} for V:
Step 1: Let v1 |
= |
u1. |
Step 2: Let v2 |
= |
|
Step 3: Let v3 |
= |
u3 - |
<u3, v1> ||v1||2 |
v1 - |
<u3, v2> ||v2||2 |
v2. |
|
|