• Aucun résultat trouvé

Itération de Newton formelle et applications

Dans le document Algorithmes Efficaces en Calcul Formel (Page 65-73)

Polynômes et séries

3. Calculs rapides sur les séries

3.3 Itération de Newton formelle et applications

Dans toute la suite de ce chapitre, l’anneau A est supposé commutatif. Un résultat général

Théorème 3.6— Itération de Newton sur les séries. Soit Φ ∈ A[[X, Y]] une série à deux variables en X et Y, telle que Φ(0, 0) = 0 et ∂Φ∂Y(0, 0) est inversible dans A. Il existe alors une unique série S ∈ A[[X]], telle que Φ(X, S) = 0 et S(0) = 0. Si F est une série telle que S − F = O(Xn) (n ≥ 1), alors

N(F) = F − ∂ΦΦ(X, F)

∂Y(X, F) vérifie S − N (F) = O(X2n).

Ce résultat est un résultat local en (0, 0). Il exprime que si le point (0,0) est solution, il s’étend en une courbe solution. Par translation, d’autres situations où la solution n’est pas en (0, 0) s’y ramènent. La première partie est une version du théorème des fonctions implicites pour les séries formelles.

Démonstration. D’abord il faut observer que l’itération est bien définie : la composition

3.3 Itération de Newton formelle et applications 65

Entrée Un entier N > 0, Φ mod (XN, YN) une série tronquée avec Φ(0, 0) = 0 et (∂Φ/∂Y)(0, 0) inversible.

Sortie S mod XN, T mod XdN/2e, telles que S(0) = 0, Φ(X, S) = 0, et T = (∂Φ/∂Y(X, S))−1. 1. Si N = 1, alors renvoyer 0, ((∂Φ/∂Y)(0, 0))−1. 2. Sinon :

a. Calculer récursivement F := S mod XdN/2e et G := T mod XddN/2e/2e.

b. Calculer G := G + (1 − G∂Φ∂Y(X, F))G mod XdN/2e. c. Calculer F := F − GΦ(X, F) mod XN.

d. Renvoyer F, G.

Algorithme 3.3 – Résolution de Φ(X, Y) = 0 par itération de Newton.

∂Φ

∂Y(X, F) est inversible puisque son terme constant ∂Φ∂Y(0, 0) est inversible. De ce fait, on déduit aussi val(N (F) − F) = val(Φ(X, F)).

Ensuite, la preuve se déroule en deux temps : l’itération est d’abord utilisée pour montrer l’existence d’une série solution S, puis on montre l’unicité en même temps que la vitesse de convergence vers S.

La valuation de Φ(X, F) est doublée par l’itération : la formule de Taylor donne Φ(X, N (F)) = Φ(X, F) +∂Φ

∂Y(X, F)(N (F) − F) + O((N (F) − F)

2) = O(Φ(X, F)2). (3.3) La suite définie par S0= 0 et Sk+1= N (S) vérifie donc

val(Sk+2−Sk+1) = val(Φ(X, Sk+1)) ≥ 2 val(Sk+1−Sk).

Cette suite est donc de Cauchy et sa limite S existe et vérifie Φ(X, S) = lim(Φ(X, Sk)) = 0. La vitesse de convergence vers S vient encore de la formule de Taylor. En effet, l’égalité

Φ(X, F) = Φ(X, S) +∂Φ

∂Y(X, F)(S − F) + O((S − F)

2) (3.4) donne S − F = O(Φ(X, F)). On en déduit S − N (F) = O(Φ(X, N (F))) = O(X2n) au vu des hypothèses et de (3.3). Cette égalité donne aussi l’unicité de la solution : si F est une autre solution avec F(0) = 0, elle doit vérifier S − F = O((S − F)2), ce qui entraîne val(S − F) = ∞ et donc F = S. 

Algorithme

Lemme 3.7 L’Algorithme 3.3 de résolution est correct.

Démonstration. Pour N = 1, les valeurs renvoyées sont les termes constants de S et T.

