• Aucun résultat trouvé

Systèmes linéaires diophantiens 0. Rappels. 1. Equivalence de matrices. 2. Opérations élémentaires. 3. Exemples et applications. 4. Retombées théoriques. 5. Similitude matricielle dans M

N/A
N/A
Protected

Academic year: 2022

Partager "Systèmes linéaires diophantiens 0. Rappels. 1. Equivalence de matrices. 2. Opérations élémentaires. 3. Exemples et applications. 4. Retombées théoriques. 5. Similitude matricielle dans M"

Copied!
25
0
0

Texte intégral

(1)

Systèmes linéaires diophantiens

0. Rappels.

1. Equivalence de matrices.

2. Opérations élémentaires.

3. Exemples et applications.

4. Retombées théoriques.

5. Similitude matricielle dans Mn(k).

à la mémoire de ma mère, Pierre-Jean Hormière

___________

« Quand je dois me souvenir d’une époque passée, je cherche de qui je pouvais être amoureux à ce moment-là. » Alan Turing

Introduction

« Un coq coûte 5 pièces, une poule 4 pièces, et un poussin ¼ de pièce. Combien de coqs, de poules et de poussins emporterez-vous en achetant 100 volailles pour 100 pièces ? »

Ce casse-tête fut posé par le mathématicien chinois Zhen Luan au VIe siècle. Il en existe diverses versions. En voici une, donnée par l’égyptien Abu Kamil au IXe siècle :

« Des canards, des pigeons et des poulets coûtent respectivement 2 dirhams l’unité, 1 dirham les deux et 1 dirham les trois. Combien de canards, de pigeons et de poulets emporterez-vous en achetant 100 volatiles pour 100 dirhams ? ».

Mais le grand Archimède avait précédé Zhen Luan et Abu Khamil en posant un casse-tête autrement plus compliqué : le problème des bœufs du Soleil. Si on les considère de manière suffisamment générale, la résolution de ces problèmes conduit au sujet de ce chapitre.

Comment résoudre un système linéaire à coefficients et inconnues dans Z, et plus généralement dans un anneau euclidien A ? On peut bien sûr résoudre ce système dans Q, ou plus généralement dans K, corps des fractions de A, puis chercher parmi les solutions, celles qui sont dans A, mais cette méthode n’est pertinente que dans un petit nombre de cas. Il est préférable de mener tous les calculs en restant dans A. C’est ce problème concret que nous allons résoudre ici, sans nous embarquer dans les A-modules, fussent-ils « libres de type fini », puisqu’on se place d’emblée dans les An rapportés à leurs bases canoniques. Les retombées théoriques seront évoquées ensuite.

Dans cet exposé élémentaire, l’approche déterminantielle précède l’approche algorithmique, et repose sur les formules de Cauchy-Binet. L’approche algorithmique généralise la méthode du pivot en n’autorisant que des additions, soustractions, multiplications, divisions euclidiennes et algo- rithmes d’Euclide étendus.

0. Rappels.

0.1. Anneaux euclidiens.

Rappelons qu’un anneau intègre est un anneau commutatif, non réduit à {0}, et sans diviseurs de 0.

Un anneau intègre A est dit euclidien qu’il existe une application ω : A' = A−{0} → N, appelée stathme, vérifiant les conditions suivantes :

(E1) ∀(a, b) A'×A' b divise a ⇒ ω(b) ≤ω(a) ;

(E2) ∀(a, b) ∈ A×A' ∃(q, r) ∈ A×A a = b.q + r et , soit r = 0 , soit ω(r) < ω(b).

(2)

Exemples :

1) Un corps commutatif k est un anneau euclidien trivial.

On peut prendre pour stathme toute application constante ω : k* N. Tous les éléments de k* sont associés, les seuls idéaux de k sont {0} et k : ils sont bien principaux. Il n’y a pas d’éléments premiers : la théorie de la divisibilité est triviale mais juste.

2) L’anneau Z est euclidien. Prenons en effet pour stathme ω(a) = |a| . On sait que : (E1) ∀(a, b) Z'×Z' b divise a |b| |a| ;

(E2) ∀(a, b) ∈ Z×Z' ∃!(q, r) ∈ Z×Z a = b.q + r et 0 ≤ r < |b| .

C’est la division euclidienne usuelle. Si l’on impose à r de vérifier seulement |r| < |b|, on perd l’unicité du couple (q, r). Mais on peut aussi prendre pour stathme ω(a) = |a|/2 . On tombe alors sur la division centrée de Gauss, avec reste minimal.

Exemples : 26 et 7 ont pour quotient et reste euclidiens 3 et 5, quotient et reste de Gauss 4 et −2.

3) L’anneau k[X] des polynômes à une indéterminée à coefficients dans le corps commutatif k est intègre. Ses inversibles sont les polynômes constants non nuls. De plus, k[X] est euclidien pour le stathme ω : P → deg P. La division euclidienne s’effectue selon les puissances décroissantes.

On convient souvent que deg 0 = −∞, afin de conserver la formule deg(P.Q) = deg(P) + deg(Q).

Le quotient et le reste euclidiens sont uniques.

4) L’anneau k[[X]] des séries formelles à une indéterminée sur le corps k est intègre.

Ses éléments inversibles sont les séries formelles A =

≥0 n

nXn

a de valuation 0, i.e. telles que a00.

L’application ω définie par ω(A) = val(A) = min{n ; an 0} si A 0 , ω(0) = −∞ , est un stathme euclidien sur k[[X]]. (E1) est facile ; (E2) découle de la division selon les puissances croissantes.

5) L’anneau Z[i] = { z = x + iy ; (x, y) Z×Z } des entiers de Gauss est euclidien pour le stathme z → x2 + y2. Ses inversibles sont ± 1 et ± i. (voir mon chapitre sur les théorèmes des 2, 3 et 4 carrés).

6) Les anneaux Z[ 2 ] = {α = x + y 2 ; (x, y) Z×Z} et Z[ 3 ] = {α = x + y 3 ; (x, y) Z×Z}

