正文
Gram-Schmidt过程: 对于给定空间的一组基,求取该空间的一组正交基的过程
从二维投影理解更高维的投影问题
上一章节学习了一维投影 ,也就是在一个二维空间中求取一个向量
v
⃗
\vec v
v在
u
⃗
\vec u
u向量上的投影
p
⃗
\vec p
p的过程:
通过向量
v
⃗
\vec v
v 向向量
u
⃗
\vec u
u作垂线,则垂足所在点的向量就是
v
⃗
\vec v
v在
u
⃗
\vec u
u上的投影
p
⃗
=
u
⃗
⋅
v
⃗
u
⃗
⋅
u
⃗
⋅
u
⃗
\vec p = \frac {\vec u \cdot \vec v}{\vec u \cdot \vec u} \cdot {\vec u}
p=u⋅uu⋅v⋅u; 从而与向量
u
⃗
\vec u
u正交的向量就可以表示为
v
⃗
−
p
⃗
\vec v - \vec p
v−p;
求取三维空间的一组正交基
在三维空间中,给出空间的一组基
u
⃗
,
v
⃗
,
w
⃗
\vec u, \vec v ,\vec w
u,v,w,但是它们不是一组正交基,也即不满足两两正交这样的条件,求取这个空间的一组正交基
首先,可以选择其中的两个向量,比如先把
u
⃗
,
v
⃗
\vec u, \vec v
u,v处理成两个垂直的向量
p
⃗
1
,
p
⃗
2
\vec p_1 ,\vec p_2
p1,p2,然后再处理第三个向量
w
⃗
\vec w
w,令
w
⃗
\vec w
w垂直于
p
⃗
1
,
p
⃗
2
\vec p_1,\vec p_2
p1,p2也即相当于找出
w
⃗
\vec w
w的一个分量,这个分量垂直于
p
⃗
1
,
p
⃗
2
\vec p_1,\vec p_2
p1,p2所在的平面。由高中的立体几何知识可知,由向量
w
⃗
\vec w
w所在线段的末端向
p
⃗
1
,
p
⃗
2
\vec p_1,\vec p_2
p1,p2所在的平面引一根垂线,相应的就会有一个垂足的位置,这样就可以在
p
⃗
1
,
p
⃗
2
\vec p_1 ,\vec p_2
p1,p2所在的平面上以垂足的位置为末端作出向量
w
⃗
\vec w
w在平面的投影向量
p
⃗
\vec p
p,这就是所谓的高维投影,我们现在是在一个二维平面上进行投影:
那么通过投影向量 p ⃗ \vec p p,就可以得到与 p ⃗ 1 , p ⃗ 2 \vec p_1 ,\vec p_2 p1,p2正交的那个向量 p ⃗ 3 = w ⃗ − p ⃗ \vec p_3 = \vec w - \vec p p3=w−p,所以此时问题的核心变成了求取 w ⃗ \vec w w向量在 p ⃗ 1 , p ⃗ 2 \vec p_1 ,\vec p_2 p1,p2所在平面的投影向量 p ⃗ \vec p p;
投影向量 p ⃗ \vec p p的求取过程
由于 p ⃗ 1 , p ⃗ 2 \vec p_1 ,\vec p_2 p1,p2已经是一组正交向量,所以这两个向量就是 p ⃗ 1 , p ⃗ 2 \vec p_1 ,\vec p_2 p1,p2所在平面这样一个子空间的一组正交基,则向量 p ⃗ \vec p p可以由 p ⃗ 1 , p ⃗ 2 \vec p_1 ,\vec p_2 p1,p2的一组线性组合所表示 p ⃗ = k 1 ⋅ p ⃗ 1 + k 2 ⋅ p ⃗ 2 \vec p = k_1 \cdot \vec p_1 + k_2 \cdot \vec p_2 p=k1⋅p1+k2⋅p2,在这里,直接求取 k 1 , k 2 k_1, k_2 k1,k2这两个系数显然不方便; 其实对于向量 p ⃗ \vec p p,它存在于 p ⃗ 1 , p ⃗ 2 \vec p_1 ,\vec p_2 p1,p2所在的平面,那么如果把 p ⃗ \vec p p这个向量向 p ⃗ 1 \vec p_1 p1和 p ⃗ 2 \vec p_2 p2作垂线,那么在 p ⃗ 1 \vec p_1 p1和 p ⃗ 2 \vec p_2 p2方向上就有两个分向量 a ⃗ \vec a a和 b ⃗ \vec b b,然后 p ⃗ = a ⃗ + b ⃗ \vec p = \vec a + \vec b p=a+b , 然后求解向量 p ⃗ \vec p p的问题就变成了求解向量 a ⃗ \vec a a和 b ⃗ \vec b b:
→ p ⃗ = k 1 ⋅ p ⃗ 1 + k 2 ⋅ p ⃗ 2 = a ⃗ + b ⃗ \to \vec p = k_1 \cdot \vec p_1 + k_2 \cdot \vec p_2 = \vec a + \vec b →p=k1⋅p1+k2⋅p2=a+b
根据高中立体几何的知识可知
- a ⃗ \vec a a其实也是 w ⃗ \vec w w在 p ⃗ 1 \vec p_1 p1上的投影
- b ⃗ \vec b b其实也是 w ⃗ \vec w w在 p ⃗ 2 \vec p_2 p2上的投影
进而,求出 w ⃗ \vec w w在 p ⃗ 1 \vec p_1 p1和 p ⃗ 2 \vec p_2 p2上的投影就求出来 a ⃗ \vec a a和 b ⃗ \vec b b,进而就能够得到投影向量 p ⃗ \vec p p,最后构造出垂直于 p ⃗ 1 , p ⃗ 2 \vec p_1 ,\vec p_2 p1,p2 的第三个向量 p 3 = w ⃗ − p ⃗ = w ⃗ − a ⃗ − b ⃗ p_3 = \vec w - \vec p = \vec w - \vec a - \vec b p3=w−p=w−a−b。这个二维投影问题就变成了一维投影问题;
计算向量 w ⃗ \vec w w在 p ⃗ 1 , p ⃗ 2 \vec p_1,\vec p_2 p1,p2上的投影,直接代入一维投影计算公式可得
a ⃗ = w ⃗ ⋅ p ⃗ 1 ∥ p ⃗ 1 ∥ 2 ⋅ p ⃗ 1 , b ⃗ = w ⃗ ⋅ p ⃗ 2 ∥ p ⃗ 2 ∥ 2 ⋅ p ⃗ 2 \vec a = \frac {\vec w \cdot \vec p_1}{\| {\vec p_1} \| ^2} \cdot \vec p_1 \ \ \ , \ \ \vec b = \frac {\vec w \cdot \vec p_2}{\| {\vec p_2} \| ^2} \cdot \vec p_2 a=∥p1∥2w⋅p1⋅p1 , b=∥p2∥2w⋅p2⋅p2从而, p ⃗ 3 = w ⃗ − p ⃗ = w ⃗ − w ⃗ ⋅ p ⃗ 1 ∥ p ⃗ 1 ∥ 2 ⋅ p ⃗ 1 − w ⃗ ⋅ p ⃗ 2 ∥ p ⃗ 2 ∥ 2 ⋅ p ⃗ 2 \vec p_3 = \vec w - \vec p = \vec w - \frac {\vec w \cdot \vec p_1}{\| {\vec p_1} \| ^2} \cdot \vec p_1 - \frac {\vec w \cdot \vec p_2}{\| {\vec p_2} \| ^2} \cdot \vec p_2 p3=w−p=w−∥p1∥2w⋅p1⋅p1−∥p2∥2w⋅p2⋅p2
推广到 n n n维度空间
如果已知一组基:
v
⃗
1
,
v
⃗
2
,
⋯
,
v
⃗
n
\vec v_1 , \vec v_2 , \cdots , \vec v_n
v1,v2,⋯,vn,相应的求出这组基所代表的
n
n
n维空间的一组正交基的过程就是:
p
⃗
1
=
v
⃗
1
\vec p_1 = \vec v_1
p1=v1
p
⃗
2
=
v
⃗
2
−
p
⃗
1
⋅
v
⃗
2
∥
p
⃗
1
∥
⋅
p
⃗
1
\vec p_2 = \vec v_2 - \frac {\vec p_1 \cdot \vec v_2}{\|{\vec p_1}\|} \cdot {\vec p_1}
p2=v2−∥p1∥p1⋅v2⋅p1
p
⃗
3
=
v
⃗
3
−
p
⃗
1
⋅
v
⃗
3
∥
p
⃗
1
∥
⋅
p
⃗
1
−
p
⃗
2
⋅
v
⃗
3
∥
p
⃗
2
∥
⋅
p
⃗
2
\vec p_3 = \vec v_3 - \frac {\vec p_1 \cdot \vec v_3}{\|{\vec p_1}\|} \cdot {\vec p_1} - \frac {\vec p_2 \cdot \vec v_3}{\|{\vec p_2}\|} \cdot {\vec p_2}
p3=v3−∥p1∥p1⋅v3⋅p1−∥p2∥p2⋅v3⋅p2
p
⃗
4
=
v
⃗
4
−
p
⃗
1
⋅
v
⃗
4
∥
p
⃗
1
∥
⋅
p
⃗
1
−
p
⃗
2
⋅
v
⃗
4
∥
p
⃗
2
∥
⋅
p
⃗
2
−
p
⃗
3
⋅
v
⃗
4
∥
p
⃗
3
∥
⋅
p
⃗
3
\vec p_4 = \vec v_4 - \frac {\vec p_1 \cdot \vec v_4}{\|{\vec p_1}\|} \cdot {\vec p_1} - \frac {\vec p_2 \cdot \vec v_4}{\|{\vec p_2}\|} \cdot {\vec p_2} - \frac {\vec p_3 \cdot \vec v_4}{\|{\vec p_3}\|} \cdot {\vec p_3}
p4=v4−∥p1∥p1⋅v4⋅p1−∥p2∥p2⋅v4⋅p2−∥p3∥p3⋅v4⋅p3
…
p
⃗
n
=
v
⃗
n
−
p
⃗
1
⋅
v
⃗
n
∥
p
⃗
1
∥
⋅
p
⃗
1
−
p
⃗
2
⋅
v
⃗
n
∥
p
⃗
2
∥
⋅
p
⃗
2
−
p
⃗
3
⋅
v
⃗
n
∥
p
⃗
3
∥
⋅
p
⃗
3
−
⋯
−
p
⃗
n
−
1
⋅
v
⃗
n
∥
p
⃗
n
−
1
∥
⋅
p
⃗
n
−
1
\vec p_n = \vec v_n - \frac {\vec p_1 \cdot \vec v_n}{\|{\vec p_1}\|} \cdot {\vec p_1} - \frac {\vec p_2 \cdot \vec v_n}{\|{\vec p_2}\|} \cdot {\vec p_2} - \frac {\vec p_3 \cdot \vec v_n}{\|{\vec p_3}\|} \cdot {\vec p_3} - \cdots - \frac {\vec p_{n-1} \cdot \vec v_n}{\|{\vec p_{n-1}}\|} \cdot {\vec p_{n-1}}
pn=vn−∥p1∥p1⋅vn⋅p1−∥p2∥p2⋅vn⋅p2−∥p3∥p3⋅vn⋅p3−⋯−∥pn−1∥pn−1⋅vn⋅pn−1
以上算法过程称为**“格拉姆-斯密特过程(Gram-Schmidt)”**。这样一步步计算出来的正交向量组 p ⃗ 1 , p ⃗ 2 , ⋯ , p ⃗ n \vec p_1 ,\vec p_2, \cdots , \vec p_n p1,p2,⋯,pn就是 v ⃗ 1 , v ⃗ 2 , ⋯ , v ⃗ n \vec v_1 , \vec v_2 , \cdots , \vec v_n v1,v2,⋯,vn这组基所代表的空间的正交基,进一步的对正交基的向量进行归一化 u ^ = 1 ∥ u ⃗ ∥ ⋅ u ⃗ \hat u = \frac {1}{\|\vec u\|} \cdot \vec u u^=∥u∥1⋅u就可以得到空间的一组 标准正交基。