空间向量基本定理与共面定理
平面向量基本定理说的是:不共线的两个向量的全部线性组合铺满整个平面,且系数唯一。空间里同一句话要三个向量,而「不共线」这个条件要换成「不共面」。三条定理由此排成一列,各自回答「几个向量能表示多大范围」。
1 · 共线与共面
定理 1.1(共线定理)设 。则 与 共线的充要条件是存在唯一实数 使 。
判据取叉积: 恰是两者共线。用叉积而不用「对应分量成比例」,是因为后者在某个分量为零时要分情况讨论,而 一个式子覆盖全部情形。
定理 1.2(共面定理)设 与 不共线。则 与 、 共面的充要条件是存在唯一一对实数 、 使 。
把三个向量的起点平移到同一点,共面就是「三个箭头落在同一张平面上」。这个条件的代数形式是混合积 为零: 垂直于 、 张成的平面, 与它垂直即 落在那张平面内。
四点 、、、 共面另有一种常用写法。取任一点 ,则
系数和为 1 这一条使式子在原点平移下不变,「共面」这个结论随之与建系无关:把
换到别处,三个系数一个不变。affineDecompose 的单测就验这一条:整体平移
后系数与原来逐位相同。
2 · 空间向量基本定理
定理 2.1(空间向量基本定理)设 、、 不共面。则空间中任一向量 都可唯一地写成
向量组 、、 称空间的一个基底。
定理有两半:存在(覆盖整个空间)与唯一(系数不重复)。两半都依赖「不共面」。若三者共面,它们的线性组合只铺满一张平面,空间中平面外的向量表示不出来;退一步,即使目标向量恰在那张平面内,表示也不再唯一——第三个向量成了多余的自由度。
三条轴上的单位向量 、、 是最常用的基底,此时系数就是坐标。但基底不必正交,也不必等长:长方体 - 的三条共顶点的棱是一组基底,、 与体对角线 也是一组。用哪一组要看题目:若已知条件里出现的都是从同一顶点出发的三条棱的长度与夹角,取那三条棱作基底可以完全避开建系这一步。
3 · 分解的计算
解 是解一个三元一次方程组。克拉默法则用在此处写得特别短,三个分子都是混合积:
分母正是定理 2.1 里那个条件的代数形式。基底退化时 decompose3 返回空值,而不是让
变成 NaN 流进读数:分解不存在,不该由一个数字来表示。
例 3.1 长方体 - 中 、、。取 、、 为基底,则 的系数是 , 的系数是 ,第三个系数为零说明 落在底面内,而 的系数是 。换成基底 、、,同一个 的系数变成 ,即 。系数随基底而变,被表示的向量不变。
4 · 判据的尺度
混合积为零是共面的准确判据,写成代码却要留意它是个体积:三个向量同时放大 倍,混合积放大 倍,而共面这件事一点没变。
实测一组:、、 的混合积是 ;整体放大 10 倍后,混合积是 ,涨了 1000 倍。拿固定的 当阈值,同一个构型放大一遍就从「共面」翻成「不共面」。
本系列的 decompose2 因此不判混合积,而判
到
、
张成的平面的距离与
之比:上面两档分别是
与
,比值都是
,不随尺度动。这一改动是实测逼出来的:起初直接调用 shared/geom3d.ts 的 coplanar(它就是混合积与固定
比),把同一个几乎共面的构型放大一遍就换了答案,于是本系列的判据改成相对量,而 coplanar 保持原样——它的定位是「混合积为零」这条定义的直译,不是一个带容差的判定器。
警示 · 最小二乘给出的那对 、 在不共面时同样有值,它是使 最小的那一对,对应 在平面上的投影。读数里必须同时看残差:残差非零时那对系数不是「 的分解」,只是最接近的一组。把它当分解用会得到一个看似合理却错误的答案,而这类错误在只报布尔值的接口下反而不容易发生。
5 · 参考文献
- Basis (linear algebra). Wikipedia. 基底的定义与表示唯一性。https://en.wikipedia.org/wiki/Basis_(linear_algebra)
- Triple product. Wikipedia. 混合积、它的体积含义与共面判据。https://en.wikipedia.org/wiki/Triple_product
- Cramer's rule. Wikipedia. 克拉默法则,三元一次方程组的行列式解法。https://en.wikipedia.org/wiki/Cramer%27s_rule
- Coplanarity. Wikipedia. 共面的多种等价判据。https://en.wikipedia.org/wiki/Coplanarity