投影向量与投影数量
数量积已经给出 的几何读法: 在 方向上投影的长度,乘以 。在那一页里「投影」只是一句解释;本页把它拆成两个类型不同的对象——一个实数与一个向量——并给出它们唯一存在的分解定理。
1 · 两种投影的分工
设 非零, 是 与 的夹角。 在 上的投影数量 (scalar projection) 与投影向量 (vector projection) 分别定义为
两者只差一次数乘:投影向量等于投影数量乘以 的单位向量。类型的差别带来三处不能混用的地方。其一,投影数量带符号, 为钝角时取负值;投影向量把同一个符号表达成方向,指向 的反向。其二,投影数量的绝对值才是投影向量的模,。其三,两者对 的依赖方式不同:把 换成 , 与 都不变;把 换成 , 变号而 纹丝不动,因为分子分母各变一次号。
由投影数量的定义可把数量积改写成 ,即一个向量的模乘上另一个向量在它方向上的投影数量。这个式子对两个向量是对称的: 也等于 乘 在 上的投影数量。
2 · 正交分解
定理 2.1 设 非零。任一向量 可唯一地写成 ,其中 与 共线, 与 垂直。
证明 存在性:取 为上节的投影向量,。前者是 的数乘,与 共线;后者与 的数量积为
故与 垂直。唯一性:设 是两组这样的分解,则 与 共线,同时又等于 、与 垂直。与 共线的向量形如 ,垂直条件给出 , 非零迫使 ,两组分解相同。∎
这一分解称为 沿 的正交分解 (orthogonal decomposition)。它立刻给出两条常用结论:,即直角三角形的勾股关系;以及 ,等号当且仅当 与 共线。
换个角度,正交分解是平面向量基本定理取特定基底后的实例:以 与 的一个法向量为基底,二者不共线,分解的存在唯一性由那条定理直接承担,上面的证明只是把系数算了出来。
3 · 浮点意义下的正交
引擎的 decompose 照定义式实现,垂直分量取
。在画布可达的 195 个整点上穷举
非零与
的全部
种组合,两条恒等式都不精确成立:
与
的距离最大
;
的绝对值最大
,除以
归一后仍有
,最坏的一例是
、。数量级不大,却足以让 dot(par, perp) === 0 这样的写法在多数输入上返回 false。判定垂直的 isPerp 因此比较
而非是否等于零,判据按两者的模归一,否则长向量的绝对残差会被误读成不垂直。
警示 ·「 在 上的投影」这句话本身有歧义,它可能指实数 ,也可能指向量 ,两者的模相同而类型不同,行文中须写明取的是哪一个。另有一处不对称容易漏: 在 上的投影数量是 , 在 上的则是 ,除非两者的模相等,这两个数并不一样。
4 · 参考文献
- Vector projection. Wikipedia. 投影向量与投影数量的定义及两者的区别。https://en.wikipedia.org/wiki/Vector_projection
- Orthogonal decomposition. Wikipedia. 沿一个方向的正交分解及其唯一性。https://en.wikipedia.org/wiki/Orthogonality
- Gram–Schmidt process. Wikipedia. 正交分解在一般维数下的推广。https://en.wikipedia.org/wiki/Gram%E2%80%93Schmidt_process