In mathematics, the Smith normal form (sometimes abbreviated SNF[1]) is a normal form that can be defined for any matrix (not necessarily square) with entries in a principal ideal domain (PID). The Smith normal form of a matrix is diagonal, and can be obtained from the original matrix by multiplying on the left and right by invertible square matrices. In particular, the integers are a PID, so one can always calculate the Smith normal form of an integer matrix. The Smith normal form is very useful for working with finitely generated modules over a PID, and in particular for deducing the structure of a quotient of a free module. It is named after the Irish mathematician Henry John Stephen Smith.
Let
A
m x n
R
m x m
n x n
S,T
R
SAT
\begin{pmatrix} \alpha1&0&0& … &0& … &0\\ 0&\alpha2&0&&&&\\ 0&0&\ddots&&\vdots&&\vdots\\ \vdots&&&\alphar&&&\\ 0&& … &&0& … &0\\ \vdots&&&&\vdots&&\vdots\\ 0&& … &&0& … &0 \end{pmatrix}.
and the diagonal elements
\alphai
\alphai\mid\alphai+1
1\lei<r
A
\alphai
\alphai=
di(A) | |
di-1(A) |
,
di(A)
i x i
A
d0(A):=1
Example : For a
2 x 2
{\rmSNF}{a~~b\choosec~~d}={\rmdiag}(d1,d2/d1)
d1=\gcd(a,b,c,d)
d2=ad-bc
The first goal is to find invertible square matrices
S
T
SAT
A
Rn
R
n
Rm
R
m
S:Rm\toRm
T:Rn\toRn
S ⋅ A ⋅ T
S
T
S
A
i
j
A
j
i
S
T
A'=S' ⋅ A ⋅ T'
A',S',T'
A
S
T
For
a\inR\setminus\{0\}
\delta(a)
a
R
To put a matrix into Smith normal form, one can repeatedly apply the following, where
t
m
Choose
jt
A
jt-1+1
t>1
We wish to have
a | |
t,jt |
≠ 0
k
a | |
k,jt |
≠ 0
t
k
a | |
t,jt |
≠ 0
Our chosen pivot is now at position
(t,jt)
If there is an entry at position (k,jt) such that
a | |
t,jt |
\nmid
a | |
k,jt |
\beta
=\gcd\left(a | |
t,jt |
,
a | |
k,jt |
\right)
a | |
t,jt |
⋅ \sigma+
a | |
k,jt |
⋅ \tau=\beta.
By left-multiplication with an appropriate invertible matrix L, it can be achieved that row t of the matrix product is the sum of σ times the original row t and τ times the original row k, that row k of the product is another linear combination of those original rows, and that all other rows are unchanged. Explicitly, if σ and τ satisfy the above equation, then for
\alpha=a | |
t,jt |
/\beta
\gamma=a | |
k,jt |
/\beta
\sigma ⋅ \alpha+\tau ⋅ \gamma=1,
so that the matrix
L0= \begin{pmatrix} \sigma&\tau\\ -\gamma&\alpha\\ \end{pmatrix}
is invertible, with inverse
\begin{pmatrix} \alpha&-\tau\\ \gamma&\sigma\\ \end{pmatrix} .
Now L can be obtained by fitting
L0
a | |
t,jt |
\delta(\beta)<
\delta(a | |
t,jt |
)
Finally, adding appropriate multiples of row t, it can be achieved that all entries in column jt except for that at position (t,jt) are zero. This can be achieved by left-multiplication with an appropriate matrix. However, to make the matrix fully diagonal we need to eliminate nonzero entries on the row of position (t,jt) as well. This can be achieved by repeating the steps in Step II for columns instead of rows, and using multiplication on the right by the transpose of the obtained matrix L. In general this will result in the zero entries from the prior application of Step III becoming nonzero again.
However, notice that each application of Step II for either rows or columns must continue to reduce the value of
\delta(a | |
t,jt |
)
At this point, only the block of A to the lower right of (t,jt) needs to be diagonalized, and conceptually the algorithm can be applied recursively, treating this block as a separate matrix. In other words, we can increment t by one and go back to Step I.
Applying the steps described above to the remaining non-zero columns of the resulting matrix (if any), we get an
m x n
j1<\ldots<jr
r\lemin(m,n)
(l,jl)
Now we can move the null columns of this matrix to the right, so that the nonzero entries are on positions
(i,i)
1\lei\ler
\alphai
(i,i)
The condition of divisibility of diagonal entries might not be satisfied. For any index
i<r
\alphai\nmid\alphai+1
i
i+1
i+1
i
\alphai+1
\alphai
(i,i)
(i,i)
\beta=\gcd(\alphai,\alphai+1)
(i+1,i+1)
\alphai,\alphai+1
The value
\delta(\alpha1)+ … +\delta(\alphar)
r x r
r(r-j)\delta(\alpha | |
\sum | |
j). |
\alpha1\mid\alpha2\mid … \mid\alphar
Since all row and column manipulations involved in the process are invertible, this shows that there exist invertible
m x m
n x n
The Smith normal form is useful for computing the homology of a chain complex when the chain modules of the chain complex are finitely generated. For instance, in topology, it can be used to compute the homology of a finite simplicial complex or CW complex over the integers, because the boundary maps in such a complex are just integer matrices. It can also be used to determine the invariant factors that occur in the structure theorem for finitely generated modules over a principal ideal domain, which includes the fundamental theorem of finitely generated abelian groups.
The Smith normal form is also used in control theory to compute transmission and blocking zeros of a transfer function matrix.[2]
As an example, we will find the Smith normal form of the following matrix over the integers.
\begin{pmatrix} 2&4&4\\ -6&6&12\\ 10&4&16 \end{pmatrix}
The following matrices are the intermediate steps as the algorithm is applied to the above matrix.
\to \begin{pmatrix} 2&0&0\\ -6&18&24\\ 10&-16&-4 \end{pmatrix} \to \begin{pmatrix} 2&0&0\\ 0&18&24\\ 0&-16&-4 \end{pmatrix}
\to \begin{pmatrix} 2&0&0\\ 0&2&20\\ 0&-16&-4 \end{pmatrix} \to \begin{pmatrix} 2&0&0\\ 0&2&20\\ 0&0&156 \end{pmatrix}
\to \begin{pmatrix} 2&0&0\\ 0&2&0\\ 0&0&156 \end{pmatrix}
So the Smith normal form is
\begin{pmatrix} 2&0&0\\ 0&2&0\\ 0&0&156 \end{pmatrix}
and the invariant factors are 2, 2 and 156.
The Smith Normal Form of an N-by-N matrix A can be computed in time
O(\|A\|log\|A\|N4logN)
The Smith normal form can be used to determine whether or not matrices with entries over a common field
K
xI-A
xI-B
K[x]
For example, with
\begin{align} A&{}=\begin{bmatrix} 1&2\\ 0&1\end{bmatrix},&&SNF(xI-A)=\begin{bmatrix} 1&0\\ 0&(x-1)2 \end{bmatrix}\\ B&{}=\begin{bmatrix} 3&-4\\ 1&-1\end{bmatrix},&&SNF(xI-B)=\begin{bmatrix} 1&0\\ 0&(x-1)2 \end{bmatrix}\\ C&{}=\begin{bmatrix} 1&0\\ 1&2\end{bmatrix},&&SNF(xI-C)=\begin{bmatrix} 1&0\\ 0&(x-1)(x-2) \end{bmatrix}. \end{align}
A and B are similar because the Smith normal form of their characteristic matrices match, but are not similar to C because the Smith normal form of the characteristic matrices do not match.