问题:一组倾斜的基
一组基只要相互独立就够了;它不必是垂直的。实践中,你常常拿到的是一组完全合格、却很倾斜的基,里面的向量互相倚靠。它们仍然张成整个空间,但坐标很别扭,重叠也搅乱了图景。我们更想要的是标准正交的黄金标准。
减去重叠,再归一化
诀窍就是上一篇里纯粹的投影。把第一个向量留作你的第一个方向。对第二个向量,问一句:它已经有多少分量沿着第一个方向?把那部分投影减掉,剩下的误差就垂直于第一个方向——正是我们想要的。对每个新向量重复此法,减去它与此前已固定的每个方向的重叠。
- 令 u1 = v1(保留第一个向量的方向)。
- 令 u2 = v2 - proj_u1(v2):减去 v2 与 u1 的重叠。
- 继续下去:每个新的 u 都减去它在所有更早的 u 上的投影。
- 最后把每个 u 除以它的范数,使其成为单位长度:q = u / norm(u)。
v1=(1,1), v2=(2,0)
u1 = (1,1)
proj_u1(v2) = ((u1 dot v2)/(u1 dot u1)) * u1
= (2/2)*(1,1) = (1,1)
u2 = v2 - (1,1) = (1,-1)
check: u1 dot u2 = 1*1 + 1*(-1) = 0 (perpendicular!)
q1 = (1,1)/sqrt(2), q2 = (1,-1)/sqrt(2)这就是 QR 里的 Q
Gram-Schmidt 不只是一道整洁的练习——它是一座工厂。把它跑在一个矩阵 A 的列上,你得到的标准正交向量就成为正交矩阵 Q 的列。「减掉了多少、又重新缩放了多少」这些账目,自己记录在一个上三角矩阵 R 里,于是 A = Q R,这就是 QR 分解。