本课只解决一个问题
怎样把“顶点、边、面怎样连接”写成矩阵,并让“边界的边界为零”成为可以验证的代数恒等式?
1. 为什么需要形式线性组合
只列出单条边无法表达一圈边界。我们允许把有向单纯形按系数相加。
k-链写作
c=i∑aiσi,
其中σi 是有向k-单纯形,ai 可取整数、实数或模二系数。
所有k-链组成向量空间或交换群Ck。
2. 有向边的边界
有向边[v0,v1] 的边界定义为
∂1[v0,v1]=[v1]−[v0].
终点系数为正,起点为负。
两条连续边:
∂1([v0,v1]+[v1,v2])=([v1]−[v0])+([v2]−[v1])=[v2]−[v0].
中间顶点自动抵消。
3. 有向三角形的边界
定义
∂2[v0,v1,v2]=[v1,v2]−[v0,v2]+[v0,v1].
也可把中间一项改写为[v2,v0]:
∂2[v0,v1,v2]=[v0,v1]+[v1,v2]+[v2,v0].
这就是沿三角形正方向绕一圈。
4. 直接验证∂1∂2=0
∂1∂2[v0,v1,v2]==([v2]−[v1])−([v2]−[v0])+([v1]−[v0])0.
每个顶点出现一次正号、一次负号,完全抵消。
几何直觉是:一块面的边界是一条闭路,而闭路没有端点。
5. 共享边为何抵消
两个一致定向三角形
[0,1,2]+[1,0,3]
的边界中,共享边分别以[0,1] 和[1,0]=−[0,1] 出现,所以抵消。剩下的正是外轮廓。
这说明链的边界运算自动完成“删除内部边”。
6. 边界矩阵
给顶点、边、面固定顺序后,线性映射
∂1:C1→C0,∂2:C2→C1
可写成矩阵B1,B2。
对有向边e=[i,j],B1 对应列只有两个非零项:
(B1)i,e=−1,(B1)j,e=1.
对有向面,B2 的列在三条边位置填入与全局边方向一致或相反的+1,−1。
7. 核心矩阵恒等式
边界的边界为零写成
B1B2=0.
这不是近似关系,而应在精确整数运算中严格为零。若不为零,通常说明:
- 面方向处理错误;
- 边索引不一致;
- 某条局部边的符号写反;
- 组装代码有 bug。
8. 模二系数与整数系数
若系数取Z2={0,1},则−1=1,方向信息消失,重复出现两次仍相消。它适合只关心洞数量的简单实现。
整数系数Z 保留方向与扭结信息,能区分更多拓扑现象。可定向曲面和 Stokes 符号分析通常需要有符号系数。
9. 常见误区
- ∂ 不是几何曲线本身,而是把链映到边界链的线性算子。
- 面的边界符号由定向决定,不能全部随意填+1。
- B1B2=0 是必要一致性检查,但不能证明网格一定是流形。
- 拓扑边界算子与微积分中的偏导符号∂/∂x 含义不同。
10. 自测与答案
题 1。 计算∂1([0,1]+[1,2]+[2,0])。
答案。 三项端点全部抵消,结果为0。
题 2。 一条有向边反向后,边界怎样变化?
答案。∂[j,i]=[i]−[j]=−([j]−[i])=−∂[i,j]。
题 3。 为什么两个一致定向相邻面中的共享边必须抵消?
答案。 它是并集内部的边,不应出现在并集边界上;相反方向的系数保证代数抵消。
前后课程
上一课:三角剖分与 Euler 示性数 | 下一课:同调与 Betti 数