數學中,史密斯標準形(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不相似,因為它們特徵矩陣的史密斯標準形不同。