sont euclidiens pour les stathmes respectifs α→ | x2 2y2 | et α→ | x2 3y2 |.

7) L’anneau Z[ 5 ] = { z = x + y 5 ; (x, y) Z×Z } n’est pas euclidien (ni même factoriel), en revanche, l’anneau Z[ϕ] = { z = x + yϕ ; (x, y) ∈ Z×Z }, où ϕ =

2 5

1+ est le nombre d’or, l’est.

(voir mon chapitre sur la suite de Fibonacci et le nombre d’or).

0.2. Formule de Cauchy-Binet.

Soit K un corps commutatif. Pour toute matrice A = (aij) ∈ Mn,p(K) et tout couple (I, J) de parties de [1, n] et [1, p] resp., on note AIJ la sous-matrice de A obtenue en barrant les lignes d’indice i ∉ I et les colonnes d’indice j ∉ J.

Théorème : Soient A ∈ Mn,p(K), B ∈ Mp,q(K) et C = A.B ∈ Mn,q(K).

Si 1 ≤ m ≤ inf(n, q), I ⊂ [1, n], K ⊂ [1, q], card I = card K = m, alors : det CIK =

=

p cardJ m J

JK

IJ B

A

], , 1 [

det .

det (formule de Cauchy-Binet) .

1ère méthode : noter que les colonnes c1, ... , cn de C sont des combinaisons linéaires des colonnes a1, ... , ap de A, et développer par multilinéarité.

2ème méthode : considérer le produit de matrices blocs 



I B O

A . 

 I O

B

I , et développer la première matrice par la règle de Laplace.

(3)

0.3. Notations.

Dans tout ce chapitre, A désigne un anneau euclidien de stathme ω, U le groupe multiplicatif des inversibles de A, K le corps des fractions de l’anneau A. On note a | b la relation de divisibilité dans A. On note Mn,p(A) l’ensemble des matrices à n lignes et p colonnes à éléments dans A, Mn(A) l’anneau des matrices carrées d’ordre n à éléments dans A, Gln(A) le groupe multiplicatif des éléments inversibles de cet l’anneau.

Exemples : 1) A = Z, U = {±1}, K = Q, ω(n) = |n|.

2) A = k[X], k corps commutatif, U = k*, K = k(X), ω(P) = deg(P).

3) A = Z[i], U = { ±1, ±i }, K = Q[i], ω(z) = |z|2.

La résolution des systèmes d’une équation à plusieurs inconnues a déjà été vue : Proposition : Soient a1, ..., an, c des éléments de A. Pour que l’équation :

a1.x1+ ... + an.xn= c ait au moins une solution, il faut et il suffit que pgcd( a1, ..., an ) | c.

En pratique, on résout ces équations grâce à l’algorithme d’Euclide étendu, et répété.

Notons que, résoudre dans Zn l’équation a1.x1 + ... + an.xn = c revient à chercher les points à coordonnées entières d’un hyperplan.

1. Equivalence des matrices.

Proposition 1 : Soit A ∈ Mn(A). On a l’équivalence A ∈ Gln(A) ⇔ det A ∈ U.

Preuve : Soit A ∈ Gln(A), d’inverse B ∈ Mn(A). On a det(A).det(B) = 1, donc det A est un élément inversible de l’anneau A.

Réciproquement, si det(A) ∈ U, det(A) est non nul, donc A est inversible dans Mn(K). Son inverse est A−1 =

) det(

) ( A

A com

t

. Comme l’inverse de det(A) appartient à A, A−1 ∈ Mn(A) et A ∈ Gln(A).

Définition 1 : Deux matrices A et B ∈ Mn,p(A) sont dites équivalentes si : ∃P ∈ Gln(A) ∃Q ∈ Glp(A) B = P.A.Q.

Cette relation, notée RRRR, est une relation d’équivalence dans Mn,p(A).

Définition 2 : On appelle contenu d’une matrice A ∈ Mn,p(A), et on note c(A), le (un) pgcd de ses éléments.

Il découle de cette définition que A s’écrit sous la forme c(A).A’, où A’ est de contenu 1.

Proposition 2 : Soient A et B ∈ Mn,p(A). Si A RRRR B : i) A et B ont même rang en tant qu’éléments de Mn,p(K) ; ii) A et B ont même contenu : c(A) = c(B) ;

iii) Plus généralement, pour tout 1 ≤ m inf(n, p), on a : δm(A) = δm(B), où δm(A) désigne le pgcd des mineurs d’ordre m de A. [ Avec ces notations, c(A) = δ1(A) ].

Preuve : i) Si A et B sont équivalentes en tant qu’éléments de Mn,p(A), elles sont équivalentes en tant qu’éléments de Mn,p(K), donc elles ont même rang.

ii) La relation B = P.A.Q implique ∀(p, s) bps =

r q

rs qr pqa q p

,

.

. .

Le pgcd des aij divise bps , donc c(A) divise c(B) ; il suffit ensuite d’échanger les rôles de A et B.

(4)

iii) Soient I une partie à m éléments de [1, n], L une partie à m éléments de [1, p]. En vertu de Cauchy-Binet, det(BIL) =

K J

L K K

J J

I A Q

P

,

, ,

, ).det( ).det( )

