Polynômes et racines

Transcription

Polynômes et racines
Polynômes et racines
Christophe Ritzenthaler
1
Méthodes générales
1.1
Evaluation d’un polynôme
Soit P (X) = an X n + . . . + a1 X + a0 ∈ R[X]. Nous allons nous préoccuper du nombre
d’opérations élémentaires (multiplication et addition) nécessaires pour évaluer P en un nombre
réel. Si on effectue le calcul de manière basique, on a 2n − 1 multiplications et n additions.
1.1.1
Méthode de Horner
Ecrivons
an xn + . . . + a1 x + a0 = ((. . . (an x + an−1 )x + an−2 ) . . .) x + a0 .
On obtient n multiplications et additions.
1.1.2
Méthode du produit
Q
Si P (x) = a0 (x − αi ) avec tous les αi réels, on a également besoin de n multiplications
et additions.
1.1.3
Forme orthogonale
Pn
On écrit P (x) = k=0 bk Qk (x) où les polynômes Qi satisfont
Qi+1 = (Ai x + Bi )Qi (x) − Ci Qi−1 (x),
Ai 6= 0, Q0 = 1, Q−1 = 0.
L’évaluation requiert 3n − 1 multiplications et additions. Parmi les familles de polynômes
orthogonaux, on a les polynômes de Chebyshev, Tn qui sont le meilleur choix en terme
d’efficacité de l’évaluation. Rappelons que les polynômes de Chebyshev satisfont Tn (cos(x)) =
cos(nx) et sont donnés par la récurrence Ai = 2 pour i ≥ 1, A0 = 1 et Bi = 0, Ci = 1 pour
i ≥ 0.
1.1.4
Pré-processing
Si on désire évaluer le polynôme en plusieurs points, il peut être intéressant de s’autoriser
une modification des coefficients avant le début des calculs afin de simplifier ces derniers.
Ceci s’appelle le pré-processing. Considérons le cas d’un polynôme de degré 4. On écrit
a4 x4
+ a3 x3 + a2 x2 + a1 x + a0
= a4 ((x(x + α0 ) + α1 )(x(x + α0 ) + x + α2 ) + α3 )
4
3
= a4 x + a4 (2α0 + 1)x + a4 (α1 + α2 + α0 (α0 + 1))x
+ a4 ((α1 + α2 )α0 + α1 )x + a4 (α1 α2 + α3 ).
1
(1)
2
On peut alors trouver les αi en fonction des coefficients ai . La forme de (1) utilise 3 multiplications et 5 additions. Si, comme c’est souvent le cas, les multiplications sont plus coûteuses
que les additions, cet algorithme présente donc un avantage sur la méthode de Horner.
1.1.5
Quelques résultats théoriques
De nombreux résultats sont connus sur ce qu’on peut faire de mieux pour ce problème.
Théorème 1.1. Tout algorithme évaluant un polynôme P de degré n sans pré-processing a
besoin d’au moins n multiplications et n additions.
Ainsi dans ce cas l’algorithme de Horner est optimal.
Au contraire si on accepte le pré-processing, on a le résultat suivant.
Théorème 1.2. Il existe un algorithme explicite (de Belaga) pour l’évaluation d’un polynôme
en b(n + 1)/2c + 1 multiplications et n + 1 additions. Il n’existe pas d’algorithme avec moins
de b(n + 1)/2c multiplications ou moins de n additions.
On ne sait pas si le seuil peut être atteint ou non. L’algorithme de Belaga peut avoir
besoin de coefficients complexes. Il en existe un autre (l’algorithme de Pan) en bn/2c + 2
multiplications et n + 1 additions qui pour des coefficients de P ‘naturels’ a des paramètres
réels. Par la suite Rabin et Winograd ont donné une méthode en dn/2e + O(log n) multiplications/divisions et n + O(n) additions avec uniquement des coefficients réels.
1.1.6
Une question auxiliaire : la stabilité et le conditionnement
Grossièrement, un algorithme est dit numériquement instable s’il crée des erreurs d’arrondis qui augmentent de manière incontrôlé. Un autre concept est le mauvais conditionnement.
Un algorithme est mal conditionné si une petite incertitude sur les données d’entrées peut
créer une grande incertitude sur le résultat. Le tableau ci-dessous résume ces propriétés pour
les algorithmes d’évaluation.
Forme
Conditionnement
stabilité
Horner
peut être mal conditionné
peut être instable
Forme produit assez bien conditioné
stable
Chebyshev
bien conditionné
stable
Belaga
peut être mal conditionné
peut être très instable
Pan
Conj. : si petits Pan coef. alors bien conditionné peut être très instable.
1.2
1.2.1
Interpolation. Spline. Courbes de Bézier
Interpolation de Lagrange
Soient (x0 , y0 ), . . . , (xn , yn ) ∈ C2 avec les xi distincts. Il existe un unique polynôme F ∈
C[X] tel que F (xi ) = yi . Celui-ci est construit de la manière suivante. Soit
Qn
j=0 (X − xj )
bi =
, i = 0, . . . , n.
X − xi
Ces polynômes forment une base des polynômes de degré au plus n et ona facilement
F (X) =
n
X
i=0
yi
bi (X).
bi (xi )
Remarque 1. On peut bien sûr envisager des interpolations d’ordre supérieure.
2
1.2.2
Spline
Soient (x0 , y0 ), . . . , (xn , yn ) ∈ R2 avec les xi croissants distincts. Sur chacun des intervalles
[xi , xi+1 ], on considère un polynôme (habituellement de degré 3), (Pi )i=0,...,n−1 qui vérifient
les propriétés suivantes :
Pi (xi ) = yi ,
Pi (xi+1 ) = yi+1 ,
0
Pi0 (xi+1 ) = Pi+1
(xi+1 ),
00
Pi00 (xi+1 ) = Pi+1
(xi+1 ).
Ces conditions sont des conditions naturelles de recollement. On suppose parfois que la dérivée
seconde est nulle aux extrémités de l’intervalle pour permettre de prolonger par une fonction
affine en dehors de l’intervalle.
Ces fonctions sont utilisées dans les modélisations de courbes planes.
Remarque 2. Les points où la fonction change ne sont pas nécessairement les points de
contrôle. C’est ici une simplification.
1.2.3
Courbes de Bézier
voir texte.
2
Racines d’un polynôme
2.1
Calcul exact
Rappelons qu’il n’y a pas de formule permettant d’exprimer de manière générale les
racines d’un polynôme de degré 5 ou plus. Ce résultat est obtenu par la théorie de Galois.
Remarque 3. On peut se demander quelles sont les équations de degré 5 résolubles par
radicaux. Toute équation irréductible de degré 5 peut se mettre sous la forme x5 + ax + b = 0.
Celle-ci admet des solutions (Carl Runge, 1885) par radicaux si et seulement si il existe des
rationnels u, v tels que
a=
4u5 (2v + 1)(4v + 3)
5u4 (4v + 3)
,
b
=
.
v2 + 1
v2 + 1
5
Par √
exemple
− 5x4 √
− 10x3 − 10x2 − 5x − 1 admet comme unique solution réelle x =
√ x √
1 + 5 2 + 5 4 + 5 8 + 5 16. Quant à x5 − 5x + 12 elle admet également des solutions sous
formes de radicaux mais demande 600 symboles pour l’écrire.
2.1.1
Degré 2
Rappelons le résultat connu.
Proposition 2.1. Soit ax2 + bx + c un polynôme de degré 2. Les racines de ce polynômes
sont
√
−b ± b2 − 4ac
.
2a
2.1.2
Degré 3
Passons au degré 3. Soit x3 + ax2 + bx + c un polynôme unitaire de degré 3. On effectue
le changement de variable x = z − a/3 et on obtient une équation du type
z 3 + pz + q = 0,
p = b − a2 /3, q = 2a3 /27 − ab/3 + c.
On a deux cas possibles :
3
– p = 0. Dans ce cas l’équation s’écrit z 3 = −q qui admet trois solutions dans C qu’on
calcule en écrivant −q = ρ exp(iϑ).
– p 6= 0. On pose z = u + v et on obtient alors
u3 + v 3 + q + (3uv + p)(u + v) = 0.
On s’intérèsee au système suivant :
(
u3 + v 3 + q
3uv + p
=0
= 0.
Ce système est équivalent à
(
u6 + qu3 − p3 /27 = 0
v
= −p/3u.
Dans la première équation, on pose y = u3 et on a
y 2 + qy − p3 /27.
On calcule une solution y0 puis on remonte à u en prenant les 3 racines, puis à (u, v)
qui donne z et de là x.
Remarque 4. De l’identité
1
1
1
1
1
1
= 2 (1 + 2 )(1 + 4 )(1 + 8 )(1 + 16 ) · · ·
3
2
2
2
2
2
on peut déduire une méthode simple de calcul de la racine cubique en utilisant uniquement
les multiplications et la racine carrée sans mémoire : on presse le bouton racine carrée 2 fois
puis le bouton multiplication puis le bouton racine carrée 4 fois. Puis le bouton multiplication.
Puis le bouton racine carrée 8 fois,. . . .
2.1.3
Degré 4
Terminons avec le degré 4.
On part de l’équation x4 + ax3 + bx2 + cx + d = 0. On effectue le changement de variable
x = z − a/4. On obtient une équation réduite de la forme :
z 4 + pz 2 + qz + r = 0
avec
p = b − (3/8)a2 , q = c − ab/2 + (1/8)a3 , r = d − ac/4 + (1/16)ba2 − (3/256)a4 .
On a deux cas pour l’équation en z :
– q = 0. L’équation s’écrit z 4 + pz 2 + r = 0. C’est une équation bicarrée que l’on sait
résoudre.
– q 6= 0. L’équation s’écrit z 4 + pz 2 + qz + r = 0. On pose alors 2P − Q2 = p, −2QR = q
et P 2 − R2 = r.
On a alors (z 2 + P )2 − (Qz + R)2 = 0. Si l’on arrive à determiner un triplet (P0 , Q0 , R0 )
qui satisfait les conditions, alors trouver les solutions de l’équation réduite revient à
résoudre :
z 2 + P0 + Q0 z + R0 = 0, ou z 2 + P0 − Q0 z − R0 = 0.
4
Il reste donc à determiner P0 , Q0 et R0 . C’est

2

2P − Q
−2QR

 2
P − R2
à dire à résoudre le système
=p
=q
= r.
Ce système revient à :

2

Q
2
R


QR
= 2P − p
= P2 − r
= −q/2.
Ce qui revient à résoudre l’équation suivante en P :
P 3 − (p/2)P 2 − rP + (pr/2 − (1/8)q 2 ) = 0.
Puis on remonte à P, Q, R puis à z et enfin à x.
Remarque 5. Pour une explication sur ces méthodes par les fonctions élémentaires des
racines, voir [AF, p.436-450] ou [?, p.190].
2.2
2.2.1
Localisation
Rayon maximal
Soit P (X) = X n +an−1 X n−1 +. . .+a0 ∈ C[X] un polynôme unitaire de racines z1 , . . . , zn .
Soit r0 = max1≤k≤n |zk |. On a les majorations suivantes :
Proposition 2.2.
r0
≤
sup(1,
n−1
X
|ak |)
i=0
r0
<
r0
≤
1 + sup(|ak |)
sup (n|ak |)1/k
Démonstration. Ecrivons Q(X) = X n − |an−1 |X n−1 − . . . − −|a0 | = X n f (X) où f est une
fonction continue, strictement croissante et bijective de ]0, +∞[ dans ] − ∞, 1[. Elle admet
donc une unique racine réelle r > 0. Soit Z tel que |Z| = r0 . Puisque P (Z) = 0 on a
r0n ≤ |an−1 |r0n−1 + . . . + |a0 |.
Donc Q(r0 ) ≤ 0 et r0 ≤ r. Maintenant, si A est tel que
An > |an−1 |An−1 + . . . + |a0 |
alors A > r ≥ r0 . Dans le cas de la deuxième inégalité, on prend M = sup1≤k≤n (|ak |) et
A = 1+M d’où An = (A−1)(An−1 +. . .+1)+1 > |an−1 |An−1 +. . .+|a0 | donc r0 < 1+M .
Remarque 6. En considérant les polynômes X n P (X −1 ) et a0 6= 0, on obtient des minorations pour les zi . Par exemple
a0
.
inf |zk | ≥
1 + sup1≤k≤n (|an−k |)
Pour les polynômes réels, on dispose d’autres méthodes pour localiser les racines. On a
bien sûr le théorème des valeurs intermédiaires mais les suites de Sturm permettent d’obtenir
un meilleur résultat.
5
2.2.2
Les suites de Sturm
Ceci est extrait de [Fra, p.230].
Théorème 2.1. Soit a < b deux nombres réels et P0 , . . . , Ps une suite de polynômes réels
tels que
1. P0 (a)P0 (b) 6= 0 ;
2. Ps ne s’annule pas sur [a, b] ;
3. si 0 < j < s et c ∈ [a, b] tel que Pj (c) = 0 alors Pj−1 (c)Pj+1 (c) < 0 ;
4. si c ∈]a, b[ et P0 (c) = 0 alors P0 (x)P1 (x) est du signe de x − c au voisinage de c.
Pour c ∈ [a, b], on note V (c) le nombre de changement de signes (sans compter le 0) dans la
suite P0 (c), P1 (c), . . . , Ps (c). Le nombre de racines distinctes de P0 dans [a, b] est V (a)−V (b).
Démonstration. Soit c ∈ [a, b] tel qu’il existe i > 0 et Pi (c) = 0. Alors d’après (2) i < s
et d’après (3) Pi−1 (x)Pi+1 (x) reste strictement négatif sur un voisinage de c. On peut donc
avoir globalement les cas suivants (et les situations en inversant tous les signes)
Pi−1
Pi
Pi+1
c− c c+
−
−
−
0
+
+
+
Pi−1
Pi
Pi+1
c−
−
+
+
c
c+
−
0
+
+
Pi−1
Pi
Pi+1
c−
−
+
+
c
c+
−
,
0
−
+
Pi−1
Pi
Pi+1
c−
−
−
+
On en conclut que V (x) n’est pas modifié par la traversé d’une racine de Pi pour i > 0.
Au contraire, soit c ∈]a, b[ une racine de P0 . D’après (4) P0 (x)P1 (x) est du signe de x − c
au voisinage de c. Donc pour x = c − il y a un changement de signe dans la suite entre
P0 (x) et P1 (x) et pas pour x = c + . On en conclut que V (x) décroı̂t de 1 en traversant une
racine de P0 . Finalement V (b) − V (a) compte bien le nombre de racines distinctes de P0 .
Soit P un polynôme à coefficients réels tel que P (a)P (b) 6= 0. On peut toujours se ramener
à P racines simples en considérant P/ gcd(P, P 0 ). On suppose qu’on est donc dans ce cas et
on va construire une suite de Sturm pour P .
On pose P0 = P, P1 = P 0 et Pi+1 ≡ −Pi−1 (mod Pi ). Puisque au signe près il s’agit de
l’algorithme d’Euclide, celui-ci s’arrête et on pose Ps le dernier résultat non nul qui est au
signe près le pgcd de P et de P 0 et qui est donc une constante non nulle. La condition (2)
est donc satisfaite. Soit maintenant c ∈ [a, b] et i > 0 tel que Pi (c) = 0. Par construction il
existe Q ∈ R[x] tel que Pi+1 (X) = −Pi−1 (x) − Qi (x)Pi (x). Donc pour x = c on a Pi+1 (c) =
−Pi+1 (c). De plus Pi+1 (c) 6= 0 car sinon c serait racine de Ps . On a donc la propriété (3).
Enfin si c ∈]a, b[ est une racine de P alors P1 (c) = P 0 (c) 6= 0 et donc
P (x)P1 (x) = P 0 (c)2 (x − c) + o(x − c)
est du signe de (x − c) au voisinage de c.
2.2.3
Polynômes d’Hurwitz
La stabilité d’un système d’oscillateurs linéaires est liée à celle de son polynôme caractéristique, à coefficients réels positifs. Idem pour les filtres électriques linéaires.
Pour qu’un système soit stable, il faut que son polynôme caractéristique ait toutes ses
racines à partie réelle négative. Un tel polynôme est appelé polynôme de Hurwitz. On a la
caractérisation suivante.
6
c
c+
−
.
0
−
+
Proposition 2.3. P (X) = an X n + . . . + a0 ∈ R[X] avec a0 > 0 et an 6= 0 est un polynôme
de Hurwitz si et seulement si
a1
a0
0
...
0 a3
a2
a1
...
0 ..
..
..
..
.. > 0
.
.
.
.
. a2i−1 a2i−2 . . . ak+1 ak for i = 1, . . . , n et où on a posé aj = 0 si j < 0 ou j > n.
2.3
2.3.1
Méthodes approchées
Méthode de Newton
Soit I un intervalle de R et f : I → R une application dérivable. Pour déterminer
une approximation numérique des solutions de l’équation f (t) = 0, la méthode de Newton
part d’une solution approchée x et remplace l’équation f (t) = 0 par l’équation approchée
f (x) + (t − x)f 0 (x) = 0, d’où la solution
t=x−
f (x)
.
f 0 (x)
Bien entendu, cette formule n’a un sens que si f 0 (x) 6= 0. On espère que le nombre réel x1
donné par cette équation est un peu plus proche d’une racine que ne l’était x. En tout cas,
si t appartient encore à I, on peut recommencer en partant de t, etc., d’où une suite définie
(pas forcément pour tout n) par la relation de récurrence :
xn+1 = xn −
f (xn )
,
f 0 (xn )
x0 ∈ I.
Bien entendu, ce procédé d’approximation de l’équation vaut dans des contextes bien plus
larges que celui d’une simple fonction de R dans R. Pour l’analyse, on se place généralement
dans le cas où f est une application dérivable d’un ouvert Ω d’un espace vectoriel normé E,
disons complet, à valeurs dans E. On peut démontrer plusieurs types de convergence. Tout
d’abord un énoncé local.
Théorème 2.2. Soit E un espace vectoriel normé complet, soit Ω un ouvert de E et soit
f : Ω → E une application de classe C 2 . Soit ξ un élément de Ω tel que f (ξ) = 0 et f 0 (ξ)
soit inversible. Il existe alors un voisinage B de ξ tel que pour tout x0 ∈ B, la suite (xn )
donnée par la relation de récurrence xn+1 = xn − f 0 (xn )−1 (f (xn )) soit définie pour tout n
et converge quadratiquement vers ξ au sens suivant : il existe un nombre réel C > 1 tel que
n
pour tout n > 0, |xn − ξ| ≤ C −2 .
Voici un énoncé plus restrictif mais plus précis.
Théorème 2.3. Soit f une fonction C 2 (R) et x0 tel que f 0 (x0 ) 6= 0. Posons
f (x0 )
, x1 = x0 + h0 , J0 = [x1 − |h0 |, x1 + |h0 |], M = sup |f 00 (x)|.
f 0 (x0 )
x∈J0
0 )M Si x0 est tel que 2 ff(x
0 (x )2 < 1 alors f (x) = 0 possède une unique solution dans J0 et la
0
méthode de Newton avec x0 converge vers cette racine.
h0 = −
7
Dans le cas des fonctions convexe on peut même donner un énoncé ‘global’.
Proposition 2.4. Soit f une fonction C 2 ([a, b]) vérifiant :
– f (a)f (b) < 0 (existence) ;
– pour x ∈ [a, b], f 0 (x) 6= 0 (unicité) ;
– pour x ∈ [a, b], f 00 (x) 6= 0 ;
alors en choisissant x0 ∈ [a, b] tel que f (x0 )f 00 (x0 ) > 0 la méthode de Newton converge vers
l’unique racine dans [a, b].
Notons que cette proposition s’applique notamment aux polynômes P de coefficient dominant positif, sur l’intervalle [b, +∞[, où b est la plus grande racine de P 0 . En pratique, si
x0 est un nombre réel supérieur à la plus grande racine réelle de P , la méthode de Newton
avec premier terme x0 , si elle fournit une suite strictement décroissante, converge vers cette
racine de P .
Remarque 7. Bien que la méthode soit très efficace, certains aspects pratiques doivent être
pris en compte. Avant tout, la méthode de Newton nécessite que la dérivée soit effectivement
calculée. Dans les cas où la dérivée est seulement estimée en prenant la pente entre deux
points de la fonction, la méthode prend le nom de méthode de la sécante, moins efficace
(d’ordre 1,618 qui est le nombre d’or) et inférieure à d’autres algorithmes. Par ailleurs, si la
valeur de départ est trop éloignée du vrai zéro, la méthode de Newton peut entrer en boucle
infinie sans produire d’approximation améliorée. À cause de cela, toute mise en œuvre de la
méthode de Newton doit inclure un code de contrôle du nombre d’itérations.
Donnons quelques exemples sur les réels :
1. On a un phénomène cyclique de non convergence pour x3 − x + 3 = 0 en partant de
x0 = 0.
2. On a divergence vers l’infini pour xe−x = 0 en partant de x0 = 2.
3. On a divergence et oscillation pour arctan(x) = 0 en partant de x0 = 1.4.
Dans le cas des fonctions complexes, le bord de l’ensemble des valeurs du plan pour lesquelles
on converge vers une des racines peut être une fractale. Ceci montre la grande sensibilité de
la méthode aux conditions initiales.
On pourra essayer d’autres exemples sur http://aleph0.clarku.edu/~djoyce/newton/
newtongen.html.
3
Polynômes sur Z
Remarquons que si un polynôme à coefficients entiers est tel que le p.g.c.d. de ses coefficients est 1 alors il est irréductible sur Z si et seulement si il est irréductible sur Q. Les deux
questions sont donc liées très simplement.
3.1
Irréductibilité
Théorème 3.1 ([MS, p.59]). Soit F = f n + pg ∈ Z[X] avec p ≥ 2 premier, n ≥ 1 et
f, g ∈ Z[X] tel que f mod p est irréductible et f mod p ne divise pas g mod p. Alors F est
irréductible sur Z.
Démonstration. Supposons que F = F1 F2 . Puisque F ≡ f n mod p et f mod p est irréductible,
il existe u, v ≥ 1 avec u + v = n et g1 , g2 ∈ Z[X] tels que
F1 = f u + pg1 ,
F2 + f v + pg2 .
8
Figure 1 – Fractale associée à z 3 − 2z + 2 (la zone en rouge sont des points qui ‘converge’
vers le cycle {0, 1})
Supposons u ≤ v on a alors
g = f u h + pg1 g2
avec h = g2 + f v−u g1 . Réduisons modulo p, on obtient
g ≡ f u h mod p.
Contradiction puisque f mod p ne divise pas g mod p.
Corollaire 3.1 (Critère d’Eisenstein). Soit F (X) = X n + an−1 X n−1 + . . . + a1 X + a0 ∈
Z[X] \ Z. S’il existe un premier p ≥ 2 tel que p divise a0 , . . . , an−1 et p2 ne divise pas a0
alors F est irréductible.
Démonstration. On écrit F = f n + pg avec f = X et g = p1 (an−1 X n−1 + . . . + a1 X + a0 ).
On applique la proposition précédente.
Remarque 8. Il existe une autre version avec les mêmes hypothèses mais an 6= 1 et non
divisible par p.
Proposition 3.1. Soit a1 , . . . , an ∈ Z distincts et n ≥ 2. Alors le polynôme
P (X) = (X − a1 ) · · · (X − an ) − 1
est irréductible sur Z.
9
Démonstration. Supposons que P = P1 P2 est une factorisation non triviale de P . On a donc
P (ai ) = −1 = P1 (ai )P2 (ai ) d’où
P1 (ai ) + P2 (ai ) = 0
pour tout i = 1, . . . , n. Les ai sont donc racines du polynôme P1 + P2 qui est de degré au
plus n − 1. Il s’en suit que P2 = −P1 . La relation devient alors P (X) = −(P1 (X)2 ce qui est
impossible puisque le coefficient dominant de P est 1.
3.2
Factorisation
Voir LLL.
4
Cas des corps finis : l’algorithme de Berlekamp
Soit u ∈ Fp [X] un polynôme. Le but de l’algorithme est d’obtenir une factorisation de u
(voir [Knu, p.420]).
4.1
Elimination des puissances
On calcule gcd(u, u0 ) = d.
– Si d = 1, alors u est sans facteur carré.
– Si d 6= 1 et d 6= u alors on divise u par d et on peut se ramener au cas d = 1.
– Si d = u alors u0 = 0, i.e. u(x) = v(xp ) = v(x)p . On se ramène donc à étudier v.
A la fin de cette procédure, on a donc un polynôme u = p1 · · · pr de degré n où les pi sont
des premiers distincts (de Fp [X] qui est euclidien).
4.2
Détermination des facteurs
On considère les deux problèmes suivants
1. Soit (s1 , . . . , sr ) des entiers. Construire un polynôme v tel que pour tout i
v ≡ si
(mod pi ), deg v < n.
(2)
vp ≡ v
(mod u), deg v < n.
(3)
2. On cherche v tel que
Si v est une solution de (2) alors c’est une solution de (3). En effet v p ≡ spi ≡ si ≡ v
(mod pi ) et par le TRC on a la propriété modulo u.
Qp−1
Réciproquement, on a xp − x =
i=0 (x
vp − v =
− i). Donc
p−1
Y
(v(x) − i).
i=0
Si v est une solution de (3) on a donc
p−1
Y
(v(x) − i) ≡ 0
(mod pi )
i=0
pour tout i. Les pi étant premiers, il existe (s1 , . . . , sr ) tel que v soit solution de (2).
Remarque 9. Puisque le système (2) admet pr solutions on peut donc à priori connaı̂tre r.
10
4.3
Recherche des solutions de (3)
Soit

q0,0
..
.
q0,1
qn−1,0
qn−1,1

Q=
...
...

q0,n−1
..
.


qn−1,n−1
où pour 0 ≤ k ≤ n − 1
xpk ≡ qk,n−1 xn−1 + . . . + qk,1 x + qk,0
Lemme 4.1. v =
Pn−1
k=0
(mod u).
µk xk est solution de (3) si et seulement si (µ0 , . . . , µn )Q = (µ0 , . . . , µn ).
Démonstration. Ecrivons
p
v =
n−1
X
µk x
pk
=
k=0
n−1
X n−1
X
i
µk qk,i x =
k=0 i=0
n−1
X
n−1
X
i=0
k=0
!
µk qk,i
· xi .
L’équivalence s’en déduit facilement.
Pour trouver les solutions de 3, il suffit donc
1. De calculer Q.
2. De faire un pivot de Gauss sur Q−I. Le rang de Q−I est égal à n−r, soit 1 = v1 , . . . , vr
les solutions.
3. On calcule gcd(u, v2 − s) pour 0 ≤ s ≤ p − 1. On obtient une factorisation non triviale
car v2 − s n’est pas constant.
4. Si v2 n’arrive pas à déterminer tous les facteurs pi , on calcule gcd(w, vi − s) où w est
un facteur résiduel et on est sûr d’aboutir car il existe une solution vi telle que (d’après
(2) puisque il existe une solution v dont les si sont distincts) vi − s ≡ 0 (mod pj ) mais
vi − s 6≡ 0 (mod pk ) pour j 6= k.
Références
[AF] J.M. Arnaudiès, H. Fraysse : cours de mathématiques-1 Algèbre, Dunod Université.
[Gou] Gourdon
[Goz] . Gozard, Théorie de Galois.
[Knu] Knuth tome 2.
[Fra] Francinou.
[MS] M. Mignotte, D. Stefanescu, Polynomials, an algorithmic approach, Springer.
11