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