det( , card(J) = card(K) = m.

δm(A) divise les det(AJ,K), donc les det(BI,L) : ainsi δm(A) | δm(B) ; de même δm(B) | δm(A).

Si m > r, on a δm(A) = δm(B) = 0 ; si 1 ≤ m ≤ r, l’un des mineurs d’ordre m est non nul, donc δm(B) et δm(A) sont non nuls. Ils sont égaux, à associé près bien entendu.

NB : Dans Z, on choisira le pgcd > 0, dans k[X] le pgcd unitaire ; on aura alors δm(A) = δm(B) pour tout m.

Proposition 3 : Soient D =





O O

O

d O d

O d

r

...

...

...

...

...

0 0

...

0 0

...

0 0

2 1

et D’ =





O O

O

d O d

O d

s

...

' ...

...

...

...

0 0

...

0 ' 0

...

0 0 '

2 1

deux matrices de

Mn,p(A) vérifiant : d1 | d2 | … | dr et d’1 | d’2 | … | d’s , les di et d’j étant ≠ 0.

Alors D RRRR D’ ⇔ s = r et (∀i)

i i

d

d' ∈ U.

Preuve : Le sens ⇐ est facile est laissé en exercice.

Montrons ⇒. En vertu de la prop. 2, D RRRR D’ implique rg(D) = rg(D’), c’est-à-dire r = s, et δm(D) = δm(D’) pour tout 1 ≤ m ≤ inf(n, p). Or les mineurs d’ordre m de D sont 0 et les produits

im

i d

d ...

1

(1 ≤ i1 < i2 < … < im ≤ r ). Leur pgcd est le produit d1 … dm.

Ainsi d1 … dm = vm.d’1 … d’m , où vm ∈ U. On en déduit que di = ui.d’i , où ui ∈ U.

NB : Si A = Z, on peut supposer les di > 0 ; si A = k[X] on les suppose unitaires. Dans les deux cas, di = d’i pour tout i.

Définition 3 : Si A ∈ Mn,p(A) est non nulle, on appelle stathme de A ω(A) = min{ ω(aij) ; aij≠ 0 }.

Théorème 4 : Toute matrice A ∈ Mn,p(A) est équivalente à O ou à D =









O O

O

d O d

O d

r

...

...

...

...

...

0 0

...

0 0

...

0 0

2 1

,

où r est le rang de A ∈ Mn,p(K), d1 | d2 | … | dr , les di étant ≠ 0.

Preuve : raisonnons par récurrence sur s = sup(n, p). Si s = 1, A = (a11) et le résultat est évident.

Supposons le résultat vrai de toute matrice telle que s’ < s.

Soit A une matrice telle que sup(n, p) = s. Supposons-la non nulle ; soit ω(A) son stathme.

Parmi toutes les matrices équivalentes à A, il en existe au moins une, B, telle que ω(B) soit minimum. Quitte à permuter lignes et colonnes (ce qui ne modifie pas l’équivalence), on peut supposer que ω(B) = ω(b11).

Montrons que b11 divise tous les bi1 et tous les b1j . Soit bi1 = qi.b11 + ri , ri = 0 ou ω(ri) < ω(b11).





1 0 ...

...

...

...

1 0 ...

0 1

2

O q q

n

.B =





n np n

p p

b b r

b b r

b b b

' '

...

...

...

...

' ...

' ' ...

'

2 2 22 2

1 12 11

= B’.

On a B RRRR B’ et la minimalité de ω(b11) implique r2 = … = rn = 0. Idem avec les colonnes.

(5)

Ainsi, B RRRR



 '

11

A O

O

b = B’’. Par hypothèse de récurrence, il existe P’ ∈ Gln1(A) et Q’ ∈ Glp1(A)

telles que P’.A’.Q’ =





O O

O

d O d

O d

r

...

...

...

...

...

0 0

...

0 0

...

0 0

3 2

, où d2 | d3 | … | dr , les di étant ≠ 0.

Alors P = 

 ' 1

P O

O et Q = 

 ' 1

Q O

O vérifient P.B’’Q =









O O

O

d O d

O b

r

...

...

...

...

...

0 0

...

0 0

...

0 0

2 11

= D.

Attention à ne pas crier victoire trop tôt ! Il reste à montrer que b11 = d1 divise d2 . Pour cela, divisons d2 par d1 : d2 = d1.q + r, avec r = 0 ou ω(r) < ω(d1).

DR





O O

O

d O d

d

O d

r

...

...

...

...

...

0 0

...

0 ...

0 0

2 1 1

=









−

1 0 ...

0 1 ...

...

...

...

0 0

...

0 1 1

...

0 0 1

O O

O O

.D = D’ RRRR D’.









1 0 ...

0 1 ...

...

...

...

0 0

...

0 1 0

...

0 1

O O

O O q

=





− −

O O

O

d O r

d

O qd

d

r

...

...

...

...

...

0 0

...

0 ...

0

1 1 1

= D’’

Si r était non nul, on aurait ω(D’’) ≤ ω(r) < ω(d1), contredisant la minimalité de ω(d1) = ω(b11).

Donc r = 0. Cqfd.

Théorème 5 : Toute matrice A ∈ Mn,p(A) est équivalente à O ou à D =









O O

O

d O d

O d

r

...

...

...

...

...

0 0

...

0 0

...

0 0

2 1

,

où r est le rang de A ∈ Mn,p(K), d1 | d2 | …| dr , les di étant ≠ 0. D est essentiellement unique : les di sont définis à associés près. Si A est non nulle, on a ∀m ∈ [1, r] δm(A) = d1…dm.

Preuve : Ce théorème découle des trois propositions précédentes.

Définition 3 : D est appelée réduite de Smith 1 de la matrice A, les di sont les facteurs invariants de A, les quotients di / di1 ses diviseurs élémentaires.

1 Henry John Stephen SMITH (Dublin 1826 - Oxford 1883), mathématicien britannique. Sa famille quitte l’Irlande en 1841 pour s’installer à Rugby. Jusqu’à l’âge de 15 ans, il est éduqué par une mère très cultivée.

Après trois ans au lycée de Rugby, il passe un an en Italie pour raisons de santé, suivant des cours particuliers.

A 19 ans il est admis au Balliol College d’Oxford, mais sa santé ne lui permet pas de s’y rendre, et il passe quelques années à Paris, où il suit des cours à la Sorbonne et au Collège de France, avant de regagner Oxford.

Fellow, puis tutor à Balliol, il est élu en 1860 professeur de géométrie parmi de nombreux postulants, parmi lesquels George Boole. En 1861 il devient membre de la Royal Society et en 1877 président du conseil météorologique de Londres. Esprit éclectique et mondain, il ne met pas tout son génie au service des mathématiques.

Les travaux de Smith concernent la théorie des nombres, les fonctions elliptiques, les formes quadratiques et la résolution des systèmes d’équations linéaires à coefficients et inconnues dans Z. De 1859 à 1865, Smith prépare un rapport en 5 parties sur la Théorie des nombres ; il y analyse les travaux des autres mathématiciens, mais ajoute beaucoup de résultats de son cru. Il introduit en 1861 l’étude de la matrice du système augmentée de la colonne du "second membre", et annonce la future programmation mathématique. En 1867, il publie un exposé complet de la théorie des formes quadratiques à n variables à coefficients entiers, démontrant et améliorant les assertions données sans preuve par Eisenstein. En 1868, ses Certain cubic and biquadratic

(6)

Corollaire : Pour que deux matrices A et B de Mn,p(A) soient équivalentes, il faut et il suffit qu’elles aient même rang r en tant qu’éléments de Mn,p(K) et que, pour tout 1 ≤ m ≤ r, δm(A) = δm(B). Théorème 6 : Soient 1 p n, A ∈ Mn,p(A). Pour que l’on puisse compléter A en une matrice bloc  = (A | ∗) ∈ Gln(A), il faut et il suffit que δp(A) = 1.

En particulier, pour que t(a1, a2, … , an) ∈ An soit la première colonne d’une matrice A ∈ Gln(A), il faut et il suffit que (a1, a2, … , an) soient premiers entre eux dans leur ensemble.

Preuve :

• Si on peut compléter A en  = (A | ∗) ∈ Gln(A), alors δp(A) | δp(Â) | δn(Â) = 1, doncδp(A) = 1.

• Si δp(A) = 1, alors, en vertu du théorème 5, il existe P ∈ Gln(A) et Q ∈ Glp(A) telles que P.A.Q = D = 

 O

Ip ∈ Mn,p(A).

Soient D’ = 



p

InO ∈ M

n,np(A), de sorte que [D | D’] = In, et R = P1.D’.

On vérifie que P.[A | R]. 



p

In

O O

Q = In, donc Â= (A | R) ∈ Gln(A). Cqfd.

Théorème 7 : Soit (S) un système linéaire à n équations et p inconnues, à coefficients et inconnues dans A.  a11.x1 + ... + a1p.xp = b1

(S)  . . .



an1.x1 + ... + anp.xp = bn

Le système (S) possède au moins une solution si et seulement si les matrices

A = 



n np p

a a

a a

...

...

...

...

...

1 1 11

et B =





p n np

p

b a a

b a a

...

...

...

...

...

...

1

1 1 11

ont même rang r et vérifient δm(A) = δm(B) pour 1 ≤ m ≤ r.

Preuve : • Si (S) a une solution, on a rg(A) = rg(B) et δm(B) | δm(A) pour 1 ≤ m ≤ r, car A est une sous-matrice de B. De plus, tout mineur de B est combinaison linéaire de mineurs de A, en vertu de B = A.





xp

x 1 ...

0

...

...

...

...

0 1 ...

1 1

et de la règle de Cauchy-Binet. Donc δm(A) | δm(B) et δm(A) = δm(B)

• Réciproquement, supposons rg(A) = rg(B) = r et δm(A) = δm(B) pour 1 ≤ m ≤ r (on suppose r ≠ 0, sinon il n’y a rien à montrer).

Il existe P ∈ Gln(A) et Q ∈ Glp(A) telles que P.A.Q = D =





O O

O

d O d

O d

r

...

...

...

...

...

0 0

...

0 0

...

0 0

2 1

, où d1 | d2 | … | dr .

Résoudre A.x = b équivaut à résoudre Dy = c, où c = P.b et y = Q−1.x.

Or B’ = P.B. 

 1 0

0

Q = P.[A | b]. 

 1 0

0

Q = [P.A.Q | P.b] =





n r

c O d

c c d

0

...

...

...

0 ...

0

2 1 1

est équivalente à B.

Elles ont même rang, ce qui impose cr+1 = ... = cn = 0. De plus, δm(A) = δm(B) pour 1 ≤ m ≤ r.

fonction non intégrable au sens de Riemann et dont l’ensemble des points de discontinuité est rare.

L’ensemble triadique introduit par Cantor en 1883 était déjà connu de Smith en 1875.

(7)

Donc δm(A) = d1…dm divise

m m m

c c d

c d

0 0

...

0 0 0

1 1

1 1

= d1 … dm1cm , i.e. dm divise cm .

Il existe ym tel que cm = dm.ym. Donc ∃y D.y = c. Le système A.x = b a donc des solutions.

Cas particulier : noyau et image de A.

1) Noyau de A. Avec les notations précédentes. A.x = 0 ⇔ D.y = 0, où D = P.A.Q et y = Q1.x..