S mod XdN/2e. D’après le Lemme 3.2, l’étape (1.b) calcule T mod XdN/2e. L’étape (1.c) calcule alors S mod XN : les formules (3.3) et (3.4) montrent que seuls les dN/2e premiers coefficients de ∂Φ/∂Y(X, S) sont utiles pour doubler la précision.  Applications

Un exemple d’application est fourni par l’inverse de la section précédente avec Φ(X, Y) = f − 1/(f (0)−1+ Y) (lorsque A est commutatif). La complexité de l’Algo-rithme 3.3 dépend en particulier de celle du calcul de Φ et de ∂Φ/∂Y. Les applications les plus directes de la méthode de Newton sont résumées dans les théorèmes sui-vants.

Théorème 3.8 Dans le cas où la série Φ du Théorème 3.6 est un polynôme en Y de degré O(1), les N premiers termes de sa série solution S, telle que S(0) = 0, sont obtenus en O(M(N)) opérations dans A.

Démonstration. L’argument est le même que pour la complexité de l’inverse. Pour Φ

polynôme de degré O(1), les évaluations de Φ et de Φ0

coûtent O(M(N)), le reste de l’argument est inchangé.  Dans le cas où Φ est un polynôme à la fois en X et en Y, un algorithme de com-plexité O(N) (donc linéaire au lieu de quasi-linéaire, et ce, quelle que soit la multipli-cation utilisée) sera présenté au Chapitre 14.

Théorème 3.9 Soit f une série de A[[X]]. On peut calculer en O(M(N)) opérations dans A les N premiers termes de :

1. f1, lorsque f (0) est inversible ; 2. log f et fαlorsque f (0) = 1 et α ∈ K ; 3. exp(f ) lorsque f (0) = 0.

Pour les points (2) et (3), nous supposons également que 2, 3, . . . , N − 1 sont des éléments inversibles de A.

Démonstration. La preuve pour l’inverse et le logarithme provient des Sections 3.2 et

3.2. L’exponentielle est traitée dans la section qui vient, et la puissance se déduit des précédentes par

fα= exp(α log f ).

Une application remarquable de cette identité évidente apparaît dans la Section 3.3 sur l’inverse compositionnel.  Exponentielle

Si F ∈ A[[X]] est telle que F(0) = 0, on définit la série exp(F) par exp(F) = 1 + F + F2/2! + F3/3! + · · ·

lorsque 2, 3, . . . sont inversibles dans A. Pour calculer cette série, l’idée est d’appliquer une méthode de Newton avec Φ(Y) = F − log Y, Y(0) = 1.

3.3 Itération de Newton formelle et applications 67

Entrée Un polynôme P ∈ K[X] de degré d, un entier k. Sortie Les sommes de Newton p0, . . . , pk de P.

1. Former les polynômes N = Td−1P0

(1/T) et D = TdP(1/T). 2. Calculer N/D mod Tk+1= p0+ p1T + · · · + pkTk.

3. Renvoyer les coefficients.

Algorithme 3.4 – Calcul des sommes de Newton à partir des coefficients.

Entrée Les sommes de Newton p0, . . . , pd du polynôme uni-taire P ∈ K[X].

Sortie Les coefficients de P.

1. Former la série S1:= p1+ p2T + · · · + pdTd−1. 2. Calculer S2:= exp(−RS1) mod Td+1. 3. Renvoyer Xp0S2(1/X).

Algorithme 3.5 – Calcul des coefficients à partir des sommes de Newton.

Exercice 3.3 Montrer que les conditions du Théorème 3.6 sont vérifiées. 

Il s’ensuit une convergence quadratique vers exp(F) pour l’itération Ek+1= N (Ek) = Ek+ Ek(F − log Ek).

Chaque itération demande donc le calcul d’une multiplication et d’un logarithme, d’où la complexité en O(M(N)). Une autre itération légèrement plus efficace est présentée en Exercice 3.8.

Exercice 3.4 Donner une itération de Newton qui calcule directement la racine carrée, sans passer par l’exponentielle et le logarithme. Plus difficile, estimer le gain par rapport à l’algorithme général de calcul de puissance. 

