# Théorème des facteurs invariants

En mathématiques, le théorème des facteurs invariants porte sur les modules de type fini sur les anneaux principaux. Les facteurs invariants non inversibles sont des obstructions à l'inversibilité des matrices qui n'apparaissent pas dans la théorie des espaces vectoriels. Leur calcul a de nombreuses applications : par exemple trouver la classe d'isomorphie d'un groupe abélien de type fini à partir d'une présentation de celui-ci. Dans un cadre précis, le théorème des facteurs invariants se particularise en théorèmes de réduction d'endomorphisme. Il permet alors notamment de calculer les invariants de similitude d'un endomorphisme sur un espace vectoriel. Il joue un rôle essentiel dans la résolution de systèmes d'équations différentielles linéaires à coefficients constants et dans la théorie des systèmes linéaires dynamiques. Le résultat du théorème des facteurs invariants est aussi connu sous le nom de forme normale de Smith. Dans le cas non commutatif (voir l'article anneau principal non commutatif) elle s'appelle la forme normale de Jacobson-Teichmüller.

## Historique

La forme de Smith et les éléments de sa diagonale, à savoir les facteurs invariants, ont tout d'abord fait leur apparition en théorie des nombres, pour des matrices à coefficients entiers. Vers le milieu du dix-neuvième siècle, Hermite est conduit à utiliser une forme réduite d'une substitution linéaire à coefficients entiers. Heger parvient à expliciter la forme de Smith en 1858 dans le but de donner la condition qui rend possible de résoudre un système d'équations diophantiennes linéaires dont le rang est égal au nombre d'équations. Enfin, Smith définit en 1861 les facteurs invariants d'une matrice quelconque à coefficients entiers et obtient la forme normale qui porte aujourd'hui son nom.
D'autre part, Gauss, également motivé par des problèmes de théorie des nombres et étudiant pour cela les groupes abéliens de type fini (dont il avait introduit la notion), s'était aperçu que ces groupes n'étaient pas toujours cycliques ; il avait été conduit (sans toutefois établir la structure générale de ces groupes) à établir l'existence d'un élément du groupe dont l'ordre est le ppcm des ordres des éléments du groupe, c'est-à-dire son plus grand facteur invariant. Cette structure générale des groupes abéliens de type fini est établie en 1846 par Dirichlet dans son mémoire sur les unités d'un corps de nombres algébriques.
En 1879, enfin, le lien entre la théorie des groupes abéliens de type fini et le théorème de Smith est reconnu par Frobenius et Stickelberger. La théorie de la similitude des matrices se construit entre-temps et en 1868, Weierstrass obtient des formes canoniques pour un faisceau non singulier de matrices carrées U + λV, ce qui le conduit à définir les diviseurs élémentaires d'une matrice carrée à coefficients complexes et à prouver qu'ils caractérisent celle-ci à une similitude près. Ces résultats ont également été obtenus (probablement de manière indépendante) par Jordan.
Les notions générales d'anneau, d'idéal et de module ayant déjà fait leur chemin, grâce notamment à Dedekind (en théorie des nombres) et à Kronecker (sur un anneau de polynômes), Frobenius montre en 1879 qu'on peut déduire le théorème de Weierstrass de la théorie de Smith grâce à un simple dictionnaire qui permet de passer des entiers aux polynômes. L'obtention d'une forme de Smith pour un anneau euclidien va ensuite de soi, par utilisation d’opérations élémentaires sur les lignes et les colonnes. Cohn a cependant montré en 1966 qu'il existe des anneaux principaux (par exemple l'anneau des entiers de ℚ(√–19)) sur lesquels le groupe général linéaire GL$_n$(R) ne peut pas être engendré à partir de I$_n$ par des opérations élémentaires dès que n ≥ 2$^,$.
* ↑ Décrivons rapidement les opérations élémentaires sur les lignes, pour fixer les idées. Soit A une matrice sur un anneau R et A$_i$ les lignes de A. Les trois types d'opérations élémentaires sur les lignes peuvent se ramener à seulement deux types : (i) remplacer A$_i$ par A$_i$ + λA$_j$ (i ≠ j) (transvection) et (ii) multiplier A$_i$ par une unité de R. L'anneau R étant euclidien, ces deux opérations (resp. les opérations de type (i)) engendrent (à partir de la matrice identité I$_n$) le groupe général linéaire GL$_n$(R) (resp. le groupe spécial linéaire SL$_n$(R)) (Cohn 2003, Theorem 3.5.1).
* ↑ Pour engendrer GL$_n$(R) ou SL$_n$(R) à partir de I$_n$, il est alors nécessaire et suffisant (Cohn 2003, Theorem 7.2.1) de faire appel à des opérations secondaires. Une opération secondaire sur les lignes A$_i$, A$_j$ de A consiste à multiplier à gauche la sous-matrice constituée de ces deux lignes par une matrice appartenant au groupe général linéaire GL$_2$(R). Kaplansky (Kaplansky 1949) a montré en 1949 qu'il existe une classe d'anneaux bézoutiens mais non nécessairement noethériens sur lesquels on peut mettre toute matrice sous forme normale (qu'on peut encore appeler forme de Smith dans le cas des anneaux intègres et commutatifs envisagé dans cet article) grâce à des opérations élémentaires et secondaires. Il a appelé les anneaux de ce type des anneaux à diviseurs élémentaires (voir infra). Cette appellation est du reste curieuse, car s'il est vrai que sur la forme de Smith on lit (sur la diagonale principale) les facteurs invariants, pour obtenir les diviseurs élémentaires il faut encore décomposer ces facteurs invariants en produit d'éléments extrémaux. Or, un anneau bézoutien factoriel est principal (Bourlès et Marinescu 2011, Theorem 462), par conséquent la possibilité d'obtenir des diviseurs élémentaires sur un anneau à diviseurs élémentaires qui n'est pas principal n'est pas sans poser question. Le travail de Kaplansky a été complété par Larsen, Lewis et Shores (Larsen, Lewis et Shores 1974) qui ont explicité en 1974 la structure d'un module de présentation finie sur un anneau à diviseurs élémentaires (voir infra). Il ne semble pas qu'on connaisse aujourd'hui d'exemple d'anneau bézoutien (commutatif et intègre) qui ne soit pas un anneau à diviseurs élémentaires.

## Cadre de l'article

L'approche présentée ici est effective dans le cadre d'un anneau euclidien. Le premier algorithme, dit d'échelonnement, est une généralisation du procédé d'élimination de Gauss-Jordan, de la décomposition LU : il permet de calculer des rangs et déterminants de matrices, et des noyaux et des images de morphismes de modules, ainsi que de résoudre des systèmes linéaires dans ce cadre. Le second algorithme, qui permet d'obtenir les applications annoncées est essentiellement un algorithme d'échelonnement simultané en lignes et en colonnes.
Une autre approche classique consiste à passer par la décomposition de Frobenius. (ce n'est pas une autre approche, mais une application)

## Rappel sur la décomposition LU

Une matrice A étant donnée, on souhaite la transformer en matrice triangulaire supérieure par opérations élémentaires sur les lignes (c'est-à-dire multiplication à gauche par des matrices de transvection, et des matrices de permutation). Par exemple, pour la matrice :
    $A={\begin{pmatrix}2&4&3\\1&5&0\\3&8&2\\\end{pmatrix}}={\begin{pmatrix}L_{1}\\L_{2}\\L_{3}\end{pmatrix}}.$
on multiplie à gauche successivement par les matrices :
    $T_{1}={\begin{pmatrix}1&0&0\\-1/2&1&0\\0&0&1\\\end{pmatrix}},T_{2}={\begin{pmatrix}1&0&0\\0&1&0\\-3/2&0&1\\\end{pmatrix}}.$
La première multiplication matricielle revient à remplacer la deuxième ligne de la matrice A par $L_{2}-{\frac {1}{2}}L_{1}$ ; puis la seconde multiplication revient à remplacer la troisième ligne par $L_{3}-{\frac {3}{2}}L_{1}$. On obtient ainsi une égalité matricielle :
    $T_{2}T_{1}A={\begin{pmatrix}&L_{1}&\\0&*&*\\0&*&*\\\end{pmatrix}}.$
c'est-à-dire qu'on a annulé les coefficients sous-diagonaux de la première colonne de A, par multiplication par des matrices T$_i$ de transvection, en se servant de la ligne $L_{1}$ comme pivot. En itérant le procédé, on peut annuler tous les coefficients sous-diagonaux de A, sous réserve toutefois de ne jamais tomber sur un pivot nul.

## Échelonnement des matrices à coefficients dans un anneau euclidien

Quelle obstruction rencontre-t-on dans le cas d'une matrice à coefficients dans un anneau euclidien ? La principale est que la non-nullité d'un coefficient n'assure pas qu'on puisse s'en servir comme pivot pour des opérations de transvection : dans l'exemple précédent, on s'est servi de 2 comme pivot, et on a été amené à faire des calculs avec son inverse ; ce faisant, on est sorti du cadre initial d'une matrice à coefficients entiers.

### Échelonnement des matrices lignes et colonnes

Il existe un palliatif. Regardons pour une matrice de taille 2×1 à coefficients dans un anneau euclidien :
    $A={\begin{pmatrix}a\\b\\\end{pmatrix}}$
Dans le cas où a et b sont non nuls, soit p un plus grand diviseur commun de a et b. On considère alors la matrice :
    $T={\begin{pmatrix}\alpha &\beta \\-{\frac {b}{p}}&{\frac {a}{p}}\\\end{pmatrix}}$
avec la relation $\det(T)=\alpha {\frac {a}{p}}+\beta {\frac {b}{p}}=1$. Le fait de se placer dans un anneau principal assure l'existence des coefficients α et β (voir théorème de Bachet-Bézout), et le fait de se placer dans un anneau euclidien donne l'algorithme d'Euclide pour les calculer. On constate l'égalité :
    $TA={\begin{pmatrix}p\\0\\\end{pmatrix}}$
on s'est ainsi ramené à une matrice colonne avec un coefficient nul, par une opération sur les lignes de la matrice A ; on peut voir cette opération comme une généralisation de la transvection. Remarquons que la matrice de transvection généralisée T est inversible puisque de déterminant (égal à 1) inversible dans l'anneau considéré. Dans le cas où $b$ est nul, on prend T=Id, dans le cas où a est nul, on prend $T={\begin{pmatrix}0&-1\\-1&0\\\end{pmatrix}}$. On voit en particulier que les matrices de transvection généralisées qu'on considère ne comprennent pas les matrices de permutation qui apparaissaient dans la décomposition LU ; c'est dû au choix restrictif de se limiter à des matrices de déterminant 1 ; leur absence est toutefois facilement palliée, comme on l'a vu ci-dessus.
Pour traiter le cas d'une matrice colonne de taille quelconque, il suffit d'effectuer d'abord une opération entre la première et la deuxième ligne, pour annuler le deuxième coefficient, puis entre la première et la troisième pour annuler le troisième, etc. Ainsi, pour $A={\begin{pmatrix}a_{1}\\a_{2}\\\vdots \\a_{n}\\\end{pmatrix}}$, il existe T produit de matrices de transvection généralisées telle que $TA={\begin{pmatrix}p\\0\\\vdots \\0\\\end{pmatrix}}$, où p est le pgcd des coefficients $a_{i}$.
Le cas d'une matrice ligne s'en déduit par transposition.

### Matrices de transvection généralisées et opérations élémentaires

On s'intéresse maintenant à des matrices de taille n×m, éventuellement rectangulaires, toujours à coefficients dans un anneau euclidien. Les matrices de transvection généralisées codant les opérations sur les lignes seront donc des matrices carrées de taille n, et celles codant les opérations sur les colonnes des matrices carrées de taille m. Pour faire une opération entre les rangées i et j, il faut donc considérer les matrices :
    $T_{i,j,\alpha ,\beta ,\gamma ,\delta }={\begin{pmatrix}1&&&&&&&&&0\\&\ddots &&&&&&&&\\&&1&&&&&&&\\&&&\alpha &\dots &\dots &\beta &&&\\&&&\vdots &1&0&\vdots &&&\\&&&\vdots &0&1&\vdots &&&\\&&&\gamma &\dots &\dots &\delta &&&\\&&&&&&&1&&\\&&&&&&&&\ddots &\\0&&&&&&&&&1\\\end{pmatrix}}$
avec αδ – βγ = 1, où les coefficients α, β apparaissent sur la ligne i, et γ, δ sur la ligne j. On remarque la relation suivante : $T_{i,j,\alpha ,\beta ,\gamma ,\delta }^{-1}=T_{i,j,\delta ,-\beta ,-\gamma ,\alpha }$.
Multiplier une matrice A, dont les lignes sont L$_i$, à gauche par une telle matrice, c'est remplacer la i-ième ligne L$_i$ de A par αL$_i$ + βL$_j$, et la j-ième ligne par γL$_i$ + δL$_j$. Pour obtenir une opération sur les colonnes, il faut effectuer une multiplication à droite par une matrice de transvection généralisée.
Dans le cas où α = δ = 1 et où un des deux coefficients β ou γ est nul, on retrouve une matrice de transvection proprement dite ; dans le cas où α = δ = 0 et β = –γ = ±1, on trouve une matrice qui va jouer le rôle de matrice de transposition ; convenons d'appeler anti-transposition l'opération correspondante.

### Algorithme d'échelonnement pour les matrices de taille quelconque

Commençons à décrire l'algorithme. Pour une matrice :
    $A={\begin{pmatrix}a_{1,1}&\dots &a_{1,m}\\\vdots &&\vdots \\a_{n,1}&\dots &a_{n,m}\end{pmatrix}}$
on commence par multiplier à gauche par des matrices de type T$_{1,j}$, pour j allant de 2 à n ; on effectue ces opérations en considérant seulement leur effet sur le premier vecteur colonne de la matrice A. D'après ce qu'on a vu pour les opérations sur les lignes d'un vecteur colonne, on parvient ainsi à annuler tous les coefficients sous-diagonaux de la première colonne de A, et le premier coefficient de la nouvelle matrice est précisément un pgcd des coefficients de la première colonne de A :
    $T_{1}A={\begin{pmatrix}p&*&*\\0&*&*\\0&*&*\\\end{pmatrix}}$
On veut ensuite multiplier par des matrices de type T$_{2,j}$, pour j > 2, pour annuler tous les coefficients sous-diagonaux de la deuxième colonne ; de telles opérations ne font pas intervenir la première ligne ; tous les coefficients de la première colonne, autre que celui en position (1, 1), qui seront ainsi obtenus seront donc combinaison linéaire des coefficients nuls de la première colonne : ils seront nuls. Il faut ensuite multiplier par des matrices de type T$_{3,j}$, pour annuler les coefficients sous-diagonaux de la troisième colonne, etc.
On obtient en définitive une égalité avec une matrice de la forme : $TA={\begin{pmatrix}p_{1}&*&&&&&*\\0&\dots &0&p_{2}&*&&*\\0&&\dots &&0&p_{3}&*\\&&&\dots &&&\\\end{pmatrix}}$ où les coefficients $p_{i}$ sont non nuls. La matrice obtenue est dite sous forme échelonnée en lignes, voir matrice échelonnée.
L'échelonnement en colonnes s'en déduit par transposition.

### Théorème d'échelonnement

Soit ${\mathcal {A}}$ un anneau principal, et A une matrice de $M_{n,m}({\mathcal {A}})$. Alors, il existe une matrice $T\in Sl({\mathcal {A}})$ (c'est-à-dire inversible et de déterminant 1), produit de matrices de transvection généralisées, telle que la matrice $TA\in M_{n,m}({\mathcal {A}})$ soit sous forme échelonnée en lignes. Si, de plus, l'anneau ${\mathcal {A}}$ est euclidien, on dispose d'un algorithme pour calculer la matrice T, dont la complexité est polynomiale en la taille de la matrice A et la taille de ses coefficients.

### Conséquences

L'algorithme d'échelonnement est suffisant pour bon nombre de calculs : le rang de la matrice A est égal au nombre de lignes non nulles de sa forme échelonnée ; le déterminant, dans le cas d'une matrice carrée de rang maximal, sera le produit des coefficients p$_i$ de la matrice échelonnée.
On peut aussi en déduire des équations et paramétrisations des noyaux et images des matrices, vues comme applications linéaires ; par exemple, pour $A\in M_{n,m}({\mathcal {A}})$, vue comme application linéaire de ${\mathcal {A}}^{m}$ dans ${\mathcal {A}}^{n}$, et $T\in Sl_{m}({\mathcal {A}})$ telle que AT soit échelonnée en colonnes, les éléments du noyau de AT sont de la forme ${\begin{pmatrix}0\\\vdots \\0\\a_{r+1}\\\vdots \\a_{m}\end{pmatrix}}$, où les $r$ premières lignes sont nulles, pour r le rang de A, et donc le nombre de colonnes non nulles de AT ; et donc les éléments du noyau de A sont engendrés par les m–r derniers vecteurs colonnes de T$^{–1}$.

## Théorème des facteurs invariants

Pour obtenir les conséquences théoriques annoncées, il faut aller plus loin ; on veut essentiellement obtenir une matrice qui soit à la fois échelonnée en lignes et en colonnes. Le théorème s'énonce ainsi :
Théorème des facteurs invariants — Soit ${\mathcal {A}}$ un anneau euclidien, et $A\in M_{n,m}({\mathcal {A}})$. Alors, il existe des matrices $T\in Sl_{n}({\mathcal {A}})$ et $U\in Sl_{m}({\mathcal {A}})$, produits de matrices de transvection généralisées, telles que TAU soit échelonnée en lignes et en colonnes ; c'est-à-dire de la forme : ${\begin{pmatrix}p_{1}&0&&\\0&\ddots &&\\&&p_{r}&\\&&&0\\\end{pmatrix}}$ avec de plus la relation de divisibilité $p_{1}\mid p_{2}\mid \dots \mid p_{r}$ Les coefficients p$_i$ forment un système de facteurs invariants pour la matrice A. Les facteurs invariants sont définis de façon unique, à multiplication par inversibles près. La suite des facteurs invariants caractérise les matrices à équivalence près.

### Corollaire et remarque

Notons le résultat suivant, corollaire de l'existence d'une mise sous forme diagonale :
   Les matrices de $Sl_{n}({\mathcal {A}})$ peuvent s'écrire comme produit d'un nombre fini de matrices de transvection généralisées.
En effet, pour $A\in Sl_{n}({\mathcal {A}})$, il existe d'après le théorème U$_1$ et U$_2$ produit de matrices de transvection généralisées telles que :
    $U_{1}AU_{2}={\begin{pmatrix}\epsilon _{1}&&\\&\ddots &\\&&\epsilon _{n}\end{pmatrix}}$
Le déterminant de TAU est 1, et donc le produit des $\epsilon _{i}$. On multiplie chaque membre à gauche par le produit de matrices de transvection généralisées $T_{n-1,n,\epsilon _{n},0,0,\epsilon _{1}\dots \epsilon _{n-1}}\dots T_{2,3,\epsilon _{3}\dots \epsilon _{n},0,0,\epsilon _{1}\epsilon _{2}}T_{1,2,\epsilon _{2}\dots \epsilon _{n},0,0,\epsilon _{1}}$ et on obtient la matrice identité au membre de droite. C'est-à-dire $A=U_{1}^{-1}T^{-1}U_{2}^{-1}$, ce qui est bien une écriture de A comme produit de matrices de transvection généralisées.
L'algorithme concerne donc les classes d'équivalence pour la relation $A\sim _{1}B$ si et seulement s'il existe $U,T\in Sl({\mathcal {A}})$ telles que A=TBU. Les facteurs invariants, définis à inversibles de ${\mathcal {A}}$ près, caractérisent en fait les classes pour la relation d'équivalence moins précise $A\sim _{2}B$ si et seulement s'il existe $U,T\in Gl({\mathcal {A}})$ telles que A=TBU. Pour trouver les invariants pour la relation $\sim _{1}$, il ne faut plus s'autoriser toutes les multiplications des facteurs invariants par des inversibles.
On rappelle que dans le cas d'un espace vectoriel, les classes d'équivalence de matrice étaient caractérisées par le rang. La situation est ici plus compliquée. Le rang apparaît notamment (comme le nombre de facteurs invariants), mais il ne suffit pas pour classifier ; en particulier, une matrice carrée de rang maximal peut ne pas être inversible : il suffit qu'un de ses facteurs invariants ne soit pas inversible.

### Algorithme

Il ne suffit pas d'effectuer d'abord un échelonnement en lignes puis un échelonnement en colonnes. On peut procéder comme suit ; on va utiliser le stathme sur l'anneau ${\mathcal {A}}$ :
* On se ramène d'abord (si c'est possible, c'est-à-dire si A est non nulle) au cas où le coefficient en position (1, 1) est non nul, et ce par permutations sur les lignes et les colonnes.
* On multiplie à gauche par des matrices de transvection (non généralisées), de façon à remplacer chaque coefficient $a_{1,j}$, $j\geq 2$ par son reste par la division euclidienne par $a_{1,1}$.
* On multiplie à droite par des matrices de transvection (non généralisées), de façon à remplacer chaque coefficient $a_{i,1}$ par son reste par la division euclidienne par $a_{1,1}$.
* Si jamais il y a un (et s'il y en a plusieurs, il est bon de choisir celui de stathme minimal, pour améliorer la vitesse de l'algorithme) coefficient non nul sur la première ligne ou la première colonne ailleurs qu'en position (1, 1), il est de stathme inférieur à celui du coefficient en position (1, 1), d'après les deux étapes précédentes. On effectue une (anti)-transposition sur les lignes ou sur les colonnes suivant le cas pour le mettre en position (1, 1).
On itère ces trois dernières étapes. À chaque passage, le stathme du coefficient a$_{1,1}$ diminue ; et le seul cas de stagnation est celui où tous les restes obtenus sont nuls : c'est-à-dire qu'on obtient une matrice dont la première ligne et la première colonne sont nulles, excepté le coefficient (1, 1). Puisque notre stathme est à valeurs dans les entiers naturels, on finit par tomber sur ce cas.
On a donc écrit $T_{1}AU_{1}={\begin{pmatrix}a_{1,1}&0\\0&A_{1}\\\end{pmatrix}}$ ; par récurrence sur les dimensions des matrices considérées, on obtient l'écriture souhaitée. Il reste à voir qu'on peut avoir la relation de divisibilité annoncée. Il suffit pour cela de faire la constatation suivante. À partir de la matrice ${\begin{pmatrix}p_{1}&0\\0&p_{2}\\\end{pmatrix}}$, on fait les opérations :
* Multiplier à droite par la matrice de transvection ${\begin{pmatrix}1&0\\1&1\\\end{pmatrix}}$ on obtient ${\begin{pmatrix}p_{1}&0\\p_{2}&p_{2}\\\end{pmatrix}}$
* Multiplier à gauche par la matrice de transvection généralisée ${\begin{pmatrix}\alpha &\beta \\-{\frac {p_{2}}{p}}&{\frac {p_{1}}{p}}\\\end{pmatrix}}$, où $p_{1}\alpha +p_{2}\beta =p=pgcd(p_{1},p_{2})$ pour obtenir :${\begin{pmatrix}p&\beta p_{2}\\0&{\frac {p_{1}p_{2}}{p}}\\\end{pmatrix}}$.
* Multiplier à droite par la matrice de transvection ${\begin{pmatrix}1&-\beta {\frac {p_{2}}{p}}\\0&1\\\end{pmatrix}}($$\beta {\frac {p_{2}}{p}}\in {\mathcal {A}}$ car $p\mid p_{2}$), et on obtient :
${\begin{pmatrix}p&0\\0&{\frac {p_{1}p_{2}}{p}}\\\end{pmatrix}}$, et $p\mid {\frac {p_{1}p_{2}}{p}}$.
Ainsi, par multiplication à droite et à gauche par des transvections généralisées, on peut remplacer une matrice diagonale par une matrice diagonale avec relations de divisibilité. Dans le cas général de notre matrice doublement échelonnée, on se ramène successivement à $p_{1}\mid p_{2}$, puis $p_{1}\mid p_{3}$, en conservant la relation précédente, jusqu'à avoir $p_{1}\mid p_{i}$ pour tout $i$ ; puis on s'occupe de $p_{2}$, etc.

### A-modules de type fini

Soit ${\mathcal {A}}$ un anneau euclidien, et M un ${\mathcal {A}}$-module de type fini ; alors, il existe un unique ensemble $\left\{(r,t),d_{1},\dots ,d_{t}\right\}$ tel que $r\in \mathbb {N}$ soit le rang de la partie libre du module M, t soit le cardinal d'un système minimal de générateurs de la partie de torsion, et $d_{1}\mid d_{2}\mid \dots \mid d_{t}$ soient des éléments de ${\mathcal {A}}$ définis à inversibles près, et tel que :
    $M\simeq {\mathcal {A}}^{r}\oplus {\mathcal {A}}/d_{1}{\mathcal {A}}\oplus \dots \oplus {\mathcal {A}}/d_{t}{\mathcal {A}}$
Pour déduire ce théorème des facteurs invariants sur les modules de celui sur les matrices, choisissons un système générateur fini du module M à n éléments ; il existe alors une surjection de ${\mathcal {A}}^{n}$ dans M ; le noyau N de cette surjection est un sous-${\mathcal {A}}$-module de ${\mathcal {A}}^{n}$ tel que $M\simeq {\mathcal {A}}^{n}/N$ ; la noethérianité de l'anneau ${\mathcal {A}}$ assure que ce noyau est à nouveau de type fini. Il admet un système de m générateurs ; et le module ${\mathcal {A}}^{m}$ se surjecte donc dessus. On obtient ainsi par composition un morphisme entre ${\mathcal {A}}^{m}$ et ${\mathcal {A}}^{n}$. Soit A la matrice de ce morphisme, dans la base canonique ; on trouve donc $M\simeq {\mathcal {A}}^{n}/A{\mathcal {A}}^{m}$. Il suffit alors d'écrire A=TEU pour des matrices T, U inversibles, et une matrice E doublement échelonnée ; on obtient $A{\mathcal {A}}^{m}\simeq E{\mathcal {A}}^{m}$ et donc <math$>M\simeq {\mathcal {A}}^{n}/E{\mathcal {A}}^{m}\simeq {\mathcal {A}}/d_{s+1}{\mathcal {A}}\oplus \dots \oplus {\mathcal {A}}/d_{s+t}{\mathcal {A}}\oplus {\mathcal {A}}^{r},$ pour $E={\begin{pmatrix}d_{1}&0&&\\0&\ddots &&\\&&d_{s+t}&\\&&&0\\\end{pmatrix}}$ avec $d_{1},\dots ,d_{s}$ inversibles, $d_{s+1}\mid \dots \mid d_{s+t}$ et $s+t+r=n$.
Ce théorème s'applique en particulier aux ℤ-modules de type fini, c'est-à-dire aux groupes abéliens de type fini. On dispose d'une part d'un théorème de classification, et d'autre part d'un algorithme pour calculer la classe d'un groupe dont on connaît un système de générateurs ainsi qu'une famille de relations entre ces générateurs, qui engendre l'ensemble des relations.

## Diviseurs élémentaires

Dans un anneau principal ${\mathcal {A}}$ (et a fortiori dans un anneau euclidien), les notions d'élément extrémal et d'élément premier coïncident. Soit $A\in M_{n,m}({\mathcal {A}})$ et $p_{1},...,p_{r}$ ses facteurs invariants. On peut décomposer les $p_{i}(1\leq i\leq r)$ en facteurs premiers :
       $p_{i}=\prod \limits _{j=1}^{n_{i}}q_{j}^{\alpha _{i}}$
où $\alpha _{i}\geq 0$ et les $q_{j}$ sont des éléments premiers deux à deux non associés (c'est-à-dire tels que ${\mathcal {A}}q_{j}\neq {\mathcal {A}}q_{k}$ pour $j\neq k$). Les $q_{j}^{\alpha _{i}}$ qui ne sont pas des unités s'appellent les diviseurs élémentaires de A. Alors
       ${\mathcal {A}}p_{i}=\bigcap \limits _{j=1}^{n_{i}}{\mathcal {A}}q_{j}^{\alpha _{j}}$
est la décomposition primaire de l'idéal ${\mathcal {A}}p_{i}$ et l'on a
       ${\mathcal {A}}/{\mathcal {A}}p_{i}\cong \bigoplus \limits _{j=1}^{n_{i}}{\mathcal {A}}/{\mathcal {A}}q_{j}^{\alpha _{j}}$.
Par conséquent, en notant ${\mathcal {T}}\left\{\bullet \right\}$ le sous-module de torsion du module entre accolades, on a, avec ${\rm {coker\left(\bullet A\right):={\mathcal {A}}^{1\times m}/{\mathcal {A}}^{1\times n}A}}$
       ${\mathcal {T}}\left\{{\rm {coker\left(\bullet A\right)}}\right\}\cong \bigoplus \limits _{i,j}{\mathcal {A}}/{\mathcal {A}}q_{j}^{\alpha _{i}}$
où les modules cycliques ${\mathcal {A}}/{\mathcal {A}}q_{j}^{\alpha _{i}}$ sont indécomposables, c'est-à-dire ne peuvent pas se mettre sous la forme d'une somme directe de deux modules tous deux non nuls. Les $q_{j}^{\alpha _{i}}$, ou les idéaux qu'ils engendrent, dont encore appelés les diviseurs élémentaires de ${\mathcal {T}}\left\{{\rm {coker\left(\bullet A\right)}}\right\}$. On dit d'autre part que module libre de type fini ${\mathcal {F}}={\rm {coker\left(\bullet A\right)/{\mathcal {T}}\left\{{\rm {coker\left(\bullet A\right)}}\right\}}}$ a pour diviseur élémentaire 0 avec un ordre de multiplicité $\rho$ égal à son rang. Puisque
       ${\rm {coker\left(\bullet A\right)\cong {\mathcal {T}}\left\{{\rm {coker\left(\bullet A\right)}}\right\}\oplus {\mathcal {F}}}}$
on dit encore que le module de type fini ${\rm {coker\left(\bullet A\right)}}$ a pour diviseurs élémentaires les $q_{j}^{\alpha _{i}}$ et 0, ce dernier avec pour ordre de multiplicité $\rho$.

## Anneau à diviseurs élémentaires

Le théorème des facteurs invariants s'étend au cas où ${\mathcal {A}}$ est un anneau principal, à condition de remplacer le groupe spécial linéaire par le groupe général linéaire, c'est-à-dire $Sl_{n}({\mathcal {A}})$ par $Gl_{n}({\mathcal {A}})$, ce qui revient à compléter les opérations élémentaires sur les lignes et les colonnes par les opérations secondaires.
Plus généralement, on appelle anneau à diviseurs élémentaires un anneau ${\mathcal {A}}$ sur lequel l'énoncé du théorème des facteurs invariants (avec le groupe spécial linéaire remplacé par le groupe général linéaire) est valide. Si l'on se restreint aux anneaux intègres, un anneau ${\mathcal {A}}$ est à diviseurs élémentaires si, et seulement si (i) il est (pseudo-)bézoutien et (ii) pour tous $a,b,c\in {\mathcal {A}}$ tels que $\left(a,b,c\right)=1$ (où $\left(.\right)$ est le pgcd des éléments entre parenthèses), il existe $p,q\in {\mathcal {A}}$ tels que $\left(pa,pb+qc\right)=1$. L'ensemble des fonctions entières dans ℂ est un anneau à diviseurs élémentaires. Sur un anneau à diviseurs élémentaires ${\mathcal {A}}$, un ${\mathcal {A}}$-module M de présentation finie a la structure indiquée ci-dessus où $r$ et les $d_{i}\left(1\leq i\leq t\right)$ sont uniques, ces derniers à la multiplication près par des unités de ${\mathcal {A}}$.

## Application aux invariants de similitude

Soit K un corps commutatif, E, un K-espace vectoriel de dimension finie, et $u\in {\mathcal {L}}(E)$ un endomorphisme de E.
Cette donnée de u est en fait équivalente à la donnée d'une structure de K[X]-module sur E : si P est un polynôme de K[X] et x un élément de E, alors P agit sur x par :
$P.x=P(u)(x).$
L'anneau K[X] étant euclidien, le théorème des facteurs invariants assure l'existence d'un isomorphisme de K[X]-modules :
$E\simeq K[X]/(P_{1})\oplus \dots \oplus K[X]/(P_{t})$
avec $P_{1}\mid \dots \mid P_{t}$. On remarque qu'il ne peut y avoir de partie K[X]-libre, puisque l'espace E est de K-dimension finie. Notons pour chaque $i$ : $d_{i}=deg(P_{i})$. Soit $\{x_{1},\dots ,x_{t}\}$ la partie K[X]-génératrice de E déduite par l'isomorphisme précédent de la partie K[X]-génératrice canonique du module de droite : $x_{i}$ correspond à $(0,\dots ,{\bar {1}},\dots ,0)$, où la classe de 1 apparaît sur la i-ème composante. Alors, la famille :
    $(x_{1},u(x_{1}),\dots ,u^{d_{1}-1}(x_{1}),x_{2},\dots ,u^{d_{2}-1}(x_{2}),\dots ,x_{t},\dots ,u^{d_{t}-1}(x_{t}))$
constitue une K-base de E. La matrice de l'endomorphisme u dans cette base est :
${\begin{pmatrix}{\mathcal {C}}_{P_{1}}&&\\&\ddots &\\&&{\mathcal {C}}_{P_{t}}\\\end{pmatrix}}$
où chaque ${\mathcal {C}}_{P_{i}}$ est la matrice compagnon du polynôme P$_i$. La particularisation du théorème des facteurs invariants dans ce cadre est parfois appelé théorème de Frobenius.
Cette décomposition permet de trouver des polynômes annulateurs de l'endomorphisme u ; en effet, pour tout i, $P_{i}(u)(x_{i})=0$ ; et donc, par la relation de divisibilité : $P_{t}(u)=0$. Par ailleurs, la famille $(x_{t},\dots ,u^{d_{t}-1}(x_{t}))$ étant K-libre, aucun polynôme de degré inférieur à $d_{t}$ ne peut annuler u. Ainsi, le polynôme P$_t$ est le polynôme minimal de u ; et le polynôme $P_{1}\dots P_{t}$ est son polynôme caractéristique.

### Théorème

La suite $P_{1},\dots ,P_{t}$ (avec relations de divisibilité, polynômes choisis unitaires) caractérise la classe de similitude d'un endomorphisme (ou d'une matrice). On l'appelle suite des invariants de similitude de l'endomorphisme (ou d'une matrice).

### Calcul des invariants de similitude

En pratique, la suite des invariants de similitude d'une matrice $A\in M_{n}(K)$ se calcule en remarquant qu'elle se déduit de la suite des facteurs invariants de la matrice $A-X.I_{n}\in M_{n}(K[X])$, en enlevant de celle-ci les facteurs invariants inversibles (c'est-à-dire les polynômes constants non nuls).
En effet, la matrice A étant semblable, dans $M_{n}(K)$, à la matrice $C={\begin{pmatrix}{\mathcal {C}}_{P_{1}}&&\\&\ddots &\\&&{\mathcal {C}}_{P_{t}}\\\end{pmatrix}}$, où les $P_{1},\dots ,P_{t}$ sont les invariants de similitude de A, les matrices $A-X.I_{n}$ et $C-X.I_{n}$ sont a fortiori semblables dans $M_{n}(K[X])$, et a fortiori équivalentes dans cet espace. Par opérations élémentaires, on vérifie que chaque bloc diagonal ${\mathcal {C}}_{P_{i}}-X.I_{n}$ de $C-X.I_{n}$ est équivalent dans $M_{d_{i}}(K[X])$ à la matrice diagonale ${\begin{pmatrix}P_{i}&&&\\&1&&\\&&\ddots &\\&&&1\\\end{pmatrix}}$ ; ainsi $C-X.I_{n}$ et donc $A-X.I_{n}$ ont pour facteurs invariants non inversibles dans $K[X]$ : $P_{1},\dots ,P_{t}$.