Or D.y = 0 ⇔ y1 = … = yr = 0 ⇔ y ∈ {0}r×Ap−r.

Donc Ker(A) a pour A-base les p-r dernière colonnes de la matrice Q.

2) Image de A. y ∈ Im A ⇔ (∃x) y = A.x ⇔ (∃x) y = P1.D.Q1.x ⇔ (∃u) y = P1.D.u Cela équivaut à dire que d1 divise z1 , …, pr divise zr , et zr+1 = … = zn = 0 , où z = P.y.

Le problème posé est entièrement résolu, théoriquement du moins ; il ne reste plus qu’à l’aborder du point de vue algorithmique, et à adapter la méthode du pivot.

2. Opérations élémentaires.

Appelons opération élémentaire sur A ∈ Mn,p(A) :

• la permutation de deux lignes ou de deux colonnes de A ; elle se traduit resp. par A → Pij.A ou A

→ A.Pij, où Pij (i < j) est la matrice associée à la transposition (i, j).

• la multiplication d’une ligne ou colonne par un élément inversible ; elle se traduit resp. par A → Di(υ).A ou A → A.Di(υ), où Di(υ) = diag(1, ... , 1, υ, 1, ... , 1) (υ∈ U) .

• l’addition à une ligne (resp. colonne) d’une combinaison linéaire des autres lignes (resp. colonnes).