Exercice 3.5 Donner des bornes sur les constantes dans les O(·) pour le logarithme, l’exponentielle et la puissance. 

Sommes de Newton

Une conséquence intéressante de l’efficacité du calcul de l’exponentielle est l’utili-sation efficace des sommes de Newton comme structure de données.

Si P ∈ K[X] est un polynôme de degré d, avec K un corps, alors P a d racines α1, . . . , αddans la clôture algébrique ¯K de K. Rappelons qu’un polynôme est dit

uni-taire lorsque son coefficient de plus haut degré est 1. Les sommes de Newton de P sont les sommes pi = αi1+ · · · + αid. Ce sont des éléments de K, puisqu’ils sont fonctions symétriques des racines de P. (Tout polynôme symétrique en les racines d’une équa-tion algébrique s’exprime comme un polynôme en les coefficients de l’équaéqua-tion.) Leur utilisation efficace repose sur la proposition suivante.

Proposition 3.10 Les sommes de Newton p1, . . . , pd d’un polynôme P ∈ K[X] de degré d peuvent être calculées par l’Algorithme 3.4 en O(M(d)) opérations dans K. Lorsque la caractéristique de K est 0 ou strictement supérieure à d, la conversion inverse est également possible en O(M(d)) opérations par l’Algorithme 3.5.

Démonstration. Si P = cQ

α(X − α), la décomposition en éléments simples S =XP 0 P = X P(α)=0 X X − α= X P(α)=0 i≥0 αiXi,

où α décrit les zéros de P comptés avec multiplicité, montre que les coefficients du développement en puissances de X1 de XP0/P sont les pi. Pour se ramener à des calculs de séries formelles, la première étape introduit une nouvelle variable par X = 1/T. Le calcul de la dérivée a une complexité linéaire en d ; les conversions en puissances de T ne demandent pas d’opérations arithmétiques. Les k = d premiers termes de la division sont obtenus O(M(d)) opérations, comme montré en Section 3.2.

L’opération inverse, à savoir le calcul de P à partir des d premiers termes de la série S = XP0/P est effectué en O(M(d)) opérations par la formule P = expR

S/X. À nouveau, il est plus simple de travailler en T pour rester dans le domaine des séries formelles. Le signe ‘-’ dans le calcul de S2 provient du signe de l’intégration des puissances négatives de X. La contrainte sur la caractéristique permet de définir l’exponentielle tronquée par son développement en série.  Application à la somme et au produit composés

On suppose dans cette section que K est un corps de caractéristique nulle ou strictement supérieure à d.

Théorème 3.11 Soient P et Q deux polynômes unitaires de K[X], de degrés dp

et dqet soit d = dpdq. Alors, les polynômes P ⊕ Q = Y P(α)=0, Q(β)=0  X − (α + β), P ⊗ Q = Y P(α)=0, Q(β)=0 (X − αβ)

peuvent être calculés en OM(d)opérations dans K par les Algorithmes 3.6 et 3.7. Comme ces polynômes sont de degré d, il s’agit là encore d’une complexité quasi-optimale. Dans cet énoncé, les polynômes sont définis à l’aide des racines de P et Q dans une clôture algébrique, mais leurs coefficients sont dans K. Il est également possible de les définir sur un anneau quelconque comme desrésultants en deux

variables. Les résultants et leur calcul sont présentés au Chapitre 6. En général, avec deux variables, il n’existe pas encore d’algorithme quasi-optimal pour le résultant et le résultat ci-dessus est l’un des rares cas particuliers qui se traite efficacement.

Les polynômes constituent une structure de données bien commode pour coder des nombres algébriques et calculer avec : les polynômes P ⊕ Q et P ⊗ Q fournissent l’addition et la multiplication avec cette structure de données.

3.3 Itération de Newton formelle et applications 69

Entrée Des polynômes unitaires P et Q de K[X], de degrés dp

et dq.

Sortie Leur produit composé P ⊗ Q de degré d := dpdq.

1. Calculer les sommes de Newton (p0, . . . , pd2) et (q0, . . . , qd2) de P et Q.

