数学中,史密斯标准形(SNF[1])是适用于所有元素都位于主理想域(PID)的矩阵的标准形(不必是方阵)。史密斯标准形是对角矩阵,可以从原始矩阵左右乘可逆方阵得到。特别地,整数构成一个PID,所以总可以计算出任何整数矩阵的史密斯标准形。史密斯标准形对于处理PID上的有限生成模,尤其是推导自由模之商的结构时非常有用。史密斯标准形得名于爱尔兰数学家Henry John Stephen Smith。
令A为主理想域R上的非零m×n矩阵。存在可逆、方阵S, T(系数在R中),使得它们的积S A T为
对角元素满足。这就是矩阵A的史密斯标准形。元素在乘法意义上是唯一的,是可逆元,称为基本除子、不变量或不变因子。它们的计算公式为
其中(即第i个行列式因子)等于矩阵A 所有子式的行列式的最大公因数,且。
第一个目标是找到可逆方阵、使得为对角阵。这是算法中最难的部分。一旦实现了对角化,将矩阵转化为史密斯标准形就相对简单了。更抽象地说,我们的目标是证明可以视为从(秩为的自由-模)到(秩为的自由-模)的映射,且有同构、,使得具有对角矩阵的简单形式。、可用以下方法得到:从适当大小的单位阵开始,每次在算法中对进行行运算时,都将相应的列运算施于(例如,若的行加在行上,则的列应减去 ,以保持乘积不变),同理,每次列运算都相应地修改、由于行运算是左乘,列运算是右乘,这也就保持了不变,其中表示当前值,表示原矩阵;最终,不变式中的矩阵变为对角阵。
对于,记为的素因子数(素因子存在且唯一,因为PID都是唯一分解整环) 。特别地,也是贝祖环,因此是GCD环,任意两元素的gcd满足贝祖等式。
要将矩阵转为史密斯标准形,可以重复应用下面的公式,其中从1到循环。
择为中非零元所在的最小列数,若则从第列开始搜索。
我们希望;若是这种情况,这步就完成了。否则,根据假设,存在某个,使,且我们可以交换行与行,得到。
现在我们选择的主元位于。
若(k,jt)上有元素使,则令,根据贝祖性质我们知道R中存在σ、τ使
与适当的可逆阵L左乘,矩阵乘积的第t行是原矩阵第t行的σ倍与第k行的τ倍的和,乘积的第k行则是这些行的另一个线性组合,其他行则保持不变。若σ、τ满足上市,则对于和(根据β的定义,这样作商是可能的),可以得到
那么矩阵
可逆,其逆为
现在L可以通过将放入单位阵的t~k行列来得到。根据构造,L左乘后得到的矩阵在(t,jt)的位置上有元素β(由于我们选择了α、γ,(k,jt)上也有元素0,虽然这对算法并不重要,但很有用)。这个新元素β除了原元素,因此;因此重复这些步骤最后必须终止。最终得到的矩阵的(t,jt)元素除以了jt列的所有元素。
最后,加上第t行的适当倍数,可以使jt列中除(t,jt)外的所有元素都变为零。这也可以通过左乘适当的矩阵来实现。不过,为使矩阵完全对角,还需消除(t,jt)所在行上的非零元素,这可以通过对列重复第二步中的算法来实现,并与得到的矩阵L的转置右乘。一般来说,这会导致之前应用第三步时消除的元素再次变为非零。
注意,对行列每次应用第二步的算法都必须减少的值,因此这一过程须在一定迭代次数后终止,使矩阵中(t,jt)元素是所在行列中的唯一非零元。
这时,只需对(t,jt)右下方的A块进行对角化,从概念上讲这个算法可以递归应用,将块视为单独的矩阵。换句话说,可以将t增加1,然后回到第一步。
将上述步骤用于结果矩阵的剩余非零列(如果有的话),最后得到矩阵,列为,其中。矩阵非零元只有。
现在可以把空列向右移动,这样非零元就到了位置。简而言之,设为上的元素。
对角元的可除性条件可能不能满足。使,可以只对、行列进行操作来弥补这一缺陷:首先将第列加到列,以在第i列得到元素而不影响位置上的元素,然后应用行运算使元素等于,如第二步所述;最后按第三步方法,使矩阵再次对角化。由于的新条目是原的线性组合,所以可以被β除。
的值不会因为上述操作而改变(它是上子阵的行列式的δ),因此操作确实(通过向右移动因子)减小了
所以,这算法只能应用有限次,意味着我们已经如愿得到了。
由于所有行列运算都可逆,这就表明存在可逆方阵、S, T使乘积S A T满足史密斯标准形的定义。特别地,这表明史密斯标准形一定存在,无需证明。
链复形的链模为有限生成模时,史密斯标准形对计算链复形的同调将十分有用。例如,拓扑学中,可用于计算整数上有限单纯复形或CW复形的同调,因为这种复形的边界映射的整数矩阵;还可用于确定主理想域上有限生成模结构定理中出现的不变因子,其中包括了有限生成阿贝尔群基本定理。
控制论中,史密斯标准形还用于计算传递函数矩阵的零点。[2]
求下列整数矩阵的史密斯标准形:
下面的矩阵是算法应用于上述矩阵的中间步骤。
所求史密斯标准形为
不变因子为2、2、156。
史密斯标准形可用于判定元素属于同一域的两个矩阵是否相似。具体来说,当且仅当特征矩阵、有相同的史密斯标准形时,A、B相似。
例如
A、B相似是因为它们特征矩阵的史密斯标准形相同,而与C不相似,因为它们特征矩阵的史密斯标准形不同。