首先是在写作业时想到能否用计算机自动计算各种曲面剖分的同调群。简单调研后发现这是可以做到的,而且出乎意料地简单!同调群这一看似抽象的概念实际上完全可以用线性代数的语言描述和计算。
各种同调群最终都是在一个链复形上计算一个商群。只考虑整系数情形,这类问题一般都能通过 3 步得到:
- 得到链复形上边缘算子的矩阵表示;
- 计算边缘算子矩阵的 Smith 标准型;
- 根据边缘算子矩阵的秩,以及 Smith normal form 对角项,写出各阶同调群。
本文中首先介绍整系数矩阵的 Smith 分解,再说明怎样利用边缘算子的 Smith 分解直接读出同调群。本文中的同调群默认为整系数同调群。
Smith 标准型
对于任意一个整系数矩阵(不要求是方阵,不要求满秩),总可以将其化为 Smith normal form,形式为:
其中 U,V 是整系数、可逆的矩阵(逆矩阵也是整系数)。而 D 是“对角化”的矩阵
其中
以上是 Smith 标准型的定义。实际上,从一个整系数矩阵出发得到此“对角化”形式并不困难(相对于本征值问题而言)。下面简述思路:
得到一个 Smith 标准型大致可分为 3 步:
- 选取主元;
- 利用行变换级列变换将矩阵消为对角形式;
- 继续利用行列变换将对角元化为依次整除的形式。
其中每一步我们只用下面几种矩阵的基本变换,这些变换都对应到左乘或右乘 U,V:
- 将第 i 行乘整系数加到 j 行;
- 将第 i 列乘整系数加到 j 列;
- 互换第 i 行与第 j 行;
- 互换第 i 列与第 j 列;
- 将某行或某列元素全部取相反数。
这些都是我们在线性代数中熟悉的变换,每一步相当于左乘或右乘一个可逆的整系数矩阵。也就是说,我们只用这 4 种基本操作去改变矩阵使,相应的 U,V 矩阵自然满足要求。U,V 的具体形式与我们的讨论无关,因此我们可以把目光完全放在用基本变换消去矩阵元上。接着我们可以用一个标准流程给出 Smith 标准型:
- 现在我们我们从矩阵的 (1,1) 位置矩阵元出发。如果是 0,则通过行或列交换重新选主元,把 (1,1) 矩阵元变为非零。
- 利用行变换和辗转相除法,把跟主元同行及同列的元素消为 0;
- 从 (2,2) 矩阵元开始,重复步骤 1,2, 直到除了对角元以外全变为 0;
- 从如果相邻两个对角元不整除,用行列变换在非对角元上加出它们的最小公倍数,在用行列变换消成对角整除的形式。
对第 4 步具体举例:
这样,我们就从任意整系数矩阵出发得到了 Smith 标准型。可以证明这样的 Smith 分解的结果是唯一的。
Smith 分解是一个机械性的工作,实际上我们可以方便地使用现成的算法高效地给出一个矩阵的 Smith 分解。其中包括 Mathematica 内置的 SmithDecomposition 函数。
链复形的同调群
本节我们首先规定下我们的记号。各种同调群的核心对象是一个链复形:
其中每个
对每个 i 边缘算子