2. Renvoyer le polynôme dont les sommes de Newton sont (p0q0, . . . , pd2qd2).

Algorithme 3.6 – Produit composé.

Entrée les polynômes unitaires P et Q de K[X], de degrés dpet dq. Sortie leur somme composée P ⊕ Q de degré d := dpdq.

1. Calculer les sommes de Newton (p0, . . . , pd2) et (q0, . . . , qd2) de P et Q.

2. Former les polynômes Sp:= p0+ p1T 1!+ · · · + pd2 Td2 (d2)!, Sq:= q0+ q1 T 1!+ · · · + qd2 Td2 (d2)!. 3. Calculer S := Sp×Sqmod Td2+1= s0+ s1T + s2T2+ · · · 4. Renvoyer le polynôme dont les sommes de Newton sont

(s0, 1!s1, 2!s2, . . . , (d2)!sd2).

Algorithme 3.7 – Somme composée.

Démonstration. Le produit de sommes de Newton est la somme de Newton du

pro-duit : X α αiX β βi=X α (αβ)i.

Il suffit donc de multiplier terme à terme les séries génératrices des sommes de Newton de P et Q pour obtenir la série génératrice des sommes de Newton de P ⊗ Q. Si l’on a calculé d termes de ces séries, le résultant, dont le degré est d, est alors reconstruit par une exponentielle en O(M(d)) opérations.

Diviser le i-ième coefficient de XP0

/P par i!, pour tout i ≥ 0, produit la série

X P(α)=0 i≥0 αiXi i! = X P(α)=0 exp(α/X).

En effectuant la même opération sur Q et en multipliant les séries, on obtient donc X P(α)=0 exp(α/X) X Q(β)=0 exp(β/X) = X P(α)=0 Q(β)=0 exp((α + β)/X).

Il suffit alors de remultiplier le i-ième coefficient par i! pour obtenir la série génératrice des sommes de Newton du polynôme P ⊗ Q, qui est reconstruit par une exponentielle. L’ensemble des opérations a une complexité bornée par O(M(d)).  Systèmes

Le Théorème 3.6 s’étend à des systèmes d’équations.

Théorème 3.12 Soient Φ = (Φ1, . . . , Φk) des séries en k + 1 indéterminées X et Y = (Y1, . . . , Yk), telles que Φ(0) = 0 et la matrice jacobienne (∂Φ∂Y) est inversible dans A en 0. Alors, le système

Φ1(X, Y1, . . . , Yk) = · · · = Φk(X, Y1, . . . , Yk) = 0

admet une solution S = (S1, . . . , Sk) ∈ A[[X]]k telle que S(0) = 0. Si F = (F1, . . . , Fk) est tel que S − F = O(Xn) (n ≥ 1), alors

N(F) =           F1 .. . Fk           − ∂Φ ∂Y(X, F1, . . . , Fk) !−1 ·           Φ1(X, F1, . . . , Fk) .. . Φk(X, F1, . . . , Fk)           vérifie S − N (F) = O(X2n).

La preuve est la même que celle du Théorème 3.6, la formule de Taylor pour les fonctions de plusieurs variables s’exprimant à l’aide de la matrice jacobienne.

Lemme 3.13 L’Algorithme 3.3 fonctionne aussi, sans changement, pour un sys-tème Φ satisfaisant aux hypothèses du Théorème 3.12.

Démonstration. La preuve est la même, en observant que l’étape (1.b) est écrite de

telle sorte que le Lemme 3.2 s’applique : cette étape calcule l’inverse de la matrice jacobienne à la précision requise et la dernière étape effectue un produit matrice-vecteur pour en déduire la correction de la nouvelle itération.  Le corollaire suivant joue un rôle important dans l’algorithme de résolution géomé-trique du Chapitre 28.

Corollaire 3.14— Systèmes polynomiaux. Sous les mêmes hypothèses, si Φi∈ A[[X]][Y1, . . . , Yk] pour 1 ≤ i ≤ k, alors les solutions séries à précision N peuvent être calculées en O(MM(k, N)) opérations dans A.