Elle se traduit resp. par A → Tij(α).A ou A → A.Tij(α), où Tij(α) = I + α.Eij (α ∈ A, i ≠ j) . Proposition 1 : La relation « A RRRR’ B B se déduit de A par une suite finie d’opérations élémen- taires » est une relation d’équivalence dans Mn,p(A), et A RRRR’ B ⇒ A RRRR B .

Avant d’énoncer le théorème général, commençons par traiter un exemple : Soient a et b deux éléments non nuls de l’anneau A.

Posons : d = a ∧∧∧∧ b , m = a ∨∨∨∨ b , a = da’ , b = db’ , 1 = a’p + b’q , m = da’b’ = a’b = ab’.

Je dis que A =





b a 0

0 RRRR





m d 0

0 = D.

On constate en effet que :





 −

' ' a b

q

p 



b a 0

0 



−1 ' ' 1

pa qb =





m d 0

0 .

ou encore que :





− −− ' '

1 a q b

p 



b a 0

0 



−− − p a q

b ' '

1 =





m d 0

0 .

Théorème 2 : Toute matrice A ∈ Mn,p(A) vérifie A = O ou A RRRR’ D, avec

D =









O O

O

d O d

O d

r

...

0 0

...

0 0

...

0 0

2 1

et d1 | d2 | …| dr , di≠ 0.

(8)

Preuve : Notons Hn le sous-groupe de Gln(A) engendré par les matrices élémentaires.

Le théorème 4 du § 1 n’utilise que des opérations élémentaires.

En modifiant légèrement sa preuve, on montre que ∃P ∈ Hn ∃Q ∈ Hp P.A.Q = D.

Corollaire : A RRRR B ⇔ A RRRR’ B , autrement dit, on peut ramener la matrice A à l’une de ses réduites de Smith en effectuant des opérations élémentaires sur ses lignes et ses colonnes.

Remarques : 1) La preuve ci-dessus n’est pas vraiment algorithmique, puisqu’on considère d’emblée une matrice B équivalente à A de stathme minimum. Cependant, il y a moyen de partir de A et de diminuer son stathme.

2) Si l’on ne s’autorise que des opérations élémentaires sur les lignes de A, on obtient des réduites échelonnées en lignes, appelées réduites d’Hermite de A. En transposant, on obtient les réduites échelonnées en colonnes.

Avec Maple, ces calculs peuvent être conduits grâce aux instructions ismith (si A = Z) et smith (si A

= Q[X]), qui affichent les réduites de Smith de A, r = rg A , d1 | d2 | …| dr , di 0, ihermite (si A = Z) et hermite (si A = Q[X]), qui affichent les réduites d’Hermite.

Voici un exemple de réduction d’une matrice aléatoire :

> with(linalg):

> A:=randmatrix(4,5);

:=

A













-88 -43 -73 25 4 -59 62 -55 25 9 40 61 40 -78 62

11 88 1 30 81

> B:=ihermite(A,U);evalm(U);det(U);multiply(U,A);

:=

B













1 0 0 131056 1886455 0 1 1 121467 1748632 0 0 3 28447 409830 0 0 0 163851 2358630













19245 -21119 5573 20420 17839 -19576 5166 18928 4181 -4588 1211 4436 24062 -26405 6968 25531

-1













1 0 0 131056 1886455 0 1 1 121467 1748632 0 0 3 28447 409830 0 0 0 163851 2358630

> C:=ismith(A,U,V);[eval(U),det(U),eval(V),det(V)];multiply(U,A,V);

:=

C













1 0 0 0 0

0 1 0 0 0

0 0 1 0 0

0 0 0 9 0

















, , ,













0 0 0 1

0 0 1 0

1 0 -5 -7 1 -1 -5 -7

1















 281895 3891705 4100009 -35059074 5025025

-19118 -263933 -278060 2377684 -340794 -343494 -4742110 -4995932 42720089 -6123080 -44105 -608892 -641483 5485305 -786210

3064 42299 44563 -381057 54617

-1

(9)













1 0 0 0 0

0 1 0 0 0

0 0 1 0 0

0 0 0 9 0

Considérons le système linéaire A.X = Y, où X = t(x ,y, z, u, v) et Y = t(a, b, c, d) . Il équivaut à X = V.X’ et C.X’ = U.Y, et est résoluble ssi 9 | a – b – 5c – 7d.

3. Exemples et applications.

3.1. Systèmes linéaires diophantiens.

Exercice 1 : Résoudre le casse-tête de Zhen Luan :

« Un coq coûte 5 pièces, une poule 4 pièces, et un poussin ¼ de pièce. Combien de coqs, de poules et de poussins emporterez-vous en achetant 100 volailles pour 100 pièces ? »

Solution : Notons x le nombre de coqs, y le nombre de poules et z le nombre de poussins.

On cherche à résoudre le système diophantien suivant :

x + y + z = 100 , 5x + 4y + z/4 = 100 , 0 ≤ x, y, z

Les deux premières équations forment un système diophantien, qui s’écrit : x + y + z = 100 , 20x + 16y + z = 400 .

Par soustraction, 19.x + 15.y = 300.

Comme 19.75 −15.75 = 300, il vient 19.( x – 75 ) + 15.( y + 75 ) = 0 x = 75 + 15.k , y = − 75 – 19.k , z = 100 + 4.k.

Les contraintes 0 ≤ x, y, z conduisent à deux solutions (x, y, z) = (0, 20, 80) et (15, 1, 84).

Bien entendu, on peut réduire la matrice





1 16 20

1 1

1 …

Exercice 2 : Résoudre le casse-tête d’Abu Kamil :

« Des canards, des pigeons et des poulets coûtent respectivement 2 dirhams l’unité, 1 dirham les deux et 1 dirham les trois. Combien de canards, de pigeons et de poulets emporterez-vous en achetant 100 volatiles pour 100 dirhams ? ».

Solution : Notons x le nombre de canards, y le nombre de pigeons et z le nombre de poulets.

On cherche à résoudre le système diophantien suivant :

x + y + z = 100 , 2x + y/2 + z/3 = 100 , 0 ≤ x, y, z Les deux premières équations forment un système diophantien, qui s’écrit : x + y + z = 100 , 12x + 3y + 2z = 600 .

