Forme de Smith
Forme de Smith
Forme de Smith
III-1 Définitions
III-1 Définitions
Définition
0
Une matrice (0 ∣ D) ou ( ) est dans une forme normale de Smith (SNF) si D est
D
Algèbre linéaire sur → III Forme normale de Smith → III-2 Forme normale de Smith d'une matrice
Si A est une matrice n × n à coefficients dans Z non singulière, il existe des matrices
U et V unimodulaires (à coefficients dans Z de déterminant 1) tels que U A V soit une
matrice diagonale à coefficients dans Z, de diagonale d1, . . . , dn tels que dn ∣. . . ∣ d1.
Théorème
Soit A une matrice entière n × m. Il existe des matrices U et V unimodulaires et une
unique matrice S de Smith telles que
0 ∣ 0
UA V = S = ( )
0 ∣ D
Théorème [Traduction]
L'ensemble des matrices SNF n × m forment un système de représentants de
GLn (Z)\Mn×m (Z)/ GLm (Z)
Algèbre linéaire sur → III Forme normale de Smith → III-3 Comment calculer la forme de Smith
Une première méthode est ... d'utiliser les très bons calculateurs qui existent (Pari/GP, ..).
Nous n'implémenterons pas les algorithmes ici. Regardons simplement le cas des matrices
2 × 2, qui montre bien les difficultés. Pensez à réinterpréter les multiplications par des
matrices comme des opérations sur les lignes ou les colonnes pour comprendre ce qu'on
fait.
a b
Partons de la matrice ( ). Soit d1 le pgcd de b et d. Si d1 = d, c'est-à-dire si d divise
c d
1 −b/d
b, on multiplie à gauche par la matrice ( ) :
0 1
1 −b/d a b a1 0
( )( ) = ( )
0 1 c d c d
b
s =−
Si d1 est différent de d (on a donc d1 ≤∣ d ∣ /2), en utilisant bu + dv = d1,
d1
,
d
t = on obtient
d1
t s a b a1 0
( )( ) = ( )
u v c d c1 d1
b 0 0
(on remplace donc la colonne ( ) par ( ) = ( )). Si d1 divise c1, on
d d1 pgcd(b, d)
1 0 * 0
multiplie à droite par ( ) pour obtenir une matrice diagonale ( ).
−c1/d1 1 0 d1
Ces matrices sont composées d'opérations élémentaires comme le montrent les produits
suivants :
bv/d u 1 u 1 0
( ) = ( )( )
−a/d 1 0 1 −a/d 1
et
b/d −au/d 1 b/d 0 −1 1 v
( ) = ( )( )( )
1 v 0 1 1 0 0 1
Exercice
Trouver une matrice 2 × 2 pour laquelle le nombre d'opérations à faire pour obtenir
sa matrice de Smith est grand.
Algorithme
Calculer l'ensemble des solutions entières du système diophantien AX = B avec A et
B des matrices à coefficients dans Z. Ici, X est un vecteur colonne.
Solution
Il s'agit de calculer l'ensemble des solutions entières d'un système
AX = B.
Si B est nul, c'est aussi le noyau de l'application linéaire de Z-modules donnée par A
dans la base canonique.
Utilisons la forme normale de Smith (pour le noyau, la forme normale d'Hermite
suffirait).
Soit U AV = S la forme normale de Smith. Résoudre en entiers AX = B est
équivalent à résoudre SY =
X = V Y et. Le système SY
de finir la résolution.
Exercice
C
⎪
⎨
⎩
en entiers avec C =
= C est de la forme :
⎧ d1yn−t+1
...
dtyn
=
=
U B,
cn−t+1
...
cn
le lien étant donné par
Lorsqu'une solution existe, ce qui se vérifie facilement sur C , il est maintenant facile
Algorithme
Calculer l'ensemble des solutions entières du système modulaire
Solution
matrice (A ∣ DM ).
AX ≡ B mod M
Dans le cas où A est la matrice identité et où M est une matrice colonne dont les
coefficients sont premiers deux à deux, l'existence et l'unicité d'une solution est donnée
par le lemme chinois. Donnez une méthode pour trouver toutes les solutions de la
congruence vectorielle X ≡ B mod M . L'appliquer sur des exemples.
Exercice
Des exemples traités : exemple