Démonstration. Dans ce calcul, le nombre d’opérations nécessaires à l’évaluation des

polynômes ou de leurs dérivées en une série à précision N est borné par une constante fois MM(N), constante qui ne dépend que des polynômes Φi. Ensuite, l’étape (b.) demande des produits de matrices k × k de polynômes de degré dN/2e, et l’étape (c.) demande un produit matrice-vecteur en précision N. La complexité de l’application

3.3 Itération de Newton formelle et applications 71

récursive est donc dominée par celle de l’étape (2), le résultat est donc le même que pour l’inverse de matrices de séries.  Inverse compositionnel

Étant donnée une série F avec F(0) = 0 et F0(0) inversible, il s’agit ici de calculer une série F(−1)telle que F(F(−1)(X)) = F(−1)(F(X)) = X.

LesN premiers termes

Les conditions d’application de la méthode de Newton (Théorème 3.6) sont véri-fiées pour la fonction

Φ(X, Y) = F(Y) − X. L’opérateur de Newton correspondant est donc

N(G) = G −F(G) − X F0

(G) . La dérivation de F(G) = X donne F0

(G)G0

= 1 et cet opérateur se simplifie en N(G) = G − G0×(F(G) − X).

Le coût est alors dominé soit par celui du produit, soit plus généralement par celui de la composition par F (voir Section 3.4).

Exercice 3.6 La k-ième racine positive de l’équation x = tan x admet un développe-ment asymptotique de la forme

rk= (2k + 1)π 2 + a1 k + a2 k2 + · · · .

Pour tout i, le coefficient ai s’écrit ai = fi(1/π), où fi est un polynôme impair de degré 2i + 1. Borner le nombre d’opérations dans Q nécessaires pour calculer f1, . . . , fN,

pour N grand. 

Exemple

La série génératrice exponentielle T ∈ Q[[X]] des arbres généraux étiquetés (appe-lés aussiarbres de Cayley) vérifie l’équation

T = X exp(T),

c’est-à-dire que le coefficient de Xndans la série T est le nombre d’arbres de taille n divisé par n!. Ces coefficients sont obtenus en O(M(N)) opérations dans Q en calculant d’abord ceux de Y exp(−Y) par les méthodes de la section précédente, puis en inversant ce développement par la méthode présentée ci-dessus.

Pour déterminer le comportement asymptotique des coefficients ainsi calculés lorsque N tend vers l’infini (autrement dit, l’asymptotique du nombre d’arbres de taille N), une méthode utilisée en analyse d’algorithmes passe par le calcul du déve-loppement de T au voisinage du point singulier exp(−1) = 1/e, où T vaut 1. En posant

u =

√ 2

1 − eX, on voit qu’il s’agit alors de calculer le développement de y solution de p

au voisinage de y = 1 et u = 0, équation à laquelle la méthode présentée dans cette section s’applique pour donner le résultat en O(M(N)) opérations.

LeN-ième terme

Bien qu’en général le coût de l’inverse compositionnel soit dominé par celui de la composition et donc en O(pN log NM(N)) (voir la section suivante), il est possible d’obtenir le N-ième terme sans calculer les précédents pour O(M(N)) opérations. L’idée repose sur laformule d’inversion de Lagrange :

[XN]F(−1)(X) = 1 N[X

N−1] 1

(F(X)/X)N, (3.5) où la notation [Xk]F représente le coefficient de Xk dans la série F. Ainsi, le calcul par cette formule ne requiert qu’une puissance et donc peut être effectué en O(M(N)) opérations.

R Cette formule donne immédiatement une jolie expression pour les coefficients de T solution de T = X exp(T) de l’exemple précédent : le n-ième coefficient vaut nn−1/n!. Cette expression permet de calculer les N premiers coefficients en O(N) opérations, ce qui est légèrement mieux que le O(M(N)) du cas général. L’asymptotique mentionnée plus haut redonne dans cet exemple la formule de Stirling.

Dans le document Algorithmes Efficaces en Calcul Formel (Page 65-73)