Il a pour solutions (x, 400 – 10x, 9x – 300), où x décrit Z.

Les contraintes 0 ≤ x, y, z donnent pour solutions :

(x, y, z) = (40, 0, 6), (39, 10, 51), (38, 20, 42), (37, 30, 33), (36, 40, 24), (35, 50, 15), (34, 60, 6).

Bien entendu, on peut réduire la matrice



 2 3 12

1 1

1

Exercice 3 : Résoudre et discuter dans Z3 les systèmes suivants, où (a, b)Z2 : 2x + 8y + 6z = a 3x + 4y + 5z = a

4x – 2y + 10z = b 5x + 6y + 7z = b

(10)

Traitons avec Maple le premier système. On pourrait utiliser la commande « isolve », mais elle manque de transparence. Utilisons plutôt « ismith » ; on peut d’ailleurs en demander le programme (taper : verboseproc).

> with(linalg):A:=matrix(2,3,[2,8,6,4,-2,10]);

:=

A

 



2 8 6

4 -2 10

> S:=ismith(A,U,V);print(U);print(V);

:=

S

 



2 0 0

0 2 0

 



0 1 -1 1









-25 5 -23

-1 0 -1

10 -2 9

On a U.A.V = S. Le système A.X = B équivaut à S.X’ = U.B, où X = V.X’.

> multiply(U,array([a,b]));

[b, − + a b] b et a doivent être pairs, sans quoi le système est impossible.

> X:=multiply(V,array([b/2,-a/2+b/2,t]));

:=

X

 



, ,

10 b − 5 −

2a 23 t −1 −

2b t 4 b + + a 9 t vérification :

> multiply(A,X);

[a b, ] Exercice 4 : Résoudre dans Z les systèmes :

 x + 2.y + 3.z + 4.t = a  9.x – 36.y + 30.z = a  2.x + y − 3.z − t = 8  2.x + 3.y + 4.z + 5.t = b  − 3.x + 192.y – 180.z = b  x − y − 3.z + t = 1  3.x + 4.y + 5.z + 6.t = c  30.x – 180.y + 180.z = c  4.x – 4.y + 16.t = 16 Traitons le premier exemple avec Maple (ce n’est pas indispensable, car la condition a – 2b + c = 0 se devine vite).

> with(linalg):

> A:=matrix(3,4,[1,2,3,4,2,3,4,5,3,4,5,6]);

:=

A









1 2 3 4

2 3 4 5

3 4 5 6

> B:=ismith(A,U,V);[evalm(U),det(U),evalm(V),det(V)];

:=

B









1 0 0 0

0 1 0 0

0 0 0 0













, , ,









-3 2 0 2 -1 0 1 -2 1

-1













1 0 1 2

0 1 -2 -3

0 0 1 0

0 0 0 1

1

Pour que le système ait une solution, il faut et il suffit que a – 2b + c = 0.

(11)

Ses solutions sont alors

tz yx

=





 − −

1 0 0 0

0 1 0 0

3 2 1 0

2 1 0 1





− −+ uvb a b 2a 2 3

= 



− −+−+−+ uv u v b

aa b u v 3 2

23 2 2

Traitons avec Maple le deuxième exemple.

> with(linalg):A:=matrix(3,3,[9,-36,30,-36,192,-180,30,-180,180]);

:=

A









9 -36 30

-36 192 -180 30 -180 180

> S:=ismith(A,U,V);print(U);print(V);multiply(U,A,V);

:=

S









3 0 0

0 12 0

0 0 60









-3 0 1

18 4 -1 -10 -5 -3

> multiply(U,array([a,b,c]));

[− + 3 a c,18 a + 4 bc,−10 a5 b3 c]

Il faut et il suffit que 3 divise –3a + c, 12 divise 18a + 4b c, et 60 divise –10a 5b 3c.

Un examen attentif montre que cela équivaut à a = 3u, b = 12v, c = 30w, où u + w est pair.

> X:=multiply(V,array([-a+c/3,(18*a+4*b-c)/12,(-10*a-5*b-3*c)/60]));

:=

X

 



, ,

+ + a 1

3c 1

2b 1 + + 2a 1

4c 1

3b 1 + + 3a 1

5c 1 4b

> multiply(A,X);

[a b c, , ]

Exercice 5 : Soit A =





5 0 0 0

1 4 0 0

0 1 3 0

0 0 1 2

. Résoudre le système linéaire associé. Réduite de Smith ?

Soit G un groupe additif engendré par (a, b, c, d) tels que 2a + b = 0, 3b + c = 0, 4c + d = 0, 5d = 0.

Démontrer que G est monogène ; à quels groupes est-il isomorphe ?

Solution : La 2ème question peut se résoudre à la main. Car G est clairement engendré par a, et a vérifie en reportant 120.a = 0. La réciproque est immédiate.

Par conséquent, G est isomorphe à τ(120) = 16 groupes possibles :

Z/Z = {0} , Z/2Z , Z/3Z , Z/4Z , Z/5Z , Z/6Z , Z/8Z , Z/10Z , Z/12Z , Z/15Z , Z/20Z , Z/24Z , Z/30Z , Z/40Z , Z/60Z , Z/120Z.

> with(linalg):

> A:=matrix(4,4,[2,1,0,0,0,3,1,0,0,0,4,1,0,0,0,5]);

:=

A













2 1 0 0

0 3 1 0

0 0 4 1

0 0 0 5

> det(A);inverse(A);linsolve(A,vector([a,b,c,d]));

120









-5 -6 -30

1 1 0

1 1 1

(12)





















1 2

-1 6

1 24

-1 120

0 1

3 -1 12

1 60

0 0 1

4 -1 20

0 0 0 1

5

 



, , ,

− 1 + − + 120d 1

2a 1 6b 1

24c 1 + − 60d 1

3b 1

12c 1 − 4c 1

20d 1 5d

> B:=ismith(A,U,V);[evalm(U),det(U),evalm(V),det(V)];multiply(U,A,V);

:=

B













1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 120













, , ,













1 0 0 0

-3 1 0 0

12 -4 1 0

60 -20 5 -1 -1













0 0 0 1

1 0 0 -2

0 1 0 6

0 0 1 -24 -1













1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 120

> multiply(U,vector([a,b,c,d]));

[a,− + 3 a b,12 a − + 4 b c,− + d 60 a20 b + 5 c]

> multiply(V,inverse(B),U,vector([a,b,c,d]));

 



, , ,

− 1 + − + 120d 1

2a 1 6b 1

24c 1 + − 60d 1

3b 1

12c 1 − 4c 1

20d 1 5d Commentaires : on peut résoudre l’exercice élémentairement, en remontant.

Si X = t[x, y, z, t] et Y = t[a, b, c, d], AX = Y 2x + y = a , 3y + z = b , 4z + t = c , 5t = d.

Alors d doit être multiple de 5, c – t multiple de 4, b – z multiple de 3, enfin a – y multiple de 2.

Si on a recours aux réduites de Smith, AX = Y ⇔ ( X = VX’ et BX’ = UY ).

L’unique condition de résolubilité est alors 120 divise 60.a – 20.b + 5.c – d.

Problème 6 : Le problème des bœufs du Soleil, posé par Archimède à Eratosthène.

Le dieu du Soleil possédait un troupeau de bétail composé de taureaux et de vaches : une partie des bêtes était blanche, une autre noire, une troisième était tachetée et une quatrième brune. Pour ce qui est des taureaux, le nombre de blancs surpassait le nombre des bruns de la moitié plus un tiers du nombre de noirs ; le nombre de noirs était plus grand que le nombre de bruns d’un quart plus un cinquième du nombre des tachetés ; le nombre des tachetés dépassait le nombre des bruns d’un sixième plus un septième du nombre de blancs. En ce qui concerne les vaches, le nombre des blanches était égal à un tiers plus un quart du nombre total de bovins noirs ; le nombre de noires égalait un quart plus un cinquième du nombre de bêtes tachetées ; le nombre de tachetées valait un cinquième plus un sixième du nombre d’animaux bruns ; le nombre de brunes se montait à un sixième plus un septième du nombre total d’animaux blancs. Quelle était la composition du troupeau ?

Solution : Notons B, N, T, M le nombre des bœufs blancs, noirs, tachetés et bruns (marrons), b, n, t, m les nombres correspondants de vaches.

(13)

Il s’agit de résoudre dans N8 un système de 7 équations à 8 inconnues, de la forme A.X = 0, où X =

t(B, N, T, M, b, n, t, m) et A est la matrice :

:=

A

































6 -5 0 -6 0 0 0 0

0 20 -9 -20 0 0 0 0

-13 0 42 -42 0 0 0 0

0 -7 0 0 12 -7 0 0

0 0 -9 0 0 20 -9 0

0 0 0 -11 0 0 30 -11

-13 0 0 0 -13 0 0 42

Le noyau de A dans Q8est donné par :

> kernel(A);

{ }

 



, , , , , , ,

246821 83710

1243419 585970

367903 175791

125739 106540

17158 8371

815541

585970 1 1813071 1171940

On pourrait chercher son intersection avec Z8, mais il est plus profond de demander à Maple une réduite de Smith de A :

> S:=ismith(A,U,V);

:=

S

































1 0 0 0 0 0 0 0

0 1 0 0 0 0 0 0

0 0 1 0 0 0 0 0

0 0 0 1 0 0 0 0

0 0 0 0 1 0 0 0

0 0 0 0 0 1 0 0

0 0 0 0 0 0 315 0

U et V sont des matrices inversibles telles que U.A.V = S.

> k:=kernel(S);multiply(V,op(k));

:=

k {[0 0 0 0 0 0 0 1, , , , , , , ]}

[10366482 7460514 7358060 4149387 7206360 4893246 3515820 5439213, , , , , , , ] Les plus petits entiers solutions sont les suivants : 10 366 482 pour les taureaux blancs, 7 460 514 pour les noirs, 7 358 060 pour les tachetés et 4 149 387 pour les bruns. Les vaches blanches seraient au nombre de 7 206 360, les noires 4 893 246, les tachetées 3 515 820 et les brunes 5 439 213.

Remarque : Une formulation plus complète du problème, contenue dans un manuscrit grec découvert en 1773 par Lessing dans une bibliothèque du nord de l’Allemagne, ajoute que les taureaux blancs et noirs réunis peuvent être rangés en carré, les taureaux bruns et tachetés en triangle, conduisant à des équations de Fermat. 2

Exercice 7 : Trouver A ∈ Gln(Z), de déterminant 1, de première colonne

 

 43

2 , resp. 



 15106

, 

 105307042

.

Trouver des entiers a, b, c tels que





c b a 6 1

5 2

4

1 ∈ Sl3(Z).

Solution : Une procédure Maple fait ici merveille (« complétion »).

> with(linalg):

(14)

complete := procproc ( )procproc A local

local local local S;

:=

S ismith(A U V ;, , ) ≠

[ ]

S 1 1, 1 print `A n'est pas complétable en une matrice de Gl(n,Z)`( ) if

ifif

if thenthenthenthen

( )

print `A est complétable en`, inverse U( ) elseelseelse

else end if end ifend if end if end proc end proc end proc end proc

> A:=matrix(2,1,[233,377]);complete(A);

:=

A

 



233

377 A est complétable en,

 



233 -89 377 -144

> A:=matrix(3,1,[2,3,4]);complete(A);

:=

A









2 3 4

, A est complétable en









2 -1 0 3 -1 0 4 -2 1

> A:=matrix(3,1,[6,10,15]);complete(A);

:=

A









6 10 15

, A est complétable en









6 -2 -3 10 -3 -5 15 -5 -7

> A:=matrix(4,1,[30,42,70,105]);complete(A);

:=

A

















30 42 70 105

, A est complétable en

















30 -18 -10 -15 42 -25 -14 -21 70 -42 -23 -35 105 -63 -35 -52

> A:=matrix(3,1,[6,10,14]);complete(A);

:=

A









6 10 14

A n'est pas complétable en une matrice de Gl(n,Z)

> A:=matrix(3,2,[1,4,2,5,1,6]);complete(A);

:=

A









1 4

2 5

1 6

, A est complétable en









1 4 -2 2 5 -2 1 6 -3

Exercice 8 : Comment décider si un vecteur de An est combinaison linéaire d’une famille donnée ? Ex. : soient x =





− 121 1

, y =





 12 13

, z =





 32 53

, b =





 34 35

est-il combinaison linéaire de x, y, z dans Z4 ? 3.2. Systèmes linéaires polynomiaux.

Exercice 9 : Résoudre et discuter dans R[X] le système : ( X3− X ).A + 2X3.B = P

( X2 + 5X ).A + 3X.B = Q où (P, Q) ∈ R[X]2 sont donnés, et A et B sont les inconnues.

> with(linalg):

> A:=matrix(2,2,[X^3-X,2*X^3,X^2+5*X,3*X]);

(15)

:=

A

 



X3 X 2 X3 +

5 X X2 3 X

> B:=map(factor,smith(A,X,U,V));eval(U),det(U),eval(V),det(V);

:=

B









X 0

0 1

2X (2 X3 + 7 X2 + 3)









 1

24 5 −

24 1 24X + − −

39 16

1 2X 1

24X3 7

48X2 3 − − + + 16

59

48X2 1

16X3 1

24X4 1 16X

-1 , 2,









− + 3

8 1

12X2 1

8X − − 5 + 8

1

12X2 1 8X

1 1

1 ,

Exercice 10 : Réduite de Smith de A =





 +− + + +

1 2

² 1

1 1

²

X X X

X

X . Résoudre et discuter le système linéaire associé dans R[X].

> with(linalg):

> A:=matrix(2,2,[X^2-1,X+1,X+1,X^2+2*X+1]);

:=

A

 



X2 1 X + 1 +

X 1 X2 + 2X + 1

> B:=map(factor,smith(A,X,U,V));[eval(U),det(U),eval(V),det(V)];

map(simplify,multiply(U,A,V));

:=

B

 



+

X 1 0

0 (X + 1 () X2 − 2)

 



, , ,

 



1 0

+ −

X 3 X2 -1 -1 

 



1 1

2 X 1 − X -1

 



+

X 1 0

0 −2X − + + 2 X3 X2 Exercice 11 : Soit A =





X X X X

0 0 0

1 0 0

0 1 0

0 0 1

. Résoudre et discuter directement le système linéaire associé.

Réduite de Smith de A ? Généraliser.

> with(linalg) :A:=matrix(4,4,[X,1,0,0,0,X,1,0,0,0,X,1,0,0,0,X]);

:=

A













X 1 0 0

0 X 1 0

0 0 X 1

0 0 0 X

> B:=map(factor,smith(A,X,U,V));[eval(U),det(U),eval(V),det(V)];

map(simplify,multiply(U,A,V));

:=

B













1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 X4

(16)













, , ,













1 0 0 0

−X 1 0 0

X2 −X 1 0 X3 −X2 X -1

-1













0 0 0 1

1 0 0 −X 0 1 0 X2 0 0 1 −X3

-1













1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 X4 Exercice 12 : Réduites de Smith de





+−

− −

X X X X X

5 4 3 2 1

1 0

0 0

0 1 0 0

0 0 1 0

0 0 0 1

,





+

− + +

− + +

+

− +

+ − + − + − + − + + − +

+++ −− ++ − − ++ − ++ −− ++ ++ −− ++ 3

² 2 7

² 4 1

² 2 5

² 2

3 2

² 2 5 2

² 2 2 1 2

² 2 4 2

² 2

4 3

² 3 7 3

² 3 2 2 3

² 3 6 3

² 3

2

² 4

² 2

² 3

²

3 3

3 3

3 3

3 3

3 3

3 3

3 3

3 3

X X X X

X X X

X X X

X X

X X X X X X X X X X X X

X X X X X X X X X X X X

X X X X

X X X

X X X

X X

.

> with(linalg):

> A:=matrix(5,5,[X,-1,0,0,0,0,X,-1,0,0,0,0,X,-1,0,0,0,0,X,-1,1,2,3,4,5+X]);

:=

A

















X -1 0 0 0

0 X -1 0 0

0 0 X -1 0

0 0 0 X -1

1 2 3 4 5 + X

> B:=map(factor,smith(A,X,U,V));eval(U),det(U),eval(V),det(V);

:=

B

















1 0 0 0 0

0 1 0 0 0

0 0 1 0 0

0 0 0 1 0

0 0 0 0 1 + 2 X + 3 X2 + 4 X3 + 5 X4 + X5













-1 0 0 0 0

−X -1 0 0 0

−X2 −X -1 0 0

−X3 −X2 −X -1 0

+ + + +

2 3 X 4 X2 5 X3 X4 3 + 4 X + 5 X2 + X3 4 + 5 X + X2 5 + X 1 1 , ,

















0 0 0 0 1

1 0 0 0 X

0 1 0 0 X2 0 0 1 0 X3 0 0 0 1 X4

1 ,

Exercice 13 : Les matrices suivantes sont-elles équivalentes : A =





+ + +

+

+ + + + + +

+ + + + + +

+

X X X X X X

X X X X X X

X X X X X X

2

² 2 2 1 3

² 3 2

1 2

² 2 2

3

² 3

3 4

² 4 5 6

² 6

3 3

3 3

3 3

et B =





− + − + + −

++ + + + −

3

² 2 2

²

4 2

² 2 6 1 2

² 2 3

1

² 2

²

3 3

3 3

3 3

X X X X

X X

X X X X X X

X X X X

X X

Références

Documents relatifs

[r]

Vous justierez votre réponse par une

[r]

[r]

[r]

[r]

[r]

Il faut commencer par la ligne terminée par zéro et supprimer toutes les lettres identiques verticalement.. Par éliminations successives, vous devez parvenir facilement à