0% ont trouvé ce document utile (0 vote)
45 vues333 pages

Algorithmes Efficaces en Calcul Formel

Transféré par

Jean Kerby Milon
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
45 vues333 pages

Algorithmes Efficaces en Calcul Formel

Transféré par

Jean Kerby Milon
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Algorithmes Efficaces en Calcul Formel

En cours de rédaction

Notes du cours 2-22 du MPRI, année 2010–2011


Version du 20 septembre 2012

Alin Bostan
Frédéric Chyzak
Marc Giusti
Romain Lebreton
Bruno Salvy
Éric Schost
Table des matières

Les chapitres ou sections indiqués par ? peuvent être omis en première lecture.
Ils ne sont généralement pas traités dans le cours oral.

Introduction 1

Chapitre 1. Calcul Formel et Complexité 3


1. Décider, calculer 3
2. Calculer rapidement 8
Avertissement 13
Notes 13
Bibliographie 14

Première partie. Algorithmes Fondamentaux 15

Chapitre 2. Multiplication rapide 17


1. Introduction, résultats principaux 17
2. Algorithme naïf 19
3. Algorithme de Karatsuba 20
4. Transformée de Fourier rapide 22
5. L’algorithme de Schönhage et Strassen 26
6. Algorithmes pour les entiers 27
7. Un concept important : les fonctions de multiplication 28
Exercices 29
Notes 30
Bibliographie 31

Chapitre 3. Algèbre linéaire dense : de Gauss à Strassen 35


1. Introduction 35
2. Multiplication de matrices 37
3. Autres problèmes d’algèbre linéaire 44
Exercices 49
Notes 52
Bibliographie 55

Chapitre 4. Calculs rapides sur les séries 59


1. Séries formelles 60
2. La méthode de Newton pour le calcul d’inverses 62
3. Itération de Newton formelle et applications 64
4. La composition des séries 69
Exercices 72
Notes 72
Bibliographie 73

Chapitre 5. Division euclidienne, fractions rationnelles et récurrences linéaires


à coefficients constants 75
iii
iv TABLE DES MATIèRES

1. Introduction 75
2. Division de polynômes 75
3. Suites récurrentes linéaires à coefficients constants 77
4. Développement de fractions rationnelles 80
5. Applications 81
Notes 82
Bibliographie 83

Chapitre 6. Calculs modulaires, évaluation et interpolation 85


1. Introduction 85
2. Présentation, résultats 86
3. Interpolation de Lagrange 87
4. Algorithmes rapides 88
Exercices 93
Notes 94
Bibliographie 95

Chapitre 7. Pgcd et résultant 97


1. Algorithme d’Euclide 97
2. Résultant 101
3. Algorithme d’Euclide rapide 109
Exercices 113
Notes 114
Bibliographie 115

Chapitre 8. Algorithmique des séries D-finies 117


1. Équations différentielles et récurrences 117
2. Propriétés de clôture 121
3. Séries algébriques 123
4. ? Au-delà ? 124
Exercices 125
Notes 126
Bibliographie 127

Chapitre 9. Approximants de Padé et de Padé-Hermite 129


1. Reconstruction rationnelle 129
2. Approximants de Padé-Hermite 134
Notes 139
Bibliographie 140

Chapitre 10. Algèbre linéaire creuse : algorithme de Wiedemann 143


1. Introduction 143
2. Polynôme minimal et résolution de systèmes 143
3. Calcul du polynôme minimal 144
4. Calcul du déterminant 145
5. Calcul du rang 145
Exercices 145
Notes 146
Bibliographie 146

Chapitre 11. Algèbre linéaire structurée 147


1. Introduction 147
2. Le cas quasi-Toeplitz 151
Exercices 155
TABLE DES MATIèRES v

Notes 155
Bibliographie 156

Chapitre 12. Principe de transposition de Tellegen 157


1. Introduction 157
2. La version en termes de graphes du principe de Tellegen 158
3. Principe de Tellegen pour les programmes linéaires 160
4. Applications 162
Notes 167
Bibliographie 169

Chapitre 13. Récurrences linéaires à coefficients polynomiaux : N -ième terme,


N premiers termes 171
1. Calcul naïf de N ! et de suites P-récursives 171
2. Pas de bébés et pas de géants 173
3. Scindage binaire 174
Exercices 176
Notes 177
Bibliographie 177

Chapitre 14. Solutions rationnelles de systèmes linéaires à coefficients


polynomiaux 179
1. Des séries aux solutions rationnelles 179
2. Développement comme une fraction rationnelle 180
3. L’algorithme de Storjohann 181
Notes 182
Bibliographie 183

Chapitre 15. Solutions séries d’équations différentielles 185


1. Équations différentielles d’ordre 1 185
2. Équations différentielles linéaires d’ordre supérieur et systèmes d’ordre 1 187
3. Cas particuliers 191
4. Extensions 191
Notes 193
Bibliographie 193

Deuxième partie. Systèmes Polynomiaux 195

Chapitre 16. Bases standard 197


1. Lien entre algèbre et géométrie 198
2. Ordres totaux admissibles sur le monoïde des monômes 201
3. Exposants privilégiés et escaliers 203
4. Noethérianité du monoïde des monômes 203
5. Divisions 205

Chapitre 17. Module de syzygies et construction de bases standard 209


1. Algorithme naïf par algèbre linéaire 209
2. Polynôme de syzygie 210
3. L’algorithme de construction de Buchberger 210
4. L’algorithme de construction en affine 212
5. Exemple de calcul 212
6. Propriétés des bases standards pour quelques ordres 213
Exercices 214
Notes 214
vi TABLE DES MATIèRES

Bibliographie 214

Chapitre 18. Triangularisation des idéaux, Nullstellensatz 215


1. Le lemme de spécialisation 215
2. Triangulation des idéaux 216
3. Le Nullstellensatz 217
Bibliographie 223

Chapitre 19. Fonction et polynôme de Hilbert, dimension, degré 225


1. Définitions 225
2. Démonstration du théorème et d’une borne supérieure de la régularité 226
3. Optimalité de la borne sur le degré de régularité 226
4. Le cas des suites régulières 227
5. Théorie de la dimension 227
6. Remarque sur la calculabilité de la dimension 229
Bibliographie 229

Chapitre 20. Le lemme de normalisation de Noether 231


1. La situation linéaire 231
2. La situation générale 232
Notes 233
Bibliographie 234

Chapitre 21. Quête d’une meilleure complexité 235


1. Test à zéro, ensembles questeurs 235
2. Structures de données pour les polynômes multivariés 236
3. Quelques algorithmes utilisant des SLP 237
Bibliographie 237

Chapitre 22. Résolution géométrique 239

Troisième partie. Sommation et intégration de suites et fonctions


spéciales 241

Chapitre 23. Résolution d’équations différentielles linéaires 243


1. Système et équation 243
2. Solutions séries et singularités 244
3. Solutions polynomiales 245
4. Solutions rationnelles 246
Notes 246
Bibliographie 247

Chapitre 24. Solutions rationnelles de récurrences et sommation


hypergéométrique indéfinie 249
1. Solutions polynomiales 249
2. Solutions rationnelles : Algorithme d’Abramov 251
3. Équations inhomogènes 252
4. Sommation hypergéométrique indéfinie. Algorithme de Gosper 253
Notes 256
Bibliographie 256

Chapitre 25. Solutions hypergéométriques de récurrences et sommation


hypergéométrique définie 257
1. Sommation hypergéométrique définie. Algorithme de Zeilberger 257
2. Solutions hypergéométriques. Algorithme de Petkovšek 259
TABLE DES MATIèRES vii

Notes 261
Bibliographie 261

Chapitre 26. Équations fonctionnelles linéaires et polynômes tordus 263


1. Des polynômes non commutatifs pour calculer avec des opérateurs
linéaires 263
2. Clôtures par morphismes entre anneaux de polynômes tordus 265
3. Division euclidienne 267
4. Recherche de solutions et factorisation d’opérateurs 269
5. Algorithme d’Euclide 270
6. Relations de contiguïté 271
Notes 273
Bibliographie 274

Chapitre 27. Algorithmes pour les fonctions spéciales dans les algèbres de Ore 275
1. Algèbres de Ore rationnelles 275
2. Idéal annulateur et module quotient 275
3. Bases de Gröbner pour les idéaux à gauche 277
4. ? Module quotient et dimension de l’espace des solutions ? 278
5. Les fonctions ∂-finies et leurs clôtures 281
Notes 285
Bibliographie 285
Chapitre 28. Sommation et intégration symboliques des fonctions spéciales 287
1. Expression du télescopage créatif en termes d’algèbres de Ore
rationnelles 287
2. L’algorithme sur l’exemple 12 J0 (x)2 + J1 (x)2 + J2 (x)2 + · · · = 21 289
3. Bases de Gröbner de modules et découplage de systèmes 291
Bibliographie 292

Quatrième partie. Compléments 293


Chapitre 29. Réduction de réseaux et algorithme LLL 295
1. Réseaux, vecteurs courts et résultats principaux 295
2. Applications 296
3. Le procédé d’orthogonalisation de Gram–Schmidt 298
4. L’algorithme LLL 299
5. Preuve de l’algorithme LLL 300

Chapitre 30. Factorisation des polynômes 303


1. Introduction 303
2. Corps finis, quelques rappels 303
3. Partie sans carré et décomposition sans carré 305
4. Algorithme de Berlekamp 308
Exercices 310

Chapitre 31. Exercices récapitulatifs 313


Notes 324
Bibliographie 324
Introduction

Le calcul formel calcule des objets mathématiques exacts. Ce cours « Algo-


rithmes efficaces en calcul formel » explore deux directions : la calculabilité et la
complexité. La calculabilité étudie les classes d’objets mathématiques sur lesquelles
des réponses peuvent être obtenues algorithmiquement. La complexité donne en-
suite des outils pour comparer des algorithmes du point de vue de leur efficacité.
La première partie de ce cours passe en revue l’algorithmique efficace sur les
objets fondamentaux que sont les entiers, les polynômes, les matrices, les séries et les
solutions d’équations différentielles ou de récurrences linéaires. On y montre que de
nombreuses questions portant sur ces objets admettent une réponse en complexité
(quasi-)optimale, en insistant sur les principes généraux de conception d’algorithmes
efficaces.
La deuxième partie aborde les systèmes polynomiaux. Il s’agit de montrer com-
ment répondre à des questions de nature géométrique posées sur les solutions de
ces systèmes, tant par des approches à base de récriture (bases standard ou de
Gröbner) que plus directement liées à la structure de l’ensemble décrit (résolution
géométrique).
La troisième et dernière partie du cours traite de l’intégration et de la som-
mation définie. De nombreux calculs d’intégrales et de sommes de fonctions ou de
suites spéciales de la combinatoire ou de la physique mathématique peuvent être
abordés algorithmiquement. Une très grande partie de l’algorithmique du calcul
formel s’avère nécessaire, et pratiquement tous les algorithmes abordés au cours
des deux premières parties sont requis.
Quelques thèmes classiques du calcul formel ne sont pas traités dans ce cours.
Certains sont donnés dans une partie intitulée Compléments (LLL, factorisation) ;
nous les avons enseignés certaines années. D’autres comme la recherche de primitives
(algorithme de Risch) ou de solutions liouvilliennes d’équations différentielles ne
sont pas abordés du tout. Nous préférons en effet privilégier un point de vue où ce
sont les équations qui sont les structures de données les plus utiles.

1
CHAPITRE 1

Calcul Formel et Complexité

Résumé
Ce chapitre introductif présente rapidement le calcul formel et les no-
tions de complexité, tels qu’ils seront développés dans l’ensemble du
cours.

1. Décider, calculer
1.1. Fondements logiques. D’une certaine manière, le calcul formel est fon-
dé sur une contrainte d’origine logique.
Théorème 1 (Richardson-Matiyasevich). Dans la classe des expressions ob-
tenues à partir d’une variable X et de la constante 1 par les opérations d’anneau
+, −, × et la composition avec les fonctions sin et la valeur absolue | · |, le test
d’équivalence à 0 est indécidable.
Autrement dit, il n’existe pas d’algorithme permettant pour toute expression
de cette classe de déterminer en temps fini si elle vaut 0 ou non. Plus généralement
tout test d’égalité peut bien entendu se ramener à tester l’égalité à zéro dès que
la soustraction existe. Cette limitation de nature théorique explique la difficulté
et parfois la frustration que rencontrent les utilisateurs débutants des systèmes
de calcul formel face à des fonctions de « simplification », qui ne peuvent être
qu’heuristiques.
Pour effectuer un calcul, il est pourtant souvent crucial de déterminer si des ex-
pressions représentent 0 ou non, en particulier pour évaluer une fonction qui possède
des singularités (comme la division). L’approche du calculateur formel expérimenté
consiste à se ramener autant que faire se peut à des opérations d’un domaine dans
lequel le test à zéro est décidable. Le calcul formel repose ainsi de manière natu-
relle sur des constructions algébriques qui préservent la décidabilité du test à 0. En
particulier, les opérations courantes sur les vecteurs, matrices, polynômes, fractions
rationnelles, ne nécessitent pas d’autre test à 0 que celui des coefficients. La notion
d’effectivité permet de préciser ce point de vue.
Definition 1. Une structure algébrique (groupe, anneau, corps, espace vecto-
riel,. . .) est dite effective si l’on dispose :
– d’une structure de données pour en représenter les éléments ;
– d’algorithmes pour en effectuer les opérations et pour y tester l’égalité.
Par exemple, dans un anneau effectif, outre l’égalité, les opérations requises
sont l’addition, la soustraction et la multiplication.

1.2. Structures et constructions de base. Les objets les plus fondamen-


taux sont assez faciles à représenter en machine de manière exacte. Nous considérons
tour à tour les plus importants d’entre eux, en commençant par les plus basiques.
Ils s’assemblent ensuite à l’aide de tableaux ou de listes pour en former de plus
complexes.
3
4 1. CALCUL FORMEL ET COMPLEXITÉ

Entiers machine. Les entiers fournis par les processeurs sont des entiers modulo
une puissance de 2 (le nombre de bits d’un mot machine, typiquement 32 ou 64).
Ils sont appelés des entiers machine. Les opérations rendues disponibles par le
processeur sont l’addition, la soustraction, la multiplication et parfois la division.
La norme ANSI du langage C fournit au programmeur la division et le modulo pour
ces entiers, c’est-à-dire que le compilateur implante ces opérations si le processeur
ne le fait pas.

Entiers. Pour manipuler des entiers dont la taille dépasse celle d’un mot machine,
il est commode de les considérer comme écrits dans une base B assez grande :
N = a0 + a1 B + · · · + ak B k .
L’écriture est unique si l’on impose 0 ≤ ai < B. (Le signe est stocké séparément.)
Ces nombres peuvent être stockés dans des tableaux d’entiers machine. Les objets
obtenus sont des entiers de taille arbitraire appelés parfois bignums.
L’addition et le produit peuvent alors être réduits à des opérations sur des en-
tiers inférieurs à B 2 , au prix de quelques opérations de propagation de retenue. Le
choix de B dépend un peu du processeur. Si le processeur dispose d’une instruction
effectuant le produit de deux entiers de taille égale à celle d’un mot machine, ren-
voyant le résultat dans deux mots machines, alors B pourra être pris aussi grand
que le plus grand entier tenant dans un mot machine. Sinon, c’est la racine carrée
de ce nombre qui sera utilisée pour B. Quoiqu’il en soit, nous avons donc.
Lemme 1. L’anneau Z des entiers relatifs est effectif.

Entiers modulaires. Les calculs avec des polynômes, des fractions rationnelles ou
des matrices à coefficients entiers souffrent souvent d’une maladie propre au calcul
formel : la croissance des expressions intermédiaires. Les entiers produits comme
coefficients des expressions intervenant lors du calcul sont de taille disproportionnée
par rapport à ceux qui figurent dans l’entrée et dans la sortie.
Exemple 1. Voici le déroulement typique du calcul du plus grand diviseur
commun (pgcd) de deux polynômes à coefficients entiers par l’algorithme d’Euclide :
P0 = 7X 5 − 22X 4 + 55X 3 + 94X 2 − 87X + 56,
P1 = 62X 4 − 97X 3 + 73X 2 + 4X + 83,
113293 3 409605 2 183855 272119
P2 = rem(P0 , P1 ) = X + X − X+ ,
3844 3844 1922 3844
18423282923092 2 15239170790368 10966361258256
P3 = rem(P1 , P2 ) = X − X+ ,
12835303849 12835303849 12835303849
216132274653792395448637 631179956389122192280133
P4 = rem(P2 , P3 ) = − X− ,
44148979404824831944178 88297958809649663888356
20556791167692068695002336923491296504125
P5 = rem(P3 , P4 ) = .
3639427682941980248860941972667354081
Chaque étape calcule le reste (noté rem pour remainder ) de la division euclidienne
des deux polynômes précédents. Les coefficients de ces polynômes intermédiaires
font intervenir des entiers qui croissent de manière exponentielle, alors que le résul-
tat recherché est 1.
Les entiers modulaires remédient à ce problème de deux manières. D’une part,
pour un calcul de décision, de dimension, ou de degré, l’exécution de l’algorithme
sur la réduction de l’entrée modulo un nombre premier donne un algorithme pro-
babiliste répondant à la question. Cette technique peut aussi servir de base à un
1. DÉCIDER, CALCULER 5

algorithme déterministe lorsque les nombres premiers pour lesquels la réponse est
fausse peuvent être maîtrisés. C’est le cas du pgcd : en évitant les premiers qui
divisent les coefficients de tête des deux polynômes, le degré du pgcd modulaire est
le même que le degré du pgcd exact.
D’autre part, les entiers modulaires sont utilisés dans les algorithmes reposant
sur le théorème des restes chinois. Ce théorème indique qu’un entier inférieur au
produit de nombres premiers p1 · · · pk peut être reconstruit à partir de ses réduc-
tions modulo p1 , . . . , pk . Lorsqu’une borne sur la taille du résultat est disponible,
il suffit d’effectuer le calcul modulo suffisamment de nombres premiers (choisis en
pratique assez grands pour que leur nombre soit faible et assez petits pour que les
opérations tiennent dans un mot machine), pour ensuite reconstruire le résultat,
court-circuitant de la sorte toute croissance intermédiaire.

Vecteurs et matrices. Une fois donnée une représentation exacte pour des coeffi-
cients, il est facile de construire des vecteurs ou matrices comme des tableaux, ou
plus souvent comme des tableaux de pointeurs sur les coefficients. Les opérations
de produit par un scalaire, de produit de matrices ou de produit d’une matrice
par un vecteur se réduisent aux opérations d’addition et de multiplication sur les
coefficients. Il en va de même pour la recherche de noyau ou d’inverse de matrices.

Proposition 1. Si K est un corps effectif, l’espace vectoriel Kn l’est aussi,


ainsi que l’anneau Mn (K).

Polynômes. Les polynômes peuvent être représentés de plusieurs manières, et la


meilleure représentation dépend des opérations que l’on souhaite effectuer. Pour un
polynôme en une variable, les choix principaux sont :
– la représentation dense : comme pour les entiers, le polynôme est représenté
comme un tableau de (pointeurs sur les) coefficients ;
– la représentation creuse : le polynôme est représenté comme une liste de
paires (coefficient, exposant) généralement triée par les exposants.
Dans les deux cas, nous avons clairement :

Proposition 2. Si A est un anneau effectif, alors A[X] l’est aussi.

L’usage récursif de cette proposition fournit les polynômes multivariés.

Fractions rationnelles. Les rationnels peuvent être stockés comme des paires où
numérateur et dénominateur sont des entiers de taille arbitraire. Les opérations
d’addition et de multiplication se réduisent aux opérations analogues sur les entiers
et le test d’égalité à zéro se réduit au test d’égalité à 0 sur le numérateur. De même,
les fractions rationnelles sont représentées par des paires de polynômes. Les opéra-
tions d’addition, produit, division, se réduisent aux additions et multiplications sur
les coefficients. Plus généralement, nous obtenons :

Proposition 3. Si A est un anneau intègre effectif, alors son corps des frac-
tions est effectif.

Séries tronquées. Les séries tronquées

N
X
ak X k + O(X N +1 )
k=0
6 1. CALCUL FORMEL ET COMPLEXITÉ

se représentent pratiquement comme des polynômes. La différence principale appa-


raît lors du produit : les coefficients des termes d’exposant au moins N + 1 n’ont
pas besoin d’être calculés, ni stockés.
Proposition 4. Si A est un anneau effectif et N ∈ N, alors A[X]/(X N +1 ) est
un anneau effectif.
Cette structure de données joue un rôle très important non seulement pour des
calculs d’approximations, mais aussi comme une représentation exacte. En voici
trois exemples :
1. Une fraction rationnelle dont les numérateurs et dénominateurs ont degré
borné par d peut être reconstruite à partir d’un développement en série à
l’ordre 2d + 1. Cette représentation joue ainsi un rôle clé dans la manipu-
lation des nombres algébriques (Chapitre 4), et dans le calcul efficace de la
division euclidienne de polynômes, de suites récurrentes linéaires (comme
le calcul rapide du 10 000-ième nombre de Fibonacci au Chapitre 5) et du
polynôme minimal d’une matrice creuse (Chapitre 10).
2. Il est possible de reconstruire une équation différentielle linéaire à coeffi-
cients polynomiaux à partir du développement en série d’une solution et
de bornes sur l’ordre et le degré des coefficients. De façon analogue, il est
possible de reconstruire une récurrence linéaire à coefficients polynomiaux
à partir des premières valeurs d’une de ses solutions. L’outil algorithmique
pour effectuer ces calculs de devinette (guessing en anglais) est le calcul
rapide d’approximants de Padé-Hermite (Chapitre 9).
3. Un polynôme en deux variables peut être reconstruit à partir du développe-
ment en série d’une solution. L’efficacité de la factorisation des polynômes
à deux variables, ou encore de la résolution de systèmes polynomiaux par
la méthode dite de résolution géométrique, abordée au Chapitre 22 repose
de manière cruciale sur cette opération, qui doit être effectuée rapidement.
1.3. Équations comme structures de données. Une fois construits les ob-
jets de base que sont les polynômes, les séries ou les matrices, il est possible d’abor-
der des objets mathématiques construits implicitement. Ainsi, il est bien connu qu’il
n’est pas possible de représenter toutes les solutions de polynômes de haut degré
par radicaux, mais de nombreuses opérations sur ces solutions sont aisées en pre-
nant le polynôme lui-même comme structure de données. Ce point de vue permet
d’étendre le domaine d’application du calcul formel pourvu que des algorithmes
soient disponibles pour effectuer les opérations souhaitées (typiquement addition,
multiplication, multiplication par un scalaire, test d’égalité) par manipulation des
équations elles-mêmes.

Nombres algébriques. C’est ainsi que l’on nomme les solutions de polynômes uni-
variés. Le résultat est spectaculaire.
Proposition 5. Si K est un corps effectif, alors sa clôture algébrique K l’est
aussi.
Les opérations d’addition et de multiplication peuvent être effectuées à l’aide de
résultants (Chapitre 7). Ceux-ci peuvent être calculés efficacement à l’aide de séries
(Chapitre 4). La division s’obtient par l’algorithme d’Euclide sur les polynômes
(Chapitre 7), et le test à zéro se déduit du pgcd. Par exemple, il est possible de
prouver assez facilement une identité comme
sin 2π
7 sin π7 sin 3π
7

(1) 2 3π − 2 2π + 2 π =2 7
sin 7 sin 7 sin 7
1. DÉCIDER, CALCULER 7

une fois que l’on reconnaît qu’il s’agit d’une égalité entre nombres algébriques.

Systèmes polynomiaux. Vu l’importance des systèmes polynomiaux, une grande


partie du cours leur sera consacrée. Un résultat important de cette partie est le
suivant.
Proposition 6. Si K est un corps effectif, f1 , . . . , fp des polynômes dans
K[X1 , . . . , Xn ] et I l’idéal qu’ils engendrent, alors le quotient K[X1 , . . . , Xp ]/I est
un anneau effectif.
Ce quotient est un outil de base pour répondre à de nombreuses questions
naturelles sur un système de polynômes, comme l’existence de solutions, la dimen-
sion de l’espace des solutions (qui indique s’il s’agit d’une surface, d’une courbe,
ou de points isolés), le degré, ou le calcul d’une paramétrisation de l’ensemble des
solutions.
Il est également possible d’éliminer une ou des variables entre des polynômes.
Cette opération peut s’interpréter géométriquement comme une projection. Dans le
cas le plus simple, elle permet de calculer un polynôme s’annulant sur les abscisses
des intersections de deux courbes. Une autre application est l’implicitisation, qui
permet par exemple de calculer une équation pour une courbe donnée sous forme
paramétrée.

Équations différentielles linéaires. Cette structure de données permet de repré-


senter de nombreuses fonctions usuelles (exponentielle, fonctions trigonométriques
et trigonométriques hyperboliques, leurs réciproques), ainsi que de nombreuses fonc-
tions spéciales de la physique mathématique (fonctions de Bessel, de Struve, d’An-
ger, . . ., fonctions hypergéométriques et hypergéométriques généralisées), ainsi que
bien sûr de multiples fonctions auxquelles n’est pas attaché un nom classique. Les
opérations d’addition et de produit sont effectuées par des variantes noncommuta-
tives du résultant qui se ramènent à de l’algèbre linéaire élémentaire (Chapitre 8).
Le test à zéro se ramène à tester l’égalité d’un nombre fini de conditions initiales.
Une partie de ces résultats se résume ainsi :
Proposition 7. Si K est un corps effectif, les séries formelles de K[[X]] qui
sont solution d’équations différentielles linéaires à coefficients dans K[X] forment
un anneau effectif.
En d’autres termes, des structures de données finies permettent de manipuler
ces objets infinis et d’en tester l’égalité ou la nullité.
Ainsi, des identités élémentaires comme sin2 X +cos2 X = 1 sont non seulement
facilement prouvables algorithmiquement, mais elles sont également calculables,
c’est-à-dire que le membre droit se calcule à partir du membre gauche.
Les relations étroites entre équations différentielles linéaires et récurrences li-
néaires — les séries solutions des unes ont pour coefficients les solutions des autres —
amènent aux mêmes réponses algorithmiques à des questions sur des suites. Par
exemple, l’identité de Cassini sur les nombres de Fibonacci
2
Fn+2 Fn − Fn+1 = (−1)n+1 , n≥0

est exactement du même niveau de difficulté que sin2 X + cos2 X = 1. Le pendant


du résultat précédent est donc :
Proposition 8. Si K est un corps effectif, l’ensemble des suites de KN solutions
de récurrences linéaires à coefficients dans K[n] forme un anneau effectif.
8 1. CALCUL FORMEL ET COMPLEXITÉ

Systèmes d’équations différentielles et de récurrences linéaires. Ces systèmes sont


aux équations différentielles ou de récurrences ce que les systèmes polynomiaux sont
aux polynômes en une variable. Les mêmes opérations sont disponibles. En parti-
culier, l’élimination s’étend dans ce cadre en introduisant des algèbres d’opérateurs
adaptés (Chapitre 27). Une application très importante, le téléscopage créatif, per-
met de calculer automatiquement des sommes et des intégrales définies. Ainsi,
 3
n k    
X

X n  = n23n−1 + 23n − 3n2n−2 2n ,
j=0
j n
k=0
 2

+y 2 ))
X∞
un exp 4u(xy−u(x
1−4u2
Hn (x)Hn (y) = √ ,
n=0
n! 1 − 4u2
1 1
J0 (x)2 + J1 (x)2 + J2 (x)2 + · · · = ,
2 2
Z +1 −px
e T (x)
√ n dx = (−1)n πIn (p),
−1 1 − x2
Z +∞  2
c − b2
  
−px2 1 bc
xe Jn (bx)In (cx) dx = exp Jn ,
0 2p 4p 2p
Z +∞
ln(1 − a4 )
xJ1 (ax)I1 (ax)Y0 (x)K0 (x) dx = − ,
0 2πa2
n 2 n 2
X qk X (−1)k q (5k −k)/2
= ,
(q; q)k (q; q)n−k (q; q)n−k (q; q)n+k
k=0 k=−n

formules qui mettent en jeu diverses fonctions spéciales ou polynômes orthogonaux


classiques, peuvent être prouvées automatiquement. Les algorithmes correspondants
seront décrits au Chapitre 28. L’énoncé en termes d’anneaux effectif est un peu lourd
et omis ici.
En conclusion, les exemples ci-dessus illustrent bien la manière dont le calcul
formel parvient à effectuer de nombreux calculs utiles dans les applications malgré
l’indécidabilité révélée par le théorème de Richardson.

2. Calculer rapidement
En pratique, la calculabilité n’indique que la faisabilité. Il faut disposer d’algo-
rithmes efficaces et d’une bonne implantation pour pouvoir effectuer des calculs de
grande taille. La première partie de ce cours est consacrée aux algorithmes efficaces
sur les structures de base du calcul formel. L’efficacité sera mesurée par la théorie
de la complexité et nous ferons ressortir des principes récurrents dans la conception
d’algorithmes efficaces.
Exemple 2. Pour donner une idée de ce que veut dire rapidement, voici ce qui
peut être calculé en une minute avec le système Magma sur une machine de bureau
d’aujourd’hui 1, en notant K le corps Z/pZ à p éléments, p = 67 108 879 étant un
nombre premier de 26 bits (dont le carré tient sur un mot machine) :
1. Entiers :
– produit de deux entiers avec 500 000 000 de chiffres ;
– factorielle de 20 000 000 (environ 140 000 000 de chiffres) ;
– factorisation d’un entier de 45 chiffres (150 bits).

1. La machine a un processeur AMD 64 à 2,2 GHz et une mémoire de 2 Go ; le système


d’exploitation est linux.
2. CALCULER RAPIDEMENT 9

2. Polynômes dans K[X] :


– produit de deux polynômes de degré 14 000 000 (plus d’un an avec la
méthode naïve) ;
– pgcd de deux polynômes de degré 600 000 ;
– résultant de deux polynômes de degré 40 000 ;
– factorisation d’un polynôme de degré 4 000.
3. Polynômes dans K[X, Y ] :
– résultant de deux polynômes de degré total 100 (sortie de degré
10 000) ;
– produit et somme de deux nombres algébriques de degré 450 (sortie
de degré 200 000) ;
– factorisation d’un polynôme de degré 500 en deux variables.
4. Matrices :
– déterminant d’une matrice 4 500 × 4 500 à coefficients dans K ;
– polynôme caractéristique d’une matrice 2 000 × 2 000 à coefficients
dans K ;
– déterminant d’une matrice 700 × 700 dont les coefficients sont des
entiers 32 bits.
Ces exemples montrent qu’il est relativement aisé de calculer avec des objets de
taille colossale (mais pas avec les algorithmes naïfs), et donnent envie d’introduire
une mesure de complexité des différents algorithmes permettant d’expliquer, voire
de prédire, les différences entre les tailles atteintes pour ces questions.
2.1. Mesures de complexité. Pour bien définir la complexité, il faut se
donner : un modèle de machine ; les opérations disponibles sur cette machine ; leur
coût unitaire. La complexité en espace mesure la mémoire utilisée par l’exécution de
l’algorithme, et la complexité en temps, la somme des coûts unitaires des opérations
effectuées par l’algorithme. Dans ce cours, nous n’abordons pas la complexité en
espace.

Machine RAM. Le modèle que nous utiliserons est celui de la Random Access
Machine (RAM). Dans ce modèle, un programme lit et écrit des entiers sur deux
bandes différentes et utilise un nombre arbitraire de registres entiers pour ses calculs
intermédiaires. Les opérations élémentaires (l’assembleur de la machine) sont la
lecture, l’écriture (sur bande ou en registre), l’addition, la soustraction, le produit,
la division et trois instructions de saut : saut inconditionnel, saut si un registre est
nul et saut si un registre est positif. Un point technique est que le programme ne
fait pas partie des données, il n’est donc pas modifiable.

Complexité binaire ou arithmétique. Nous considérerons deux mesures de com-


plexité :
1. Dans la complexité binaire, les bandes d’entrée et de sortie ainsi que les
registres ne peuvent stocker que des bits (0 ou 1). Les opérations d’addition,
soustraction, produit et division opèrent également sur des bits (on parle
d’opérations binaires). La mesure de complexité des algorithmes opérant
sur une telle machine tient compte de la taille des entiers manipulés et
modélise assez précisément le temps de calcul.
2. Dans la complexité arithmétique, les opérations sur les entiers ont coût uni-
taire. Cette mesure modélise précisément le temps de calcul pour des opéra-
tions sur des entiers modulaires ou sur les flottants machine. Nous étendrons
cette mesure au cas où les objets manipulés ne sont pas des entiers, mais
10 1. CALCUL FORMEL ET COMPLEXITÉ

plus généralement des éléments d’un anneau A donné et nous mesurerons


alors la complexité en nombre d’opérations arithmétiques dans A.
Exemple 3. Le calcul de n! par la méthode naïve requiert n opérations arith-
métiques et O(n2 log2 n) opérations binaires. Nous verrons au Chapitre 13 qu’il est
possible d’abaisser ce coût à seulement O(n1/2 log n) opérations arithmétiques, et
O(n log3 n) opérations binaires. Les algorithmes rapides permettant d’atteindre ces
complexités fournissent le meilleur algorithme connu de factorisation déterministe
d’entiers et des algorithmes très efficaces pour le calcul de millions de décimales
de π, log 2 et de nombreuses autres constantes. (La notation O() est rappelée en
Section 2.2).

Taille. Un algorithme et une structure de données sont généralement dotés d’une


notion naturelle de taille et il s’agit d’étudier le coût de l’algorithme en fonction de
cette taille. Pour simplifier, il est souvent commode de considérer le comportement
asymptotique de ce coût lorsque la taille tend vers l’infini. Il est important de
comprendre que la complexité d’un problème n’a de sens qu’une fois la structure
de données fixée pour l’entrée comme pour la sortie.
Par exemple, pour les polynômes, le choix de la représentation dense mène à
mesurer la complexité par rapport au degré, alors que le choix de la représentation
creuse met en avant le nombre de monômes. Pour la factorisation, la complexité est
polynomiale en le degré, mais exponentielle en le nombre de monômes, dans le cas
le pire.

Cas le pire, cas moyen. La complexité dans le cas le pire est le maximum des
complexités pour toutes les entrées d’une taille donnée. C’est celle que nous étudie-
rons. Il est souvent utile de considérer aussi la complexité en moyenne, lorsque l’on
peut mettre une mesure sur l’ensemble des entrées de taille bornée. Pour la plupart
des algorithmes que nous étudierons dans la première partie de ce cours, il n’y a
pas de différence importante entre les deux. Ce n’est plus le cas en revanche pour
la complexité des algorithmes sur les systèmes polynomiaux (où la notion de com-
plexité en moyenne est avantageusement remplacée par celle de complexité dans le
cas générique).

Bornes inférieures. La recherche de bornes inférieures de complexité est très dif-


ficile. Par exemple, à l’heure actuelle on ne sait pas prouver que la multiplication
de matrices est nécessairement plus coûteuse qu’un nombre borné d’additions. Dès
qu’il est possible de montrer que tous les bits de l’entrée doivent être pris en compte,
la somme de la taille de l’entrée et de la taille de la sortie est une borne inférieure sur
la complexité. En effet, dans le modèle RAM, chacune des écritures et des lectures
prend une opération.
Definition 2. Si N est la somme de la taille de l’entrée et de la taille de
la sortie, un algorithme sera dit quasi-optimal lorsque sa complexité est bornée
par O(N logk N ) pour un k ≥ 0 arbitraire.
L’essentiel de la première partie du cours consistera à rechercher des algo-
rithmes quasi-optimaux pour les opérations de base sur les structures de données
fondamentales.
2.2. La notation O(·). Nous utilisons la notation O(·) pour exprimer une
borne sur la complexité des algorithmes. La signification précise de la notation
f (n) = O(g(n)), n→∞
2. CALCULER RAPIDEMENT 11

n
m appels
... récursifs

≤ n/p ... ≤ n/p ≤ n/p


m 2 appels
... ... ...
récursifs

... ≤s
≤s ≤s

Figure 1. Les appels récursifs d’un algorithme « diviser pour régner ».

est qu’il existe K > 0 et A > 0 tels que pour tout n > A, f et g soient liés par
l’inégalité
|f (n)| ≤ K|g(n)|.
Lorsque plusieurs paramètres interviennent dans l’analyse de la complexité, il faut
absolument préciser lequel tend vers l’infini pour que cette notation ait un sens.
Si plusieurs d’entre eux tendent vers l’infini, soit ils sont liés par des inégalités qui
seront précisées, soit la définition ci-dessus s’étend avec une constante K qui ne
dépend d’aucun des paramètres.
La notation O(·) intervient aussi dans ce cours pour représenter la troncature
des séries. L’expression
f (X) := g(X) + O(X N )
signifiera que le polynôme ou la série g est tronqué après son N -ième terme et que
le résultat, un polynôme, est stocké dans f .

2.3. Diviser pour régner. Le principe le plus important de la conception


d’algorithmes efficaces est le paradigme « diviser pour régner ». Il consiste à résoudre
un problème en le réduisant à un certain nombre m d’entrées de taille divisées par p
(le plus souvent p = 2) puis à recombiner les résultats (voir Figure 1). Le coût de
la recombinaison et éventuellement du découpage préliminaire est borné par une
fonction T de la taille des entrées. Lorsque les entrées ont une taille inférieure à
p ou suffisamment petite (s) un autre algorithme de coût κ indépendant de n est
invoqué. Le coût total obéit alors à une récurrence de la forme
(
T (n) + mC(dn/pe), si n ≥ s(≥ p)
(2) C(n) ≤
κ sinon.

La notation dxe désigne l’entier k tel que k − 1 < x ≤ k (le « plafond » de x).
Qualitativement, le coût total de cette approche dépend fortement de la fonc-
tion T . Lorsque T est relativement élevée, les premiers niveaux de l’arbre contri-
buent à l’essentiel du coût et, à une constante près, le coût est donc dominé par
la première étape de récursion. Les algorithmes à base d’itération de Newton du
Chapitre 4 sont de ce type. À l’inverse, pour une fonction T assez faible, le bas de
12 1. CALCUL FORMEL ET COMPLEXITÉ

l’arbre domine le coût qui sera proportionnel au nombre de feuilles 2 O((n/s)logp m ).


L’algorithme de multiplication de polynômes de Karatsuba du Chapitre 2 et l’al-
gorithme de Strassen pour la multiplication de matrices (Chapitre 3) rentrent dans
cette catégorie. Enfin, il est possible que tous les O(logp (n/s)) niveaux de l’arbre
contribuent de manière assez équilibrée, menant à un coût en O(T (n) log n). La
transformée de Fourier rapide (Chapitre 2) et le classique algorithme de tri fusion
sont dans cette dernière catégorie.
Un cadre commode pour nos applications est résumé dans la proposition sui-
vante, dont une version simplifiée que nous utiliserons dans la plupart des cas est
donnée ensuite par le théorème 2. Nous commençons par le cas simple où la taille
est une puissance de p, où il est possible de donner des constantes précises dans les
inégalités.
Proposition 9. Soit C une fonction obéissant à l’inégalité (2) avec m > 0,
κ > 0 et T une fonction telle que
(3) qT (n) ≤ T (pn), n ∈ N,
avec 1 < q. Alors, si n → ∞ est une puissance de p,
 −1
m
 1− q

 T (n) + κ nlogp m si q > m,
C(n) ≤ T (n) logp n + κ nlogp q si q = m,
  
nlogp m T (n) qlogp s + κ

si q < m.
nlogp q m−q

Démonstration. Par récurrence, l’inégalité (3) entraîne d’abord q logp n T (1) ≤


T (n). Ensuite, l’utilisation répétée de l’inégalité sur C donne
 
n
C(n) ≤ T (n) + mC ,
p
     
n n n
(4) ≤ T (n) + mT + · · · + mk−1 T + mk
C ,
p pk−1 pk
 k−1 !
m m
(5) ≤ T (n) 1 + + ··· + + mk κ,
q q

où la dernière ligne résulte de (3) et du choix de k = blogp ns c + 1 ∈ [logp ns , logp n].


Ce choix entraine la suite d’inégalités suivante :
mk ≤ m · mlogp (n/s) = nlogp m · m1−logp s ≤ nlogp m
qui permet de borner le deuxième terme de (5).
Si m < q, la somme entre parenthèses est majorée par la série géométrique.
Si m = q, la somme comporte k termes égaux.
Si m > q, récrire la somme sous la forme
 k−1   q k−1 
m q
1+ + ··· +
q m m
montre que le premier terme de (5) est majoré par
 k
m 1
T (n) .
q m−q
Ensuite, les inégalités q −k ≤ q − logp n/s = n− logp q q logp s permettent de conclure. 

2. La notation logp x représente le logarithme en base p de x, c’est-à-dire log x/ log p. L’identité


alogp b = blogp a sera utile.
NOTES 13

En pratique la régularité de T est souvent plus forte que celle donnée par (3)
et on ne cherche qu’à comparer des estimations de O(). Le résultat prend alors une
forme plus simple, et sans restriction sur n.
Théorème 2 (Diviser pour régner). Soit C une fonction obéissant à l’inéga-
lité (2) avec m > 0 et κ > 0, et soit T une fonction croissante telle que
(6) qT (n) ≤ T (pn) ≤ rT (n), n ∈ N,
avec 1 < q ≤ r. Alors, lorsque n → ∞

O(T (n)), si q > m,


C(n) = O(T  (n) log n),  si q = m,
O nlogp m Tlog(n)


npq
si q < m.

Démonstration. Soit N la puissance de p telle que n ≤ N < pn. En déroulant


l’inégalité (2) on obtient une inégalité similaire à (4) où la division par p est rempla-
cée par l’opération x 7→ dx/pe. La fonction T étant supposée croissante, toutes ces
valeurs de T sont majorées par les valeurs en N/pi , i = 0, . . . , k−1 et on obtient donc
une majoration (5) où n est remplacé par N . Il ne reste plus qu’à majorer cette ex-
pression. La croissance de T et l’hypothèse (6) donnent T (N ) ≤ T (pn) = O(T (n)),
ce qui permet de conclure. 
Exemple 4. La complexité de l’algorithme de Karatsuba du Chapitre 2 s’ob-
tient avec m = 3, p = 2 et T linéaire, si bien que q = r = 2, d’où une complexité
C(n) = O(nlog2 3 ).

Avertissement
Pour toute la suite du cours, et sauf mention contraire, nous faisons les conven-
tions de notation et de terminologie suivantes :
– tous les anneaux et corps sont supposés effectifs, commutatifs et unitaires ;
– les estimations de complexité sont en nombre d’opérations arithmétiques dans
l’anneau de base ;
– le symbole  marque la fin d’une démonstration ;
– les logarithmes sont en base 2, lorsque la base n’est pas spécifiée ;
– le lemme « diviser pour régner » fait référence à l’énoncé de la Proposition 9 ;
– le théorème « diviser pour régner » fait référence à l’énoncé du Théorème 2.

Notes
Les références générales sur les algorithmes du calcul formel sont deux livres :
celui de von zur Gathen et Gerhard [13] et celui, plus élémentaire, de Geddes,
Czapor et Labahn [6]. La complexité est également utilisée comme fil conducteur
dans le livre plus difficile de Bürgisser, Clausen et Shokrollahi [3]. Une bonne in-
troduction à la seconde partie du cours, sur les systèmes polynomiaux, est le livre
de Cox, Little et O’Shea [4]. De premiers éléments pour aborder la partie 3, sur les
équations différentielles et les récurrences linéaires, sont donnés dans le livre A = B
de Petkovšek, Wilf et Zeilberger [9].
Le théorème de Richardson-Matiyasevich que nous énonçons a ses racines dans
les travaux sur le 10e problème de Hilbert sur l’existence d’un algorithme permettant
de trouver les racines entières des polynômes multivariés à coefficients entiers. Une
étape importante dans la résolution de ce problème est due à Davis, Putnam et Ro-
binson [5] qui montrent en 1961 l’indécidabilité de ce problème si en plus des poly-
nômes on considère la fonction x 7→ 2x . Quelques années plus tard, Richardson [10]
ramène les problèmes de racines réelles en plusieurs variables à ces questions, et,
à l’aide d’un codage astucieux par le sinus, y ramène aussi les problèmes en une
14 1. CALCUL FORMEL ET COMPLEXITÉ

variable. Par rapport à notre énoncé, son théorème fait intervenir la fonction exp et
la constante ln 2 (pour utiliser le résultat de Davis, Putnam et Robinson), ainsi que
la constante π (pour utiliser la nullité du sinus aux multiples entiers de π). Deux
ans plus tard, en 1970, Matiyasevich prouve que la fonction x 7→ 2x elle-même peut
s’exprimer à l’aide de polynômes, concluant ainsi la preuve de l’indécidabilité du
10e problème de Hilbert. Le théorème de Richardson peut alors être simplifié, et
c’est ce que fait Matiyasevich dans son livre [8], où il montre aussi comment se
débarrasser de la constante π. Il faut noter que par contre, si l’on remplace le sinus
par l’exponentielle, alors la simplification devient décidable [11].
Ces théorèmes s’appliquent à des fonctions. Pour des constantes, l’approche
la plus récente réduit le test à zéro à une conjecture de théorie des nombres due
à Schanuel qui exprime que les seules relations entre exponentielles et logarithmes
sont celles qui découlent des formules d’addition et de multiplication. Si l’on accepte
cette conjecture de Schanuel, alors un résultat récent de Macintyre et Wilkie en
1996 [7] entraîne l’existence d’un algorithme de reconnaissance de 0 pour la classe
des constantes obtenues à partir de 1 par addition, soustraction, multiplication et
exponentielle. Un tel algorithme, à base d’évaluation numérique et de LLL (voir
Chap. 29) a ensuite été donné en 1997, à nouveau par Richardson [12].
Les différents modèles de complexité (machine RAM, straight-line program,
machine de Turing, . . .) sont bien présentés par Aho, Hopcrof et Ullman dans [1].
La jolie identité (1) est tirée de [2].

Bibliographie
[1] Aho (Alfred V.), Hopcroft (John E.), and Ullman (Jeffrey D.). – The design and analysis of
computer algorithms. – Addison-Wesley Publishing Co., , x+470p.
[2] Beck (Matthias), Berndt (Bruce C.), Chan (O-Yeat), and Zaharescu (Alexandru). – Deter-
minations of analogues of Gauss sums and other trigonometric sums. Int. J. Number Theory,
vol. 1, n‌3, , pp. 333–356.
[3] Bürgisser (Peter), Clausen (Michael), and Shokrollahi (M. Amin). – Algebraic complexity
theory. – Springer-Verlag, Berlin, , Grundlehren Math. Wiss., vol. 315, xxiv+618p.
[4] Cox (David), Little (John), and O’Shea (Donal). – Ideals, varieties, and algorithms. –
Springer-Verlag, New York, , second edition, xiv+536p.
[5] Davis (Martin), Putnam (Hilary), and Robinson (Julia). – The decision problem for exponen-
tial diophantine equations. Annals of Mathematics. Second Series, vol. 74, , pp. 425–436.
[6] Geddes (Keith O.), Czapor (Stephen R.), and Labahn (George). – Algorithms for Computer
Algebra. – Kluwer Academic Publishers, .
[7] Macintyre (Angus) and Wilkie (A. J.). – On the decidability of the real exponential field. In
Kreiseliana, pp. 441–467. – A K Peters, Wellesley, MA, .
[8] Matiyasevich (Yuri V.). – Hilbert’s tenth problem. – MIT Press, Cambridge, MA, , Foun-
dations of Computing Series, xxiv+264p. Translated from the 1993 Russian original by the
author, With a foreword by Martin Davis.
[9] Petkovšek (Marko), Wilf (Herbert S.), and Zeilberger (Doron). – A = B. – A. K. Peters,
Wellesley, MA, , xii+212p.
[10] Richardson (Daniel). – Some undecidable problems involving elementary functions of a real
variable. Journal of Symbolic Logic, vol. 33, n‌4, , pp. 514–520.
[11] Richardson (Daniel). – Solution of the identity problem for integral exponential functions.
Zeitschrift fur mathematischen Logik und Grundlagen der Mathematik, vol. 15, , pp. 333–
340.
[12] Richardson (Daniel). – How to recognize zero. Journal of Symbolic Computation, vol. 24, n‌6,
, pp. 627–645.
[13] von zur Gathen (Joachim) and Gerhard (Jürgen). – Modern computer algebra. – Cambridge
University Press, New York, , xiv+753p.
Première partie

Algorithmes Fondamentaux
CHAPITRE 2

Multiplication rapide

Résumé

Les algorithmes rapides de calcul de produit de polynômes et d’entiers


sont au cœur de l’algorithmique efficace en calcul formel. La plupart
des gains de complexité dans les chapitres ultérieurs reposent sur l’ef-
ficacité de la multiplication. Pour multiplier deux polynômes de degré
n à coefficients dans un anneau A, la méthode classique requiert O(n2 )
opérations dans A. De même, l’algorithme scolaire de multiplication de
deux entiers à n chiffres nécessite un nombre d’opérations binaires en
O(n2 ). Nous présentons dans ce chapitre plusieurs algorithmes de multi-
plication rapide, dont celui de Karatsuba, de complexité O(n1,59 ), ainsi
que ceux utilisant la transformée de Fourier rapide, dont la complexité
est essentiellement linéaire en n.

1. Introduction, résultats principaux


Les problèmes abordés dans ce chapitre concernent la complexité arithmétique
de la multiplication des polynômes à une variable et la complexité binaire de la
multiplication des entiers. Au vu de l’exemple suivant, il est facile de se convaincre
de la similitude des deux questions :
Polynômes : Soient à multiplier 3X 2 + 2X + 1 et 6X 2 + 5X + 4 dans Z[X].

(3X 2 + 2X + 1) × (6X 2 + 5X + 4)

= (3 · 6)X 4 + (3 · 5 + 2 · 6)X 3 + (3 · 4 + 2 · 5 + 1 · 6)X 2 + (2 · 4 + 1 · 5)X + (1 · 4)

= 18X 4 + 27X 3 + 28X 2 + 13X + 4.

Nombres entiers : Soient à multiplier 321 et 654 en base 10.

(3 · 102 + 2 · 10 + 1) × (6 · 102 + 5 · 10 + 4)

= (3 · 6)104 + (3 · 5 + 2 · 6)103 + (3 · 4 + 2 · 5 + 1 · 6)102 + (2 · 4 + 1 · 5)10 + (1 · 4)

= 18 · 104 + 27 · 103 + 28 · 102 + 13 · 10 + 4

= 2 · 105 + 9 · 103 + 9 · 102 + 3 · 10 + 4 = 209934.

Dans les deux cas, nous avons retranscrit l’algorithme naïf, et la suite des calculs
est essentiellement la même, si ce n’est que, dans le cas des entiers, il faut en outre
gérer les retenues (dernière égalité de l’exemple). On ne sera donc pas surpris que
les résultats obtenus dans les deux cas soient très semblables.
17
18 2. MULTIPLICATION RAPIDE

Résultats. Dans toute la suite, (A, +, ×) désignera un anneau (commutatif et uni-


taire). Tout d’abord, nous considérons la complexité arithmétique ; il s’agit de mi-
nimiser le nombre d’opérations (+, −, ×) dans A pour multiplier des polynômes en
degré borné. Les premiers résultats à retenir de ce chapitre sont les suivants.

La multiplication des polynômes de degré au plus n dans A[X] requiert :


– O(n2 ) opérations dans A par l’algorithme naïf ;
– O(n1,59 ) opérations dans A par l’algorithme de Karatsuba ;
– O(n log n log log n), voire dans certains cas O(n log n) opérations dans A, via
la transformée de Fourier rapide (FFT).

Ainsi, la multiplication des polynômes peut se faire en un coût arithmétique


essentiellement linéaire en leur degré.
La multiplication des polynômes est omniprésente : les algorithmes de calcul
de pgcd (plus grand commun diviseur), de pgcd étendu, de factorisation en une
ou plusieurs variables, de composition des séries formelles, d’évaluation multipoint,
d’interpolation, font tous intervenir des produits de polynômes.
L’analogie entre les entiers et les polynômes va très loin ; la plupart des réponses
apportées dans le cadre de la complexité arithmétique trouvent un équivalent en
complexité binaire. Cependant, aucun théorème d’équivalence n’est connu ; il se
trouve que les mêmes idées algorithmiques s’adaptent plus ou moins facilement dans
les deux cadres. Ainsi, on dispose des résultats suivants dans le modèle binaire.

On peut multiplier des entiers de n chiffres binaires par :


– l’algorithme naïf en O(n2 ) opérations binaires ;
– l’algorithme de Karatsuba en O(n1,59 ) opérations binaires ;
– l’algorithme de Schönhage-Strassen en O(n log n log log n) opérations binaires.

Les preuves de ces résultats de complexité binaire sont plus délicates que celles
de leurs analogues polynomiaux, à cause des problèmes de gestion des retenues.
Ainsi, dans la suite, nous ne traitons d’abord en détail que les versions polynomiales
de ces résultats, le cas entier étant ensuite brièvement passé en revue.

En pratique. Les constantes cachées dans les O(·) sont déterminantes pour l’effica-
cité pratique de tels algorithmes. Par exemple, lorsque A est un corps fini de taille
« raisonnable » (typiquement, dont les éléments sont représentés sur quelques mots
machine), pour le produit de polynômes dans les meilleures implantations actuelles
(magma, NTL) :
– l’algorithme de Karatsuba bat l’algorithme naïf pour des degrés d’environ 20 ;
– les méthodes à base de FFT en O(n log n) battent l’implantation de Karat-
suba pour des degrés de l’ordre de 100, mais ne peuvent pas être utilisées
pour des degrés arbitrairement grands (vient un moment où on manque de
racines de l’unité, voir plus loin) ;
– l’algorithme de type FFT en O(n log n log log n) est utilisé pour des degrés
de l’ordre de quelques dizaines ou centaines de milliers.
Certains problèmes, en cryptologie ou en théorie des nombres, nécessitent de mani-
puler des polynômes de degré de l’ordre de 100 000, tailles auxquelles les algorithmes
rapides sont indispensables. Plus fréquemment, des degrés de l’ordre de la centaine
ou du millier font partie du quotidien du calculateur formel (au moins dans des
calculs intermédiaires).
Ces algorithmes ne sont pas concurrents, mais complémentaires. Les bonnes im-
plantations passent automatiquement sur l’algorithme le plus efficace en fonction du
2. ALGORITHME NAÏF 19

2.5
"MultiplicationRapide.out"

temps de multiplication (en secondes)


2

1.5

0.5

0
500 1000 1500 2000
degre des polynomes multiplies

Figure 1. Courbe de complexité pratique de la multiplication


dans A[X], où A = Z/4179340454199820289 Z.

degré. Nous donnons dans la Figure 1 la courbe de complexité pratique 1 de la multi-


plication polynomiale à coefficients dans le corps fini A = Z/4179340454199820289 Z.
L’allure de cette courbe confirme que les estimations théoriques de complexité
sont respectées en pratique. Le comportement quasi-linéaire par morceaux, agré-
menté de sauts entre les puissances successives de 2, est typique des implantations
actuelles de la FFT.
La situation pour les entiers est similaire, même si l’implantation des algo-
rithmes rapides pour les entiers est bien plus délicate en raison des retenues. Dans
les meilleures implantations actuelles (magma, GMP) :
– l’algorithme de Karatsuba bat l’algorithme naïf pour des nombres de l’ordre
de 100 chiffres binaires ;
– les méthodes à base de FFT (Schönhage-Strassen) gagnent pour des nombres
d’environ 10 000 chiffres binaires.
À nouveau, des entiers de quelques centaines de chiffres sont courants dès que
l’on sort des exemples jouets. Au-delà, des problèmes venus de la cryptologie ou de
la théorie des nombres demandent de manipuler des nombres de taille colossale (de
l’ordre de 100 000 000 de chiffres ; il faut 10 Mo pour stocker un tel nombre). Ceci
justifie amplement les efforts d’implantation d’algorithmes rapides.
Notation 1. On travaille avec des polynômes F et G à coefficients dans un
anneau A, ayant un degré au plus n − 1, formellement
F = f0 + · · · + fn−1 X n−1 et G = g0 + · · · + gn−1 X n−1 ;
le problème est alors de calculer (les coefficients de)
H = F G = h0 + · · · + h2n−2 X 2n−2 .

2. Algorithme naïf
Cet algorithme consiste à développer le produit, c’est-à-dire à écrire
2n−2
X X
H = FG = hi X i avec hi = fj gk .
i=0 j+k=i

Ainsi, calculer tous les hi demande O(n2 ) opérations dans A. C’est un algorithme
de complexité arithmétique quadratique.

1. Calculs effectués avec le logiciel Magma, version V2.12-1, sur un Opteron 150 (2,4 GHz).
20 2. MULTIPLICATION RAPIDE

Exercice 1. Montrer que, pour multiplier deux polynômes de degrés m et n,


l’algorithme naïf demande au plus (m + 1) × (n + 1) multiplications dans A et mn
additions dans A.
Exercice 2. Montrer que, pour multiplier deux entiers à n chiffres chacun,
l’algorithme naïf demande O(n2 ) opérations binaires.
Exercice 3. Estimer la complexité binaire de la méthode naïve lorsque les
polynômes ont degré n et des coefficients entiers bornés en valeur absolue par un
entier H.
Exercice 4. Shigeru Kondo a calculé 25 000 000 000 décimales de π sur un PC
de bureau 2. Ce type de calcul repose sur la multiplication d’entiers. En supposant
que la machine de Kondo était capable d’effectuer 1012 opérations à la seconde,
montrer que Kondo n’a pas utilisé l’algorithme naïf.

3. Algorithme de Karatsuba
Un premier raffinement de l’algorithme naïf repose sur la remarque suivante : il
est possible de gagner une multiplication pour le produit des polynômes de degré 1,
parmi les 4 du produit par l’algorithme quadratique. Soient en effet à multiplier les
polynômes
F = f0 + f1 X et G = g0 + g1 X.
Le produit H = F G s’écrit
H = f0 g0 + (f0 g1 + f1 g0 )X + f1 g1 X 2 .
On évite d’effectuer les 4 produits f0 g0 , f0 g1 , f1 g0 , f1 g1 en remarquant que le coef-
ficient de X s’écrit
f0 g1 + f1 g0 = (f0 + f1 )(g0 + g1 ) − f0 g0 − f1 g1 .
Cette écriture mène à un algorithme qui effectue au total 3 multiplications et 4 ad-
ditions.
Quelques additions sont perdues par rapport à l’algorithme naïf, mais le gain
d’une multiplication va se transformer en gain dans l’exposant de l’algorithme, par
application récursive.
Passons en effet au cas général des degrés quelconques. En s’inspirant de l’ob-
servation précédente, nous scindons F et G en deux. Nous supposons donc que F
et G sont de degré au plus n − 1, et choisissons k = dn/2e. Posons alors
(1) F = F (0) + F (1) X k , G = G(0) + G(1) X k ,
pour des polynômes F (0) , F (1) , G(0) , G(1) de degrés au plus k − 1. Le produit H =
F G s’écrit
H = F (0) G(0) + (F (0) G(1) + F (1) G(0) )X k + F (1) G(1) X 2k .
L’algorithme est présenté en Figure 2.
Le théorème qui suit établit maintenant la complexité de l’algorithme.
Théorème 1. Si n est une puissance de 2, l’algorithme de Karatsuba calcule
le produit de deux polynômes de degré au plus n − 1 en au plus 9nlog2 3 opérations
dans A.

2. Calcul effectué en 2003 ; le record actuel est de 5 × 1012 chiffres, obtenu en août 2010 par
Alexander J. Yee et Shigeru Kondo http://www.numberworld.org/misc_runs/pi-5t/announce_
en.html.
3. ALGORITHME DE KARATSUBA 21

Algorithme de Karatsuba
Entrée : F, G de degré au plus n − 1.
Sortie : H = F G.
1. Si n = 1, renvoyer F G.
2. Décomposer F et G selon l’équation (1).
3. Calculer A1 = F (0) G(0) et A2 = F (1) G(1) récursivement.
4. Calculer A3 = F (0) + F (1) et A4 = G(0) + G(1) .
5. Calculer A5 = A3 A4 récursivement.
6. Calculer A6 = A5 − A1 et A7 = A6 − A2 .
7. Renvoyer A1 + A7 X k + A2 X 2k .

Figure 2. Multiplication de polynômes par l’algorithme de Karatsuba.

Démonstration. Un appel en degré < n effectue 3 appels récursifs en degré


< n/2, plus quelques additions, comptées comme suit : l’étape 4 effectue 2 additions
en tailles < n/2 ; l’étape 6 effectue 2 additions en tailles < n ; quant à l’étape 7, A1
et A2 X n sont à supports monomiaux distincts, donnant la somme A1 + A2 X n sans
coût arithmétique, puis la somme totale en 1 addition en taille < n. Le coût K(n)
satisfait donc à la récurrence
K(n) ≤ 3K(n/2) + 4n,
où le terme 4n vient compter le nombre d’additions dans A. Le lemme « diviser
pour régner » permet alors de conclure avec p = q = s = 2, m = 3, T (n) = 4n, et
κ = 1 (coût de l’algorithme naïf en degré 0). 
Le résultat général suivant se déduit pour un degré quelconque.
Corollaire 1. On peut multiplier deux polynômes de degré n (quelconque) en
O(nlog2 3 ) = O(n1,59 ) opérations dans A.
En effet, soit N la plus petite puissance de 2 telle que N > n. Alors, le pro-
duit de F et de G perd au pire un facteur constant par rapport à l’estimation du
Théorème 1.
Exercice 5. Borner la constante cachée dans l’estimation asymptotique du
Corollaire 1.
En fonction de la nature de l’anneau ou du corps de base, on peut vouloir
arrêter les appels récursifs avant d’avoir atteint le degré 0. Ce choix dépend des
vitesses relatives de l’addition et de la multiplication.
Exercice 6. Soit n une puissance de 2. Établir un algorithme hybride de
multiplication dans A[X], qui fait appel à l’algorithme de Karatsuba pour n > 2d
et à l’algorithme naïf pour n ≤ 2d . Montrer que la complexité arithmétique C(n)
de cet algorithme vérifie C(n) ≤ γ(d)nlog2 3 − 8n pour tout n ≥ 2d , où γ(d) est une
fonction qui dépend uniquement de d. Trouver la valeur de d qui minimise γ(d) et
comparer le résultat avec celui du Théorème 1.
Exercice 7. Est-il possible de multiplier par un algorithme universel, c’est-
à-dire indépendant de l’anneau de base A, deux polynômes de degré au plus 1 en
utilisant seulement 2 multiplications dans A ?
Exercice 8. Soit A un anneau et soient A et B deux polynômes de degré au
plus 3 dans A[X].
22 2. MULTIPLICATION RAPIDE

Multiplication par FFT


Entrée : F, G deux polynômes, n un entier, ω une racine primitive ne de 1.
Sortie : H = F G mod X n − 1.
1. Précalcul. Calculer les puissances ω 2 , . . . , ω n−1 .
2. Évaluation. Calculer les valeurs :
Ev(F ) = F (ω 0 ), . . . , F (ω n−1 ) ; Ev(G) = G(ω 0 ), . . . , G(ω n−1 ) .
 

3. Produit point à point.


Ev(F ), Ev(G) 7→ Ev(F G) = F G(ω 0 ), . . . , F G(ω n−1 ) .
 

4. Interpolation.
Ev(F G) 7→ F G.

Figure 3. Multiplication de polynômes par transformée de Fou-


rier discrète.

1. Estimer le nombre de multiplications de A requises par l’algorithme de


Karatsuba pour calculer le produit AB.
2. On suppose que 2, 3 et 5 sont inversibles dans A et que la division d’un
élément de A par 2, 3 et 5 est gratuite. Donner un algorithme qui multiplie
A et B en utilisant au plus 7 multiplications dans A.
3. On suppose que 2, 3 et 5 sont inversibles dans A. Donner un algorithme de
multiplication polynomiale dans A[X] de complexité arithmétique O(n1,4 ).
Dans la suite de l’exercice, on suppose que l’anneau A est de caractéristique nulle.
4. Montrer que, pour tout entier α ≥ 2, il existe un algorithme de multiplica-
tion polynomiale dans A[X] de complexité arithmétique O(nlogα (2α−1) ).
5. Montrer que pour tout ε > 0, il existe un algorithme de multiplication po-
lynomiale dans A[X] de complexité arithmétique O(n1+ε ), où la constante
dans le O(·) dépend de ε, mais pas de n.

4. Transformée de Fourier rapide


Les méthodes à base de transformée de Fourier rapide (aussi appelée FFT
pour Fast Fourier Transform) sont ce que l’on sait faire de mieux pour multiplier
les polynômes. Pour simplifier la présentation, on suppose ici que l’on cherche à
multiplier des polynômes F et G dans A[X], de degrés strictement inférieurs à n/2
(ou plus généralement tels que deg F G < n).
4.1. Idée de l’algorithme. En supposant que l’anneau A le permette, l’idée
générale de l’algorithme est présentée en Figure 3. Il s’agit d’évaluer en des points
bien choisis, de multiplier les évaluations, et de reconstruire les coefficients du pro-
duit à partir de ces valeurs (à condition que cette opération d’interpolation soit pos-
sible, voir ci-dessous). Avec l’hypothèse deg H < n, les coefficients de H mod X n −1
qui sont renvoyés sont bien ceux de H. Le coût des étapes de précalcul et de produit
point à point est linéaire en n, et il reste donc à voir comment effectuer rapidement
les opérations d’évaluation et d’interpolation.
4.2. Racines primitives de l’unité.
Definition 1. L’élément ω de A est une racine ne de l’unité si ω n = 1 ; c’est
une racine ne primitive de l’unité si de plus ω t − 1 est non diviseur de zéro dans A
pour t ∈ {1, . . . , n − 1} (c’est-à-dire que α(ω t − 1) = 0 implique α = 0).
4. TRANSFORMÉE DE FOURIER RAPIDE 23

Exemple 1. Si A est un corps, cette dernière condition revient simplement à


dire que les ω t sont distincts pour t ∈ {0, . . . , n − 1}, ou que ω engendre le groupe
des racines nes de l’unité. Par exemple, dans C, −1 n’est pas une racine 4e primitive
de l’unité, alors que i l’est. Plus généralement, lorsque A = C, les racines primitives
ne de l’unité sont de la forme exp(2qiπ/n), pour q premier avec n.
Exemple 2. Dans A = Z/16Z, 3 et 5 sont racines 4es primitives de 1, alors
que 7 ne l’est pas.
Les propriétés que nous utiliserons sont résumées dans le lemme suivant.
Lemme 1. Si ω est racine primitive ne de l’unité, alors
1. ω −1 aussi ;
2. si n = pq alors ω p est une racine primitive q e de l’unité ;
3. pour ` ∈ {1, . . . , n − 1},
n−1
X
ω `j = 0.
j=0

Démonstration. Tout d’abord ω est bien inversible : l’identité ω n = 1 montre


que ω n−1 est un inverse de ω. Ensuite, ω −1 est une racine de l’unité : le produit
de l’identité précédente par ω −n donne 1 = ω −n . Enfin, elle est primitive : lorsque
ω t − 1 n’est pas diviseur de 0, son produit par l’inversible ω −t non plus.
La deuxième propriété est immédiate. Pour la troisième, le produit de la somme
par 1 − ω ` télescope les sommants, ce qui donne
n−1
X
(1 − ω ` ) ω `j = 1 − ω `n = 1 − (ω n )` = 0.
j=0
`
Comme 1 − ω n’est pas diviseur de 0, la somme est bien nulle. 
Remarque. Dans la définition de racine primitive, la condition t diviseur strict
de n suffit, elle entraîne la propriété pour t ∈ {1, . . . , n − 1}.
En effet, en posant g le pgcd de t et de n, il existe d’après le théorème de
Bézout deux entiers p, q ∈ N tels que g = tp + nq. L’égalité α(ω t − 1) = 0 entraîne
alors 0 = α(ω tp − 1) = α(ω g−nq − 1) = α(ω g − 1), et donc α = 0, puisque g est un
diviseur strict de n.
4.3. Transformée de Fourier rapide. L’opération
DFT : F ∈ A[X] 7→ (F (1), F (ω), . . . , F (ω n−1 ),
où ω est une racine primitive ne de l’unité, s’appelle la transformée de Fourier
discrète. Son calcul rapide est effectué par un algorithme de type « diviser pour
régner ».
Pour appliquer cette idée, supposons que n est pair, n = 2k. Alors, ω k = −1
puisque
(ω k − 1)(ω k + 1) = ω n − 1 = 0
et le premier facteur n’est pas diviseur de 0. Le polynôme F est décomposé par
division euclidienne de deux façons :
F = Q0 (X k − 1) + R0 et F = Q1 (X k + 1) + R1 ,
avec deg R0 < k et deg R1 < k. Ces décompositions vont nous permettre le calcul
de F sur les puissances paires et impaires de ω. En effet, si ` est pair, ω k` = 1 et
donc F (ω ` ) = R0 (ω ` ). De même, si ` est impair, F (ω ` ) = R1 (ω ` ).
Outre l’application récursive, le point crucial qui est la source de l’efficacité de
l’algorithme de transformée de Fourier rapide (Figure 4) et qui conduit au choix de
24 2. MULTIPLICATION RAPIDE

Transformée de Fourier Rapide


Entrée : F = f0 + · · · + fn−1 X n−1 ; les puissances 1, ω, · · · , ω n−1 d’une
racine ne primitive de l’unité ω, n étant une puissance de 2.
Sortie : F (1), . . . , F (ω n−1 ).
1. Si n = 1, renvoyer f0 .
2. Sinon, soit k = n/2. Calculer
k−1
X k−1
X
R0 (X) = (fj + fj+k )X j , R̄1 (X) = R1 (ωX) = (fj − fj+k )ω j X j .
j=0 j=0

2
3. Calculer récursivement R0 (1), R0 (ω ), .. . , R0 (ω 2 )k−1
et R̄1 (1), R̄1 (ω 2 ), . . . , R̄1 (ω 2 )k−1 .
 
4. Renvoyer R0 (1), R̄1 (1), R0 (ω 2 ), R̄1 (ω 2 ), . . . , R0 (ω 2 )k−1 , R̄1 (ω 2 )k−1 .

Figure 4. La transformée de Fourier rapide (FFT).

racines primitives de l’unité, est que le calcul de R0 et R1 est très simple (étape 2).
i
Le fait que les ω 2 utilisés dans les appels récursifs sont bien des racines primitives
découle du Lemme 1.
Théorème 2. L’algorithme de Transformée de Fourier Rapide de la Figure 4
requiert au plus 3n
2 log n opérations dans A ; les multiplications font toutes intervenir
une puissance de ω.
Démonstration. Puisque les puissances de ω sont connues, le coût de l’appel
en degré n est d’au plus 2 × n/2 additions et soustractions (pour le calcul de R0
et R1 ) et de n/2 multiplications (pour le calcul de R̄1 ), plus 2 appels récursifs en
degré n/2. Sa complexité F (n) satisfait donc à la récurrence :
3n n
F (n) ≤ + 2F
2 2
et le lemme « diviser pour régner » (avec p = q = m = s = 2, T (n) = 3n/2 et
κ = 0) permet de conclure. 
Exercice 9. Montrer que l’algorithme de la Figure 4 requiert n log n additions
dans A, 12 n log n multiplications d’éléments de A par des puissances de ω, mais
aucune autre multiplication dans A.
Remarque. La transformée de Fourier discrète est un morphisme d’algèbres
sur A de A[X]/(X n − 1) dans An avec comme multiplication dans An la multi-
plication coordonnée par coordonnée. Cette observation permet d’économiser des
transformées inverses en effectuant plusieurs calculs directement sur les transfor-
mées.
4.4. Interpolation. En termes matriciels, l’opération F 7→ Ev(F ) est linéaire
et sa matrice (pour des polynômes F de degré au plus n−1, dans la base monomiale
{1, X, . . . , X n−1 }) est la matrice de Vandermonde
···
 
1 1 1
n−1
 1 ω ··· ω 
Vω =  .. .. .
 
 . . 
2
1 ω n−1 ··· ω (n−1)
Lemme 2. Si ω ∈ A est racine ne primitive de l’unité, alors Vω−1 Vω = nIn .
4. TRANSFORMÉE DE FOURIER RAPIDE 25

Démonstration. D’après le Lemme 1, ω est inversible. La matrice Vω−1 est


donc bien définie. Le coefficient de la ie ligne et j e colonne du produit s’écrit
n−1
X n−1
X
ω (i−1)k ω −(j−1)k = ω (i−j)k .
k=0 k=0

D’après le Lemme 1, cette dernière somme est nulle pour 0 < i−j < n. Par symétrie
des matrices, elle est aussi nulle si 0 < j − i < n. Les coefficients en dehors de la
diagonale sont donc tous nuls. Sur la diagonale, la somme comporte n termes, tous
égaux à 1, d’où le résultat. 
Autrement dit, l’interpolation sur les puissances de ω se ramène à une FFT sur
les puissances de ω −1 , qui est bien primitive d’après le Lemme 1.

4.5. Conclusion. Les résultats de cette section sont résumés dans le théorème
suivant.
Théorème 3. Si 2 est inversible dans A et n une puissance de 2, étant donnée
une racine primitive ne dans A, le produit de deux polynômes dont la somme des
degrés est inférieure à n peut être calculé en 92 n log n + O(n) opérations dans A.
Seuls n des produits sont entre deux éléments de A qui ne sont pas des puissances
de ω.
Démonstration. La complexité de l’algorithme de multiplication par FFT
(Figure 3) est de 3 FFT en degré n, soit 92 n log n opérations, plus O(n) divisions
par n (ce qui est possible puisque 2 est inversible) et O(n) multiplications pour
calculer les puissances de ω. Les multiplications de la FFT font intervenir des puis-
sances de ω, les autres sont celles de l’étape de produit point à point, au nombre
de n. 
Exercice 10. Montrer que sous les hypothèses du théorème précédent, on peut
multiplier ces polynômes en utilisant 3n log n + O(n) additions dans A, 23 n log n +
O(n) multiplications par des puissances de ω, n multiplications arbitraires dans A
et n divisions par n.
Exercice 11. Soit n dans N, soit n0 la plus petite puissance de 2 supérieure
ou égale à n, et supposons qu’il existe dans A une racine n0 e primitive de l’unité.
Cette racine étant connue, on peut multiplier les polynômes de degré au plus 12 n − 1
en 9n log n + O(n) opérations dans A.
Exercice 12. Soit n = 2k , et supposons qu’on dispose d’une racine ne primitive
de l’unité ω ∈ A. Soit P et Q deux polynômes dans A[X] de degré au plus n −
1. Supposons que les coefficients de X 0 , X 1 , . . . , X n−1 du produit R = P Q sont
connus. Montrer que R peut être calculé en 29 n log n + O(n) opérations dans A.
4.6. Mais où sont nos racines ? Même dans le cas favorable où A est un
corps, il n’y existe pas nécessairement toutes les racines primitives de l’unité néces-
saires pour appliquer les techniques des algorithmes précédents. Dans le cas particu-
lier des corps finis, on sait donner une réponse précise à cette question d’existence.
Proposition 1. Soient Fq le corps fini à q éléments et n ∈ N. Le corps Fq
contient une racine ne primitive de l’unité si et seulement si n divise q − 1.
Exercice 13. 1. Prouver le théorème précédent.
2. Montrer que si n divise q − 1 et si α est un élément primitif de Fq (i. e. tel
que α engendre le groupe multiplicatif (Fq \ {0}, ×)) alors α(p−1)/n est une
racine ne primitive de l’unité.
26 2. MULTIPLICATION RAPIDE

Pour pouvoir appliquer le théorème 2 avec n assez grand et q premier, c’est-à-


dire Fq = Z/pZ, ce résultat mène à la notion de premiers de Fourier, qui sont les
nombres premiers p tels que p − 1 soit divisible par une grande puissance de 2, donc
de la forme `2e + 1, avec e « suffisamment grand » (qui est appelé l’exposant de p).
Par exemple,
4179340454199820289 = 29 × 257 + 1
est un tel nombre premier. Ainsi, dans Z/4179340454199820289 Z, on dispose de
racines primitives 257 e de l’unité (21 en est une) ; on peut donc y multiplier des
polynômes de degrés colossaux par cet algorithme en O(n log n) opérations.
Ces premiers sont donc très utiles pour la FFT sur des corps finis. On peut
montrer qu’il y a approximativement (x/ log x)/2e−1 premiers de Fourier d’exposant
e inférieurs à x. Il s’ensuit qu’il y a environ 130 corps finis de la forme k = Fp tel
que p a la taille d’un mot machine (32 bits) et tel que dans k on puisse multiplier
par FFT des polynômes de degré de l’ordre d’un million. Les racines de l’unité de
k = Fp peuvent être calculées à partir des éléments primitifs. Si on choisit au hasard
un élément de Fp , lorsque p → ∞, la probabilité qu’il soit primitif tend vers 6/π 2 ,
soit plus de 0, 6.

5. L’algorithme de Schönhage et Strassen


Quand les racines de l’unité font défaut, il reste possible de faire fonctionner
les idées à base de transformée de Fourier. Ceci est réalisé par l’algorithme de
Schönhage et Strassen. Cet algorithme s’applique quel que soit l’anneau de base,
pourvu que 2 y soit inversible ; l’idée est de rajouter les racines de l’unité qui
manquent en étendant l’anneau de base de manière judicieuse.
5.1. Racines virtuelles de l’unité. Le point de départ de l’algorithme est
résumé dans le résultat suivant.
Lemme 3. Si 2 est inversible dans A et n est une puissance de 2, alors ω =
X mod (X n + 1) est une racine 2ne primitive de l’unité dans A[X]/(X n + 1).
Démonstration. Comme ω n = −1, ω est bien une racine 2ne de l’unité. Il
reste à prouver qu’elle est primitive. D’après la remarque en p. 23, il s’agit de
montrer que ω t − 1 n’est pas diviseur de 0, quel que soit le diviseur strict t de 2n.
Puisque n est une puissance de 2, l’entier t divise n, et donc ω t − 1 divise l’élément
ω n − 1 = −2 qui est supposé inversible, ce qui conclut.

5.2. L’algorithme. L’algorithme est décrit en Figure 5. Il calcule le produit
F G modulo X 2n + 1 ; ce n’est pas une limitation ici, car le produit a un degré
inférieur à 2n, et cela a l’avantage d’assurer la cohérence dans les appels récursifs.
La première étape ne demande pas d’opération arithmétique, et l’évaluation de la
dernière étape se fait en complexité linéaire.
Le degré du produit F G étant inférieur à 2δ, son calcul par FFT dans B[Y ]
peut être effectué avec une racine 2δ e de l’unité dans B. Si k est pair, alors δ = d ;
sinon δ = 2d. On peut donc utiliser ω = X 2 qui est une racine primitive de l’unité
d’ordre 2d dans le premier cas, et ω = X qui est une racine primitive de l’unité
d’ordre 4d dans le second. D’après le théorème 3, cette multiplication nécessite :
– O(d log d) opérations (+, −) dans B, chacune en O(d) opérations dans A ;
– O(d log d) multiplications par une puissance de ω dans B, chacune en O(d)
opérations dans A, par simples décalages des indices et éventuels changements
de signes ;
– O(d) divisions par d dans B, chacune en O(d) opérations dans A ;
– au plus 2δ produits dans B.
6. ALGORITHMES POUR LES ENTIERS 27

Schönhage-Strassen sur les polynômes


Entrée : F et G de degré < n, où n = 2k .
Sortie : F G mod X 2n + 1.
1. Soient d = 2dk/2e et δ = n/d. Récrire F et G sous la forme
F (X, Y ) = F0 (X) + F1 (X)Y + · · · + Fδ (X)Y δ−1 ,
G(X, Y ) = G0 (X) + G1 (X)Y + · · · + Gδ (X)Y δ−1 ,
de sorte que les Fi et Gi aient degré < d et F (X) = F (X, X d ), G(X) =
G(X, X d ).
2. Calculer H := F G dans B[Y ] par FFT, où B = A[X]/(X 2d + 1) et les
produits dans B sont effectués par le même algorithme.
3. Renvoyer H(X, X d ).

Figure 5. L’algorithme de Schönhage-Strassen sur les polynômes.

Le coût C(n) de cet algorithme obéit donc à l’inégalité


C(n) ≤ Kd log d × d + 2δC(d)
où K est une constante indépendante de n et de A. En divisant par n = dδ, cette
inégalité devient
C(n) d C(d) C(d)
≤ K log d + 2 ≤ K 0 log n + 2 ,
n δ d d
pour n assez grand, et une constante K 0 indépendante de n et de A. Posant c(k) =
C(2k )/2k , cette inégalité se récrit
c(k) ≤ K 0 k + 2c(dk/2e),
d’où le résultat final par application du théorème « diviser pour régner ».
Théorème 4. Soit A un anneau dans lequel 2 est inversible (d’inverse connu).
On peut multiplier des polynômes de A[X] de degré au plus n en O(n log n log log n)
opérations (+, −, ×) dans A.
Il est possible d’étendre cette idée au cas où 3 est inversible (FFT triadique),
et plus généralement à un anneau quelconque. On obtient alors l’algorithme de
complexité O(n log n log log n) mentionné dans l’introduction.

6. Algorithmes pour les entiers


Les algorithmes ainsi que les résultats présentés ci-dessus s’étendent à la mul-
tiplication des entiers 3. Nous allons brièvement présenter cette problématique à
travers un exemple.
Soient à multiplier les entiers 2087271 et 1721967, qu’on suppose donnés en
base 2,
A = 111111101100101100111 et B = 110100100011001101111,
chacun ayant D = 21 chiffres binaires. On peut ramener leur multiplication à un
produit de polynômes. Plus exactement, on associe à A et B les polynômes de degré
strictement inférieur à D :
P = X 20 +X 19 +X 18 +X 17 +X 16 +X 15 +X 14 +X 12 +X 11 +X 8 +X 6 +X 5 +X 2 +X+1

3. Historiquement, les algorithmes pour la multiplication des entiers ont été introduits avant
leurs homologues polynomiaux, alors que ces derniers sont souvent bien plus simples à énoncer.
28 2. MULTIPLICATION RAPIDE

et
Q = X 20 + X 19 + X 17 + X 14 + X 10 + X 9 + X 6 + X 5 + X 3 + X 2 + X + 1.
La stratégie est la suivante : on calcule R = P Q dans Z[X] puis on évalue R
en X = 2. Pour multiplier P et Q dans Z[X], il suffit d’effectuer leur produit
dans A[X] = (Z/p Z)[X], où p est un nombre premier tel que 2D > p > D.
Par le Théorème 4, cette multiplication polynomiale en degré D peut se faire en
O(D log D log log D) opérations (+, −, ×) dans A = Z/p Z.
Puisque chaque opération de A nécessite au plus O(log2 D) opérations binaires,
il s’ensuit que le coût binaire du calcul de R est de O(D log3 D log log D). Ici p = 23
et R (écrit en base 2) vaut R = X 40 + 10X 39 + 10X 38 + 11X 37 + 11X 36 + 11X 35 +
100X 34 + 11X 33 + 11X 32 + 100X 31 + 11X 30 + 100X 29 + 101X 28 + 11X 27 + 101X 26 +
1000X 25 +101X 24 +101X 23 +1000X 22 +1001X 21 +1010X 20 +1000X 19 +111X 18 +
1000X 17 + 110X 16 + 110X 15 + 110X 14 + 11X 13 + 100X 12 + 110X 11 + 100X 10 +
11X 9 + 100X 8 + 100X 7 + 100X 6 + 11X 5 + 10X 4 + 11X 3 + 11X 2 + 10X + 1. Enfin,
l’évaluation de R en 2 revient à gérer les retenues et cela peut se faire en un coût
négligeable. Ici AB = R(2) = 110100010011010111101101110110110110101001, ou
encore, en écriture décimale AB = 3594211782057.
Une légère amélioration est possible si l’on choisit pour p un premier de Fourier
supérieur à 2D. Dans notre exemple, on peut prendre p = 193 = 3 · 26 + 1. En
effet, il existe dans A = Z/193 Z une racine primitive ω = 125, d’ordre 26 = 64,
donc supérieur à 2D = 40. Ce choix mène à un algorithme de complexité binaire
O(D log3 D).
Une autre approche est de calculer P Q dans Z[X] par DFT en calculant avec des
nombres complexes représentés par des approximations numériques flottantes. Une
estimation des erreurs numériques montre qu’il suffit de calculer en précision fixe
O(log2 D). La complexité binaire est donc toujours O(D log3 D) via cette approche.
On peut faire un peu mieux, en remplaçant la base 2 par une base B telle que
B log B soit de l’ordre de log D et en appliquant l’un des raisonnements précédents ;
on peut aboutir ainsi à un algorithme de complexité binaire O(D log2 D). Qui plus
est, en appelant récursivement l’algorithme pour multiplier les petits entiers, on
peut descendre cette complexité à O(D log D log log D log log log D . . .).
Une meilleure solution est cependant détenue par la version entière, à base de
κ
FFT dans des anneaux de type Z/(22 +1)Z, de l’algorithme de Schönhage-Strassen,
dont nous nous contentons de mentionner l’existence.
Théorème 5. On peut multiplier deux entiers de D chiffres binaires en utili-
sant O(D log D log log D) opérations binaires.
En élaborant largement au-delà de ces techniques de  FFT, la complexité du

produit entier peut être ramenée à O n log n · 2O(log n) , où log∗ n est le nombre
d’itérations du logarithme pour ramener n en dessous de 1. Par exemple (pour la
base 2), log∗ 256 = 4, car log 256 = 8, log 8 = 3, 1 < log 3 < 2 et enfin log log 3 < 1.

7. Un concept important : les fonctions de multiplication


Un bon nombre des résultats de complexité donnés dans la suite du cours
reposent sur la notion de fonction de multiplication. Une fonction M : N → N sera
dite fonction de multiplication polynomiale (pour un anneau A) si :
– on peut multiplier les polynômes de A[X] de degré au plus n en au plus M(n)
opérations dans A ;
– M vérifie l’inégalité M(n + n0 ) ≥ M(n) + M(n0 ).
Ainsi, on sait d’après ce qui précède que des fonctions de la forme nlog2 3 ou
n log n sont (à des constantes près) des fonctions de multiplication (respectivement
pour tous les anneaux ou ceux qui permettent la transformée de Fourier). L’intérêt
EXERCICES 29

de cette notion est qu’elle permet d’énoncer des résultats de complexité indépen-
dants du choix de l’algorithme utilisé pour multiplier les polynômes (même si parfois
cela mène à des estimations légèrement pessimistes).
La seconde condition est utilisée pour écarter l’hypothèse d’une fonction qui
croît trop lentement (si M est constante, elle ne vérifie pas cette condition). Con-
crètement, elle permettra par exemple d’établir que dans des algorithmes du type
« inversion de série formelle par l’opérateur de Newton » (Chap. 4), le coût total
est essentiellement celui de la dernière étape.
De la même manière, on est amené à introduire la notion de fonction de multipli-
cation pour les entiers. Une fonction MZ : N → N est une fonction de multiplication
pour les entiers si :
– on peut multiplier des entiers de n chiffres en MZ (n) opérations binaires.
– MZ vérifie l’inégalité MZ (n + n0 ) ≥ MZ (n) + MZ (n0 ).
Ce concept est très proche de son analogue polynomial et les contextes d’utilisation
sont souvent les mêmes : on utilise la seconde condition pour contrôler les coûts de
multiplication lors de l’analyse d’algorithmes récursifs.

Exercices
Exercice 14. Soit A un anneau, soit a ∈ A et soit P un polynôme de A[X],
de degré au plus n. On se propose de calculer le polynôme Q(X) = P (X + a).
1. Donner un algorithme direct pour le calcul de Q et estimer sa complexité
en termes de n ;

2. Montrer qu’il est possible de calculer Q(X) en n’utilisant que O M(n) log n
opérations (+, −, ×) dans A.
Exercice 15. Soit A un anneau, soit κ, n ∈ N et soit P un polynôme de A[X],
de degré au plus n.
1. Donner un algorithme direct pour le calcul de P (X)κ et estimer sa com-
plexité en fonction de κ et de n ;

2. Montrer qu’il est possible de calculer P (X)κ en n’utilisant que O M(nκ)
opérations (+, −, ×) dans A.
Exercice 16 (Produit court). Pour deux polynômes A, B ∈ Q[X] de degré
< n, le polynôme AB mod X n est appelé le produit court de A et B. Le but de cet
exercice est de montrer qu’il est possible de calculer plus efficacement le produit
court que le produit entier AB. Le gain est d’un facteur constant.
1. Prouver que tel est le cas avec la multiplication polynomiale naïve.
On suppose que l’on dispose d’un algorithme de multiplication polynomiale qui, en
degré n, utilise Mα (n) = Knα opérations dans Q, avec α > 1 et K > 0.
2. Donner un algorithme de type « diviser pour régner » pour le calcul du
produit court de A, B.
3. Montrer que la complexité de cet algorithme est 2α1−2 Mα (n) + O(n log n).
En déduire l’impact sur la multiplication naïve, et celle de Karatsuba.
4. Modifier la conception de l’algorithme précédent, en découpant en deux
sous-problèmes de tailles βn et (1 − β)n, avec 1/2 ≤ β ≤ 1 laissé en
paramètre. Prouver que le nouvel algorithme utilise
βα
· Mα (n) + O(n log n)
1 − 2(1 − β)α
opérations dans Q.
30 2. MULTIPLICATION RAPIDE

α
β
5. Montrer que le minimum de la fonction β 7→ 1−2(1−β) α est atteint en
1
βmin = 1 − 12 α−1 et en déduire qu’on peut calculer le produit court en


C(α) Mα (n) + O(n log n) opérations dans Q, où


 1 α
2 α−1 − 1
C(α) = α .
2 α−1 − 2
6. En admettant que C(log2 3) = 0, 8077700579, que peut-on conclure ?
Exercice 17. Soient P1 , . . . , Pt des polynômes de A[X], de degrés d1 , . . . , dt .
que le produit P1 · · · Pt peut s’effectuer en O(M(n) log t) opérations dans A,
MontrerP
où n = i di .

Notes
Le mathématicien russe A. N. Kolmogorov avait conjecturé au début des an-
nées 1960 qu’il serait impossible de multiplier deux entiers en un coût binaire sous-
quadratique. En 1962 cette conjecture fut infirmée par Karatsuba et Ofman [23].
Une généralisation de leur algorithme a été proposée peu de temps après par
Toom [34]√
et Cook [8]. L’algorithme de Toom-Cook a une complexité binaire de
O(n · 32 log n ) pour multiplier deux entiers de taille binaire n ; ce résultat peut être
importé dans le monde polynomial (voir Exercice 8 pour une version plus faible).
L’algorithme FFT a une longue histoire, qui remonte à Gauss [21, 10, 12]. Il
s’agit d’un progrès algorithmique très célèbre : Dongarra et Sullivan [14] le placent
parmi les dix algorithmes qui ont le plus marqué le développement des sciences
de l’ingénieur du 20e siècle. L’article fondateur de Cooley et Tukey [11] est l’un
des plus cités en informatique 4. La variante de la DFT décrite dans ce chapitre,
appelée decimation-in-frequency en anglais, est due à Gentleman et Sande [19] ; il
s’agit d’une version duale (au sens du principe de transposition de Tellegen évoqué
au Chapitre 12) de l’algorithme decimation-in-time de [11]. Les livres [3, 29, 36]
et les articles [15, 1, 16] constituent de bonnes références pour le lecteur dési-
reux de se familiariser avec la myriade de techniques de type FFT ; en particulier,
l’article [16] décrit l’une des implantations les plus efficaces de la transformée de
Fourier complexe (appelée FFTW, pour Fastest Fourier Transform in the West.)
Une avancée importante a été la découverte de Schönhage et Strassen [32] du
résultat équivalent pour la multiplication des nombres entiers. Pendant longtemps,
on a cru que cet algorithme ne pourrait présenter qu’un intérêt purement théorique.
À ce jour, la plupart des logiciels généralistes de calcul formel disposent d’une
multiplication rapide d’entiers : Maple, Mathematica et Sage utilisent la bibliothèque
GMP, Magma dispose de sa propre implantation. Il faut noter qu’une bibliothèque
comme GMP est le résultat d’un travail de nombreuses années, qui comporte une
partie importante de code assembleur consacré à la multiplication sur chacun des
processeurs produits dans une période récente.
L’analogue polynomial de l’algorithme de Schönhage-Strassen traité en Sec-
tion 5 a été suggéré par Nussbaumer [28]. Le cas particulier de la caractéristique 2
est traité par Schönhage [31]. Plus récemment, Cantor et Kaltofen [5] ont donné un
algorithme qui multiplie des polynômes de degré n sur une algèbre A (non néces-
sairement commutative, ni associative) en O(n log n loglog n) opérations dans A.

La borne de complexité binaire O n log n · 2O(log n) mentionnée en fin de Sec-
tion 6, pour multiplier des entiers de n chiffres, a été obtenue récemment par Fü-
rer [17, 18, 13]. À ce jour, on ne connaît pas de borne analogue pour la complexité
arithmétique de la multiplication polynomiale en degré n.

4. Plus de 2000 citations, d’après la base bibliographique Science Citation Index (SCI R ).
Bibliographie 31

Un problème ouvert est de trouver un algorithme de multiplication polynomiale


en complexité O(n), ou de prouver qu’un tel algorithme n’existe pas. Morgens-
tern [26] a donné une première réponse partielle, en montrant que dans un modèle
simplifié où A = C et où les seules opérations admises sont les additions et les mul-
tiplications par des nombres complexes de module inférieur à 1, au moins 12 n log n
opérations sont nécessaires pour calculer une DFT en taille n. Plus récemment,
Bürgisser et Lotz [4] ont étendu ce type de borne à la multiplication dans C[X].
Concernant les entiers, Cook et Aanderaa [9] ont prouvé une borne inférieure de
la forme cn log n/(log log n)2 pour la multiplication en taille binaire n sur une ma-
chine de Turing. Cette borne a été améliorée à Ω(n log n) pour un modèle restreint
(multiplication en ligne) [30].
Malgré la simplicité de leur idée de base, les algorithmes de Karatsuba et de
Toom-Cook soulèvent encore des questions délicates ; les travaux récents [37, 25,
7, 2] traitent diverses généralisations (degrés déséquilibrés ou non-puissances, ca-
ractéristique positive de l’anneau des scalaires). Par exemple, connaître le nombre
minimum de multiplications sm(n) (resp. smp (n)) suffisantes pour multiplier des
polynômes de degré donné n sur un anneau arbitraire (resp. sur un anneau de ca-
ractéristique p) est un problème important et difficile. Pour les premières valeurs
de n, les meilleures bornes connues actuellement, dues à Montgomery [25], sont
sm(1) ≤ 3, sm(2) ≤ 6, sm(3) ≤ 9, sm(4) ≤ 13, sm(5) ≤ 17 et sm(6) ≤ 22. L’optima-
lité de ces bornes est un problème difficile. Pour smp (n), on sait par exemple que
sm2 (1) = 3, sm2 (2) = 6, sm2 (3) = 9 [22] et que sm7 (4) = 10, sm5 (4) ≤ 11 [6].
Une autre question importante est de savoir si les n coefficients du produit court
F G mod X n de deux polynômes F et G de degré au plus n peuvent être calculés
plus efficacement que l’ensemble des 2n coefficients du produit F G. L’exercice 16,
inspiré d’un résultat de Mulders [27], apporte une réponse positive dans le cas où
l’algorithme de multiplication est celui de Karatsuba. Par contre, on ne connaît
aucun élément de réponse dans le cas où la multiplication polynomiale repose sur
la DFT. Une question liée, le calcul du produit médian [20], sera abordée au Cha-
pitre 12.
Une faiblesse de l’algorithme DFT est son comportement quasi-linéaire par mor-
ceaux (voir la Figure 1), dû aux sauts de complexité entre deux puissances succes-
sives de 2. Récemment, van der Hoeven [35] a donné un nouvel algorithme, appelé
TFT (de Truncated Fourier Transform en anglais), qui coïncide avec la DFT si n
est une puissance de 2 et a une courbe de complexité « plus lisse » que la DFT.
Le produit de t polynômes de degrés arbitraires d1 , . . . , dt peut Ps’effectuer [33]
en O(M(n)(1 + H(d1 , . . . , dt ))) opérations, où H(d1 , . . . , dt ) = − i dni · log dni est
l’entropie du vecteur (d1 /n, . . . , dt /n). La multiplication des polynômes à plusieurs
variables peut se ramener à la multiplication univariée grâce à une technique connue
sous le nom d’astuce de Kronecker [24].

Bibliographie
[1] Bernstein (D. J.). – Multidigit multiplication for mathematicians. – Preprint, available from
http://cr.yp.to/papers.html.
[2] Bodrato (Marco) and Zanoni (Alberto). – Integer and polynomial multiplication : towards
optimal Toom-Cook matrices. In ISSAC’07, pp. 17–24. – ACM, New York, .
[3] Brigham (E. Oran). – The fast Fourier transform. – Prentice-Hall, , xiii+252p.
[4] Bürgisser (Peter) and Lotz (Martin). – Lower bounds on the bounded coefficient complexity
of bilinear maps. J. ACM, vol. 51, n‌3, , pp. 464–482.
[5] Cantor (D. G.) and Kaltofen (E.). – On fast multiplication of polynomials over arbitrary
‌ , , pp. 693–701.
algebras. Acta Informatica, vol. 28, n7
[6] Cenk (M.), Koc (C. K.), and Ozbudak (F.). – Polynomial multiplication over finite fields using
field extensions and interpolation. In ARITH ’09. pp. 84–91. – IEEE Computer Society, .
32 2. MULTIPLICATION RAPIDE

[7] Chung (Jaewook) and Hasan (M. Anwar). – Asymmetric squaring formulae. In ARITH ’07 :
Proc. of the 18th IEEE Symp. on Computer Arithmetic. pp. 113–122. – IEEE, .
[8] Cook (S.). – On the minimum computation time of functions. – PhD thesis, Harvard Uni-
versity, .
[9] Cook (S. A.) and Aanderaa (S. O.). – On the minimum computation time of functions.
Transactions of the American Mathematical Society, vol. 142, , pp. 291–314.
[10] Cooley (James W.). – How the FFT gained acceptance. In A history of scientific computing
(Princeton, NJ, 1987), pp. 133–140. – ACM, New York, .
[11] Cooley (James W.) and Tukey (John W.). – An algorithm for the machine calculation of
complex Fourier series. Mathematics of Computation, vol. 19, , pp. 297–301.
[12] Cooley (James W.) and Tukey (John W.). – On the origin and publication of the FFT paper.
Current Contents, vol. 33, n‌51–52, , pp. 8–9.
[13] De (A.), Kurur (P. P.), Saha (C.), and Saptharishi (R.). – Fast integer multiplication using
modular arithmetic. In STOC’08. pp. 499–506. – ACM, New York, NY, USA, .
[14] Dongarra (J.) and Sullivan (F.). – Top ten algorithms. Computing in Science & Engineering,
vol. 2, n‌1, , pp. 22–23.
[15] Duhamel (P.) and Vetterli (M.). – Fast Fourier transforms : a tutorial review and a state of
the art. Signal Processing. An Interdisciplinary Journal, vol. 19, n‌4, , pp. 259–299.
[16] Frigo (M.) and Johnson (S. G). – The Design and Implementation of FFTW3. Proceedings
of the IEEE, vol. 93, n‌2, , pp. 216–231.
[17] Fürer (Martin). – Faster integer multiplication. In STOC’07—Proceedings of the 39th Annual
ACM Symposium on Theory of Computing, pp. 57–66. – ACM, New York, .
[18] Fürer (Martin). – Faster integer multiplication. SIAM J. Comput., vol. 39, n‌3, , pp. 979–
1005.
[19] Gentleman (W. M.) and Sande (G.). – Fast Fourier Transforms : for fun and profit. In
AFIPS’66. pp. 563–578. – ACM, New York, NY, USA, .
[20] Hanrot (Guillaume), Quercia (Michel), and Zimmermann (Paul). – The middle product al-
gorithm I. Appl. Algebra Engrg. Comm. Comput., vol. 14, n‌6, March , pp. 415–438.
[21] Heideman (Michael T.), Johnson (Don H.), and Burrus (C. Sidney). – Gauss and the history
‌ , , pp. 265–277.
of the fast Fourier transform. Arch. Hist. Exact Sci., vol. 34, n3
[22] Kaminski (Michael). – A lower bound for polynomial multiplication. Theoret. Comput. Sci.,
vol. 40, n‌2-3, , pp. 319–322.
[23] Karatsuba (A.) and Ofman (Y.). – Multiplication of multidigit numbers on automata. Soviet
Physics Doklady, vol. 7, , pp. 595–596.
[24] Moenck (Robert T.). – Another polynomial homomorphism. Acta Informat., vol. 6, n‌2, ,
pp. 153–169.
[25] Montgomery (Peter L.). – Five, six, and seven-term Karatsuba-like formulae. IEEE Trans.
Comput., vol. 54, n‌3, , pp. 362–369.
[26] Morgenstern (Jacques). – Note on a lower bound of the linear complexity of the fast Fourier
transform. J. Assoc. Comput. Mach., vol. 20, , pp. 305–306.
[27] Mulders (Thom). – On short multiplications and divisions. Applicable Algebra in Engineering,
Communication and Computing, vol. 11, n‌1, , pp. 69–88.
[28] Nussbaumer (Henri J.). – Fast polynomial transform algorithms for digital convolution. Ins-
titute of Electrical and Electronics Engineers. Transactions on Acoustics, Speech, and Signal
Processing, vol. 28, n2‌ , , pp. 205–215.
[29] Nussbaumer (Henri J.). – Fast Fourier transform and convolution algorithms. – Springer-
Verlag, Berlin, , Springer Series in Information Sciences, vol. 2, x+248p.
[30] Paterson (M. S.), Fischer (M. J.), and Meyer (A. R.). – An improved overlap argument for
on-line multiplication. In Complexity of computation, pp. 97–111. – AMS, .
[31] Schönhage (A.). – Schnelle Multiplikation von Polynomen über Körpern der Charakteristik 2.
Acta Informat., vol. 7, n‌4, /, pp. 395–398.
[32] Schönhage (A.) and Strassen (V.). – Schnelle Multiplikation großer Zahlen. Computing, vol. 7,
, pp. 281–292.
[33] Strassen (V.). – The computational complexity of continued fractions. SIAM J. Comput.,
vol. 12, n‌1, , pp. 1–27.
Bibliographie 33

[34] Toom (A. L.). – The complexity of a scheme of functional elements simulating the multipli-
cation of integers. Doklady Akademii Nauk SSSR, vol. 150, , pp. 496–498.
[35] van der Hoeven (Joris). – The truncated Fourier transform and applications. In ISSAC’04,
pp. 290–296. – ACM, New York, .
[36] Van Loan (Charles). – Computational frameworks for the fast Fourier transform. – SIAM,
Philadelphia, PA, , Frontiers in Applied Mathematics, vol. 10, xiv+273p.
[37] Weimerskirch (André) and Paar (Christof). – Generalizations of the Karatsuba algorithm for
efficient implementations, . Cryptology ePrint Archive : Report 2006/224, available at
http://eprint.iacr.org/2006/224.
CHAPITRE 3

Algèbre linéaire dense : de Gauss à Strassen

Résumé
L’algèbre linéaire est au cœur de nombreux problèmes algorithmiques.
La multiplication matricielle usuelle et la méthode du pivot de Gauss
ont une complexité arithmétique cubique en la taille. Dans ce chapitre,
nous montrons que pour la plupart des questions d’algèbre linéaire dense
– multiplication, inversion, déterminant, résolution de système – il existe
des algorithmes plus efficaces, de complexité strictement sous-cubique.

1. Introduction
En mathématiques, il est de coutume de considérer qu’un problème est rendu
trivial lorsqu’il est ramené à une question d’algèbre linéaire. Du point de vue cal-
culatoire se pose cependant la question de l’efficacité des opérations matricielles.

1.1. L’algorithmique des matrices : tentative de classification. Les


problèmes algorithmiques en algèbre linéaire cachent des difficultés très subtiles.
En général, les premières questions que l’on est amené à se poser en rapport avec la
manipulation des matrices concernent le calcul efficace du produit matrice-matrice,
du produit matrice-vecteur, de l’inverse, ainsi que la résolution de systèmes.
Les réponses à ces questions varient fortement selon le type de matrices considérées.
Une classification possible est la suivante.

Les matrices denses. Ce sont les matrices quelconques, sans aucune structure par-
ticulière. Nous verrons que l’algorithmique des matrices denses peut se ramener
essentiellement au produit matriciel, dont la complexité est une question extrême-
ment délicate.

Les matrices creuses. Beaucoup de problèmes linéaires se formulent en termes de


matrices possédant un nombre important d’éléments nuls, dites « creuses ». Dans
ce cas, l’algorithmique dense est inappropriée ; il est possible de tirer parti de la
forme creuse en utilisant des outils mieux adaptés, à base de récurrences linéaires.

Les matrices structurées. Enfin, il existe des familles de matrices particulières,


souvent associées à des applications linéaires entre espaces de polynômes, telles
que les matrices de type Sylvester pour le résultant, de type Vandermonde pour
l’évaluation et l’interpolation, de type Toeplitz et Hankel pour l’approximation de
Padé et de Padé-Hermite, etc . . . Pour ces types de matrices clairement identifiés,
on développe soit une algorithmique ad hoc, soit une théorie unifiée reposant sur le
concept de « rang de déplacement ».

Schématiquement, l’algorithmique des matrices denses est la plus lente, de com-


plexité située entre O(n2 ) et O(n3 ), en taille n. La complexité du calcul avec les
matrices creuses est de l’ordre de O(n2 ), alors que celle des matrices structurées est
en O(n), à des facteurs logarithmiques près.
35
36 3. ALGÈBRE LINÉAIRE DENSE : DE GAUSS À STRASSEN

L’algorithmique des matrices denses constitue l’objet d’étude de ce chapitre.


Les matrices creuses seront abordées brièvement au Chapitre 10 et les matrices
structurées feront l’objet d’une étude plus approfondie au Chapitre 11.
Nous allons travailler avec un corps effectif noté K et avec l’algèbre des matrices
carrées Mn (K) à coefficients dans K. Signalons toutefois que la plupart des résultats
de ce chapitre s’étendent au cas où le corps K est remplacé par un anneau effectif A,
et les matrices carrées par des matrices rectangulaires à coefficients dans A.
1.2. Résultat principal. Les questions qui seront étudiées, ou simplement
évoquées, dans ce chapitre sont celles de la complexité du calcul du produit matri-
ciel dans Mn (K), de l’inverse et du déterminant, du polynôme caractéristique ou
minimal, de la résolution de systèmes linéaires, ou encore de la mise sous diverses
« formes canoniques » (échelon, LUP, compagnon par blocs, . . . )
Pour ces questions, on dispose d’une première famille d’algorithmes « naïfs »,
reposant sur l’application directe des définitions ou des propriétés mathématiques.
Si l’algorithme naïf de multiplication a une complexité raisonnable, cubique en la
taille, dans d’autres cas l’emploi des algorithmes naïfs est vivement déconseillé.
Par exemple, si A = (ai,j )ni,j=1 est une matrice de Mn (K), on n’utilisera pas la
définition
X Y n
det(A) = sgn(σ) ai,σ(i)
σ∈Sn i=1
pour le calcul de son déterminant ; en effet, cela mènerait à un algorithme de com-
plexité O(n · n!), donc hyper-exponentielle en la taille de A. De même, la définition
du rang d’une matrice comme la taille maximale d’un mineur non-nul ne se prête
pas directement, via une recherche exhaustive, à une algorithmisation efficace. Dans
un registre légèrement différent, les formules de Cramer pour résoudre un système
linéaire ne sont pas d’une grande utilité pratique (en revanche, elles servent à borner
les tailles des solutions, et s’avèrent utiles dans les estimations de complexité).
Une seconde classe d’algorithmes, basés sur la méthode d’élimination de Gauss,
permet de résoudre de manière raisonnablement efficace la plupart des problèmes
évoqués plus haut. Appliquée à une matrice A de Mn (K), cette méthode fournit
des algorithmes de complexité O(n3 ) pour le calcul de rg(A), de det(A), de A−1 (si
A est inversible), celui d’une forme échelonnée et d’une décomposition LUP de A,
ainsi que pour la résolution d’un système linéaire de matrice A.
Le résultat principal de ce chapitre est que l’on peut faire mieux, et qu’il existe
une constante 2 ≤ ω < 3 (dépendante a priori du corps de base K), qui contrôle la
complexité du produit matriciel et de toutes les opérations d’algèbre linéaire.
Pour formaliser ce point, on associe à chacun des problèmes son exposant. Dans
le cas du produit, il est défini comme suit.
Definition 1 (Exposant de la multiplication matricielle). On dit que le réel θ
est un exposant faisable pour la multiplication de matrices sur le corps K s’il existe
un algorithme de complexité arithmétique O(nθ ) pour multiplier deux matrices
arbitraires de Mn (K). On définit ωmul = inf{θ | θ est un exposant faisable}.
A priori, on devrait mettre en indice le corps K pour les exposants θ et ωmul . Les
résultats présentés dans la suite sont cependant indépendants de K 1. L’algorithme
naïf pour le produit est de complexité O(n3 ), donc θ = 3 est un exposant faisable
et ωmul ≤ 3. D’un autre côté, ωmul est forcément au moins égal à 2 : le nombre
d’éléments d’une matrice est n2 et il faut bien autant d’opérations pour l’écrire.

1. On peut montrer que la constante ωmul ne dépend que de la caractéristique du corps de


base K et il est conjecturé qu’elle est même entièrement indépendante du corps K.
2. MULTIPLICATION DE MATRICES 37

Ensuite, on peut définir de la même manière les exposants de tous les autres
problèmes, de la forme ωinv , ωpolcar , ωdet , ωLUP , etc . . . On a alors le résultat suivant.
Théorème 1. Les exposants ωmul , ωinv , ωpolcar , ωdet , ωLUP , sont tous égaux,
et inférieurs à 2,38 ; on note ω leur valeur commune. L’exposant correspondant à
la résolution de systèmes linéaires est inférieur ou égal à ω.
Ce théorème contient deux (familles de) résultats :
– des preuves d’équivalence entre problèmes,
– des bornes supérieures sur leur complexité, c’est-à-dire des algorithmes.
Dans le présent chapitre, il est impossible de démontrer ce théorème dans son
intégralité. Nous nous contenterons de prouver (et encore, sous des hypothèses
simplificatrices) que le produit et l’inverse ont le même exposant, et que celui-ci est
inférieur à log2 (7) < 2,81.
Nous montrerons également que ωdet ≤ ωpolcar ≤ ωmul = ωinv et laisserons en
exercice (Exercice 11) la preuve de l’inégalité ωinv ≤ ωdet qui permet de conclure
que cette suite d’inégalités est en fait une suite d’égalités.

1.3. Applications. Les problèmes d’algèbre linéaire mentionnés ci-dessus


sont très fréquemment rencontrés en pratique ; les résultats du Théorème 1 seront in-
voqués à plusieurs reprises dans ce cours. Par exemple, l’algorithme de Beckermann-
Labahn (Chapitre 9) pour le calcul d’approximants de Padé-Hermite repose ultime-
ment sur des produits de matrices de polynômes. C’est aussi le cas de l’algorithme
de Storjohann pour la résolution de systèmes linéaires à coefficients polynomiaux
(Chapitre 14), et de l’algorithme de recherche de solutions séries d’équations algé-
briques (Chapitre 4) ou différentielles linéaires (Chapitre 15).
De nombreux algorithmes de résolution de systèmes polynomiaux reposent aussi
sur de l’algèbre linéaire : les méthodes de calcul d’une base de Gröbner (Chapitre 16)
peuvent se ramener à des systèmes linéaires (éventuellement creux) en très grande
taille ; l’algorithme de « résolution géométrique » (Chapitre 22) utilise une itération
de Newton faisant intervenir des calculs d’inverses de matrices de séries formelles.
Dans un contexte différent, les algorithmes pour les séries D-finies (Chapitre 8) et
les algorithmes de sommation et d’intégration (Chapitre 28) font intervenir comme
sous-problème la résolution d’un système linéaire.
De façon similaire, la technique du « scindage binaire » qui sera utilisée au
Chapitre 13 pour le calcul d’un terme d’une récurrence, ou encore pour le calcul du
développement décimal de e, requiert de multiplier des matrices contenant de gros
nombres entiers.
L’algèbre linéaire est au cœur de nombreux autres problèmes algorithmiques
qui ne seront pas abordés dans ce cours ; c’est le cas de la factorisation des entiers
et des polynômes, ou encore du logarithme discret en cryptanalyse. Mentionnons
enfin qu’une large partie des ordinateurs du monde passent leurs cycles à faire des
calculs d’algèbre linéaire, que ce soit pour faire des calculs d’optimisation combi-
natoire (programmation linéaire par l’algorithme du simplexe), de la simulation
numérique (méthode des éléments finis), ou de la recherche de pages web (le sys-
tème de classement PageRank utilisé par le moteur de recherche Google repose sur
la recherche d’un vecteur propre d’une gigantesque matrice creuse).

2. Multiplication de matrices
Tout comme le produit d’entiers et de polynômes, la multiplication matricielle
est une opération fondamentale en calcul formel, dont l’étude de complexité s’avère
être un problème hautement non trivial.
38 3. ALGÈBRE LINÉAIRE DENSE : DE GAUSS À STRASSEN

L’algorithme naïf pour effectuer le produit d’une matrice de taille m × n par un


vecteur utilise O(mn) opérations arithmétiques : mn multiplications et m(n − 1)
additions. Un résultat de Winograd affirme qu’en général on ne peut pas faire
mieux : par exemple, pour les matrices réelles dont les coefficients sont algébrique-
ment indépendants sur Q, l’algorithme naïf est optimal. Puisque le produit matriciel
peut s’interpréter comme une succession de produits matrice-vecteur, une question
naturelle est de savoir si la multiplication naïve de deux matrices est aussi quasi-
optimale.
La réponse à cette question, et les résultats les plus importants de cette section,
classés par ordre chronologique de découverte, sont regroupés dans le théorème
suivant.
Théorème 2 (La multiplication naïve n’est pas optimale). Soit K un corps
commutatif. On peut multiplier deux matrices de Mn (K) en
(a) O(n3 ) opérations dans K, par l’algorithme naïf ;
(b) n2 d n2 e + 2nb n2 c ' 12 n3 + n2 multiplications dans K ;
(c) n2 d n2 e + (2n − 1)b n2 c ' 12 n3 + n2 − n2 multiplications dans K si la caracté-
ristique de K est différente de 2 et si la division par 2 est gratuite ;
(d) O(nlog2 (7) ) ' O(n2,81 ) opérations dans K.
Ces résultats restent valables sur un anneau commutatif A ; pour (a) et (d)
l’hypothèse de commutativité peut même être supprimée. La partie (b) est due
à Winograd et fut historiquement la première amélioration de l’algorithme naïf.
Elle réduit de moitié le nombre de multiplications, en augmentant en revanche le
nombre d’additions. Cela constitue déjà un progrès pour une large classe d’anneaux
A dans lesquels la multiplication est plus coûteuse que l’addition 2. Par exemple, la
technique du « scindage binaire » qui sera utilisée au Chapitre 13 pour le calcul
d’un terme d’une récurrence, ou encore pour le calcul du développement décimal
de e, requiert de multiplier des matrices contenant de gros nombres entiers.
L’amélioration (c) a été obtenue par Waksman, et implique qu’on peut effectuer
le produit de deux matrices 2 × 2 en 7 multiplications. L’inconvénient commun des
algorithmes de Winograd et de Waksman est l’utilisation de la commutativité de K,
qui devient un obstacle à une application récursive, ne permettant pas d’améliorer
(la borne supérieure 3 sur) l’exposant ωmul . Beaucoup pensaient que tout résultat
de type (b) et (c) serait optimal, au sens que 12 n3 multiplications dans K seraient
nécessaires pour le produit dans Mn (K). Ceci fut contredit par la découverte par
Strassen de (d) ; ce résultat découle d’un fait d’une simplicité déconcertante, mais
d’une portée considérable : deux matrices 2 × 2 peuvent être multipliées en 7 mul-
tiplications même si K n’est pas commutatif.
La non-optimalité de la multiplication matricielle naïve justifie l’introduction
de la définition suivante.
Definition 2 (Fonction de multiplication matricielle). On dit que l’application
MM : N → N est une fonction de multiplication matricielle (pour un corps K) si :
• on peut multiplier des matrices de Mn (K) en au plus MM(n) opérations
dans K ;
• MM est croissante et vérifie l’inégalité MM(n/2) ≤ MM(n)/4 pour n ∈ N.
Ainsi, le Théorème 2 montre que les fonctions n 7→ n3 ou n 7→ nlog2 (7) sont
(à des constantes près) des fonctions de multiplication matricielles. Comme dans
le cas de la fonction de multiplication polynomiale M introduite au Chapitre 2,

2. C’est par exemple le cas de Z et de Z[X], mais pas de Q ou de Q(X).


2. MULTIPLICATION DE MATRICES 39

l’intérêt de cette notion est qu’elle permet d’énoncer des résultats de complexité
indépendants du choix de l’algorithme utilisé pour multiplier les matrices.
La seconde condition de la Définition 2 établit la cohérence avec la Définition 1 :
si MM(n) = c · nθ , pour une certaine constante c > 0, alors θ doit être supérieur ou
égal à 2. Cette condition permettra de montrer que dans des algorithmes de type
« diviser pour régner » pour les matrices, le coût total est essentiellement celui du
dernier appel récursif.
Le reste de cette section est dédié à la preuve du Théorème 2.

2.1. Multiplication naïve. Commençons par décrire l’algorithme « cu-


bique » de multiplication. Étant données deux matrices A = (ai,j )ni,j=1 et X =
(xi,j )ni,j=1 de Mn (K), leur produit s’écrit R = AX avec
n
X
ri,k = ai,j xj,k .
j=1

Le coût nécessaire pour obtenir un élément de R est donc de n multiplications et


n − 1 additions, de sorte que la complexité totale est en O(n3 ).

2.2. Algorithme de Winograd. Il est possible de diviser essentiellement par


deux le nombre de multiplications scalaires suffisantes pour le calcul du produit AX.
Ceci montre au passage que la multiplication matricielle naïve n’est pas optimale.
Supposons pour simplifier que n est pair, n = 2k. L’algorithme de Winograd repose
sur l’identité suivante, héritière de celle de Karatsuba : si ` est un vecteur ligne
[a1 · · · an ] et c est un vecteur colonne t [x1 · · · xn ], alors le produit scalaire h`, ci
s’écrit
(1) h`, ci = (a1 + x2 )(a2 + x1 ) + · · · + (a2k−1 + x2k )(a2k + x2k−1 ) − σ(`) − σ(c),
où σ(`) = a1 a2 + · · · + a2k−1 a2k et σ(c) = x1 x2 + · · · + x2k−1 x2k . Notons que σ(`)
se calcule en k = n/2 multiplications et k − 1 = n/2 − 1 additions.
Si maintenant `1 , . . . , `n sont les lignes de A et c1 , . . . , cn sont les colonnes
de X, l’élément (i, j) du produit AX vaut h`i , cj i. L’idée est alors de précalculer
les quantités σ(`i ) et σ(ci ) pour 1 ≤ i ≤ n ; ce précalcul demande n( n2 + n2 ) = n2
multiplications et n( n2 − 1 + n2 − 1) = n2 − 2n additions. Une fois déterminés les
σ(`i ) et σ(ci ), on peut calculer l’ensemble des éléments (i, j) de AX grâce à la
formule (1) en n2 · n2 = 12 n3 multiplications et n2 · (n + ( n2 − 1) + 2) = 32 n3 + n2
additions. Au total, le coût de la multiplication de l’algorithme de Winograd est de
1 3 2 3 3 2
2 n + n multiplications et 2 n + 2n − 2n additions. Ainsi, on a essentiellement
3
transformé n /2 multiplications en additions, ce qui est appréciable.

2.3. Algorithme de Waksman. Pour effectuer le produit de matrices 2 × 2


   
a b x y
R= × ,
c d z t
l’algorithme de Winograd ci-dessus utilise 8 multiplications, en écrivant
 
(a + z)(b + x) − ab − zx (a + t)(b + y) − ab − ty
R= .
(c + z)(d + x) − cd − zx (c + t)(d + y) − cd − ty
Il n’apporte donc aucun gain par rapport à l’algorithme naïf dans cette taille.
L’algorithme suivant, dû à Waksman, peut être vu comme une amélioration de
l’algorithme de Winograd. Il effectue le produit de matrices 2 × 2 en 7 opérations,
40 3. ALGÈBRE LINÉAIRE DENSE : DE GAUSS À STRASSEN

dès lors que dans le corps de base K l’élément 2 est inversible et que la division par
2 y est gratuite. L’idée est d’écrire la matrice R comme
 
1 A1 − A2 B 1 − B 2
R= ,
2 C1 − C2 D1 − D2

A1 = (a + z)(b + x), A2 = (a − z)(b − x),
B1 = (a + t)(b + y), B2 = (a − t)(b − y),
C1 = (c + z)(d + x), C2 = (c − z)(d − x),
D1 = (c + t)(d + y), D2 = (c − t)(d − y),
et de faire observer que, grâce à l’identité
(C1 + C2 ) + (B1 + B2 ) = (A1 + A2 ) + (D1 + D2 ) = 2(ab + cd + xz + ty),
l’élément D2 est une combinaison linéaire des sept autres produits A1 , A2 , . . . , D1 ,
et donc n’a pas besoin d’être obtenu lui aussi par un produit.
L’algorithme qui s’en déduit, tout comme celui de Winograd, ne peut être utilisé
de manière récursive : la preuve des formules sous-jacentes repose sur le fait que
les éléments du corps de base K commutent (bz = zb, bt = tb, . . .). Lors des appels
récursifs, les objets à multiplier seraient eux-mêmes des matrices, pour lesquelles la
loi de commutation n’est plus vérifiée. On dit donc que les algorithmes de Winograd
et de Waksman sont des algorithmes commutatifs.
Exercice 1. Finir la preuve des parties (b) et (c) du Théorème 2, en géné-
ralisant les arguments précédents à des matrices de taille n, où n ∈ N n’est pas
nécessairement pair.
2.4. Algorithme de Strassen. L’algorithme de Strassen fut le premier à des-
cendre en-dessous de O(n3 ). Tout comme l’algorithme de Karatsuba pour les poly-
nômes, il repose sur le gain d’une multiplication pour les matrices 2 × 2, qui devient
un gain dans l’exposant lors d’une application récursive. La non-commutativité des
matrices se traduit en revanche par une contrainte supplémentaire : afin de se prêter
à un emploi récursif, le nouvel algorithme doit, à la différence de l’algorithme de
Waksman, satisfaire à une contrainte de non-commutativité.
Soient donc A et X des matrices de taille 2 à multiplier par un algorithme non-
commutatif. Intuitivement, cela se traduit par le fait que lors des multiplications
utilisées par un tel algorithme, les éléments a, b, c, d de A doivent rester à gauche,
et les éléments x, y, z, t de X à droite (cela n’était pas le cas pour les algorithmes
de Winograd et de Waksman, qui mélangent les éléments de A et X).
L’algorithme naïf est bien non-commutatif, mais demande d’effectuer 8 multi-
plications. L’algorithme de Strassen que nous allons présenter revient à
– calculer des combinaisons linéaires des éléments de A et des éléments de X,
– effectuer 7 produits de ces combinaisons linéaires,
– recombiner les résultats pour obtenir le produit AX.
Explicitement, les formules à appliquer sont données dans les étapes 3 et 4 de
l’algorithme présenté en Figure 1.
Effectuons maintenant le pas récursif. Quitte à rajouter des colonnes et des
lignes nulles, on peut supposer que les matrices A et X sont de taille n = 2k , avec
k ∈ N. On procède à une découpe en blocs de A et de X :
   
a b x y
A= , X= .
c d z t
Dans cette écriture a, b, c, d et x, y, z, t sont donc des matrices carrées de taille n/2.
2. MULTIPLICATION DE MATRICES 41

Multiplication matricielle rapide


Entrée : Deux matrices A, X ∈ Mn (K), avec n = 2k .
Sortie : Le produit AX.
1. Si n = 1, renvoyer AX.
   
a b x y
2. Décomposer A = et X = ,
c d z t
avec a, b, c, d et x, y, z, t dans Mn/2 (K).
3. Calculer récursivement les produits
q1 = a(x + z)
q2 = d(y + t)
q3 = (d − a)(z − y)
q4 = (b − d)(z + t)
q5 = (b − a)z
q6 = (c − a)(x + y)
q7 = (c − d)y.
4. Calculer les sommes
r1,1 = q1 + q5
r1,2 = q2 + q3 + q4 − q5
r2,1 = q1 + q3 + q6 − q7
r2,2 = q2 + q7 .
 
r1,1 r1,2
5. Renvoyer .
r2,1 r2,2

Figure 1. Algorithme de Strassen pour multiplier deux matrices.

Le point-clé est le suivant : grâce à la non-commutativité, les formules données


ci-dessus pour le cas 2 × 2 s’appliquent toujours si a, b, c, d et x, y, z, t sont des
matrices. Ainsi, elles permettent de ramener le produit en taille n à 7 produits
en taille n/2, plus un certain nombre C (ici C = 18) d’additions en taille n/2,
utilisées pour fabriquer les combinaisons linéaires des blocs de A et de X, et celles
des produits qi .
La complexité S(n) de l’algorithme de Strassen satisfait donc à la récurrence
n  n 2
S(n) ≤ 7 S +C .
2 2
En invoquant le lemme « diviser pour régner » avec les choix m = 7, p = s = 2,
κ = 1 et q = 4, on déduit l’inégalité
 
C
S(n) ≤ 1 + nlog2 (7) ,
3
qui prouve la partie (d) du Théorème 2.
L’idée de base de l’algorithme de Strassen est tout à fait générale : améliorer
la multiplication en petite taille permet d’améliorer l’exposant.
Exercice 2. Supposons que l’on sache multiplier deux matrices de taille r à
coefficients dans un corps K en rθ multiplications non-commutatives dans K et un
nombre arbitraire d’additions dans K. Montrer que θ est un exposant faisable pour
la multiplication des matrices à coefficients dans K.
En pratique, il peut être intéressant de ne pas descendre récursivement jusqu’à
la multiplication des matrices 1 × 1, mais d’arrêter la récursion à une taille s > 1 et
42 3. ALGÈBRE LINÉAIRE DENSE : DE GAUSS À STRASSEN

d’utiliser l’algorithme naïf (ou tout autre algorithme, même commutatif !) en cette
taille. Cela permet d’optimiser la constante du O( ).
Exercice 3. Soit n une puissance de 2. Établir un algorithme hybride, qui fait
appel à l’algorithme de Strassen pour n > 2d et à l’algorithme naïf pour n ≤ 2d .
Montrer que la complexité MM(n) de cet algorithme vérifie MM(n) ≤ µ(d)nlog2 (7)
pour tout n ≥ 2d , où µ(d) est une fonction qui dépend uniquement de d. Trouver
la valeur de d qui minimise µ(d).
L’algorithme de Strassen s’applique aussi au cas où le corps de base K est
remplacé par un anneau A. Lorsque cet anneau A est une extension de K, la question
est d’estimer sa complexité en termes de nombre d’opérations dans K.
Exercice 4. Soit K un corps et soient d et n deux entiers naturels strictement
positifs. Estimer la complexité de l’algorithme de multiplication de Strassen appli-
qué à deux matrices carrées de taille n, dont les éléments sont des polynômes de
degré au plus d de K[X].
Plus généralement, tout algorithme de multiplication dans Mn (K) utilisant
MM(n) = O(nθ ) opérations dans K fournit par application à A = K[X]/(X d+1 )
un algorithme de multiplication de matrices polynomiales de degré d de complexité
MM(n, d) = O(nθ M(d)) opérations de K. Un algorithme de meilleure complexité
permettant d’obtenir MM(n, d) = O(nθ d + n2 M(d)) sera présenté au Chapitre 6.

2.5. Interprétation des formules de Strassen. Il n’est pas immédiat de


donner une intuition aux formules de Strassen (à la différence de celle de Karatsuba,
qui repose de manière cachée sur l’évaluation de polynômes en 0, 1, +∞). Nous
allons présenter un raisonnement qui permet de motiver les formules de Strassen
et de les généraliser. L’explication appartient à Fiduccia ; elle est postérieure à la
découverte de l’algorithme 3.
Le point de départ est l’observation que la recherche d’un algorithme non-
commutatif pour effectuer le produit de matrices R = AX avec
   
a b x y
A= et X=
c d z t
revient à donner un algorithme pour la multiplication matrice-vecteur M v, où
   
a b 0 0 x
 c d 0 0   z 
M =  0 0 a b 
 et v= y .

0 0 c d t
La suite de l’argument repose sur la remarque suivante : toute matrice (de taille
arbitraire) de la forme
     

 α α 


 α −α 


 α εα 

 ,   , ou  ,
     
 εα εα   εα −εα   −α −εα 

3. Strassen lui-même ne se souvient pas exactement de l’origine de ses formules. Selon Land-
sberg, « Strassen was attempting to prove, by process of elimination, that such an algorithm did
not exist when he arrived at it ». En tout cas, Strassen affirme « First I had realized that an
estimate tensor rank < 8 for two by two matrix multiplication would give an asymptotically faster
algorithm. Then I worked over Z/2 Z — as far as I remember — to simplify matters ». Autrement
dit, il y a dû y avoir recherche « à la main ».
2. MULTIPLICATION DE MATRICES 43

où ε ∈ {0, 1} et α ∈ K, dont tous les éléments, sauf les quatre marqués explici-
tement, sont nuls, peut être multipliée par un vecteur en une seule multiplication
dans K. On appelle une telle matrice élémentaire.
L’idée est alors de décomposer la matrice M en somme de 7 matrices élémen-
taires. On commence par soustraire à M les deux matrices élémentaires
   
a a
 a a   
E1 =   et E2 =  ,
   d d 
d d
correspondant aux éléments diagonaux de A. La matrice ainsi obtenue est
 
b−a
 c−a d−a 
M1 =  .
 a−d b−d 
c−d
Par construction, elle admet la propriété que l’élément (1, 1) du deuxième bloc est
l’opposé de l’élément (2, 2) du premier. En soustrayant à M1 la matrice élémentaire
 
 d−a a−d 
E3 =  
 d−a a−d 

on obtient la matrice
 
b−a
 c−a d−a 
M2 =  ,
 a−d b−d 
c−d
qui se décompose comme M3 + M4 , avec
   
b−a
   c−a d−a 
M3 =   et M4 =  .
 a−d b−d   
c−d
Or, puisque a − d = (b − d) − (b − a) et d − a = (c − a) − (c − d), chacune des
matrices M3 et M4 s’écrit comme somme de 2 matrices élémentaires

   
b−a
   
M3 = E 4 + E 5 , où E4 =  , E5 =  ,
 a−b   b−d b−d 

et
   
 c−a c−a   d−c 
M4 = E 6 + E 7 , où E6 = 

,
 E7 = 

.

c−d
P 
  7
En revenant à l’égalité t r1,1 r2,1 r1,2 r2,2 = t
i=1 Ei × v traduisant
R = AX, on obtient finalement les formules données dans les étapes 3 et 4 en
Figure 1.
44 3. ALGÈBRE LINÉAIRE DENSE : DE GAUSS À STRASSEN

Exercice 5. Généraliser l’algorithme de Strassen aux matrices de taille arbi-


traire. Plus précisément, étendre la preuve des formules de Strassen afin de montrer
que le produit de deux matrices carrées de taille n peut s’effectuer en n3 −n(n−1)/2
multiplications scalaires non-commutatives.
Est-ce que cela permet d’améliorer la borne de Strassen log2 (7) sur l’exposant
de l’algèbre linéaire ?
2.6. Peut-on faire mieux que 2,81 ? Strassen ayant prouvé que l’exposant
ωmul du produit de matrices était sous-cubique, la question naturelle est devenue
de savoir quelle est sa véritable valeur.
Pour ce faire, tout au long des années 1970–1990, de nombreux outils ont été
développés, plus sophistiqués les uns que les autres, et l’on fit preuve de beaucoup
d’ingéniosité. Des notions nouvelles sont apparues, comme celles de complexité bi-
linéaire, de rang tensoriel et d’algorithme approché, utilisées de manière intensive
notamment par Bini, Pan, Schönhage, Strassen, Winograd et d’autres. Ces notions
ne seront pas abordées dans ce cours.
Le meilleur algorithme actuel, dû à Coppersmith et Winograd, est de complexité
O(n2,376 ). Il est cependant conjecturé que ωmul = 2, mais pour l’instant la preuve
(ou la réfutation) de cette conjecture semble hors de portée.

2.7. En pratique. Les algorithmes rapides pour l’algèbre linéaire ont long-
temps eu mauvaise presse ; concrètement, l’algorithme de Strassen, et, de manière
plus marginale, un algorithme d’exposant 2,77 dû à Pan et repris par Kaporin
sont les seuls algorithmes « rapides » (avec un exposant inférieur à 3) qui ont été
implantés avec succès.
Dans une bonne implantation, disons sur un corps fini défini modulo un entier
de taille « raisonnable », les algorithmes de Winograd et de Waksman sont im-
médiatement rentables. L’algorithme de Strassen devient ensuite meilleur pour des
tailles de l’ordre de quelques dizaines (64 est une borne raisonnable).
L’immense majorité des autres algorithmes connus reposent sur des techniques
très complexes, qui se traduisent par la présence d’énormes constantes (et de fac-
teurs logarithmiques) dans leurs estimations de complexité. En conséquence, dans
leurs versions actuelles, il ne peuvent pas être rentables pour des tailles inférieures
à des millions ou des milliards . . .

3. Autres problèmes d’algèbre linéaire


Il est important de savoir multiplier les matrices, mais il est tout aussi utile de
les inverser, calculer leur polynôme caractéristique, etc . . .

3.1. Élimination de Gauss. Rappelons que l’algorithme classique d’élimina-


tion de Gauss permet de résoudre la plupart des problèmes classiques en algèbre
linéaire de manière bien plus efficace que l’algorithmique naïve.
Definition 3 (Forme échelonnée). Une matrice est échelonnée en ligne lorsque
1. les lignes nulles sont toutes en dessous des lignes non nulles,
2. le premier coefficient non nul (appelé pivot) de chaque ligne non nulle est
strictement à droite du premier coefficient non nul de la ligne précédente.
Une forme échelonnée en ligne d’une matrice A est une matrice échelonnée en
ligne B équivalente à gauche à A (c’est-à-dire telle qu’il existe une matrice carrée
inversible P avec A = P B).
L’algorithme de Gauss (sans pivot sur les colonnes) calcule, en n’utilisant que
des opérations élémentaires sur les lignes (qui correspondent à des multiplications
3. AUTRES PROBLÈMES D’ALGÈBRE LINÉAIRE 45

à gauche par des matrices inversibles), une forme échelonnée en ligne de A, sur
laquelle le rang et le déterminant de A se lisent directement.
En effet, les lignes non nulles d’une forme échelonnée B forment une base de
l’espace vectoriel engendré par les lignes de la matrice de départ A. Le nombre de
lignes non nulles de B est égal au rang de A. Si A est carrée, son déterminant est
égal au produit des éléments diagonaux de B.
Une variante de l’algorithme de Gauss, dite de Gauss-Jordan, produit même
une forme échelonnée réduite de A : il s’agit d’une forme échelonnée de A, dont
les pivots valent 1, les autres coefficients dans les colonnes des pivots étant nuls.
Appliquée à la matrice augmentée à = [A | In ] obtenue par concaténation de la
matrice A et de la matrice identité In , cette variante est utilisée dans le calcul de
l’inverse A−1 . En effet, l’algorithme de Gauss-Jordan transforme la matrice à en
une matrice équivalente dont le bloc gauche est l’identité, c’est-à-dire qu’il remplace
à par la matrice [In | A−1 ]. Le même algorithme permet de résoudre le système
Ax = b, où b ∈ Kn , en bordant la matrice A par le vecteur b.
Une autre variante de l’algorithme d’élimination de Gauss permet de calculer
une décomposition LUP qui, à son tour, permet de résoudre des systèmes linéaires,
d’inverser des matrices, de calculer des déterminants, etc.
Definition 4 (Matrices L, U, P et décomposition LUP). Une matrice est dite
triangulaire supérieure, resp. triangulaire inférieure, si les éléments situés en dessous
(resp. au dessus) de la diagonale principale sont nuls. Une matrice de permutation
est une matrice carrée P dont les coefficients valent 0 ou 1, et dont chaque ligne et
colonne ne contient qu’un seul élément non nul. Une décomposition LU, resp. LUP,
d’une matrice A est une factorisation de la forme A = LU , resp. A = LU P , avec L
triangulaire inférieure, U triangulaire supérieure et P une matrice de permutations.
En résumé, nous allons admettre l’énoncé suivant.
Théorème 3 (Élimination Gaussienne). Pour toute matrice A ∈ Mn (K), il
est possible de calculer en O(n3 ) opérations dans K :
• le rang rg(A), le déterminant det(A), et l’inverse A−1 si A est inversible ;
• une base (affine) de solutions de Ax = b, pour tout b dans Kn ;
• une décomposition LUP, et une forme échelonnée réduite de A.
3.2. Résultat principal. Les résultats importants de cette section sont ré-
sumés dans l’énoncé suivant.
Théorème 4 (L’élimination Gaussienne n’est pas optimale). Soit K un corps et
soit θ un exposant faisable pour la multiplication des matrices à coefficients dans K.
Quelle que soit la matrice A de Mn (K), il est possible de calculer :
(a) le déterminant det(A) ;
(b) l’inverse A−1 (si A est inversible) ;
(c) la solution x ∈ Kn du système Ax = b, pour tout b ∈ Kn , si A est inversible ;
(d) le polynôme caractéristique de A ;
(e) une décomposition LUP de A ;
(f) le rang rg(A) et une forme échelonnée réduite de A ;
(g) une base du noyau de A ;
en O(nθ ) opérations dans K.
46 3. ALGÈBRE LINÉAIRE DENSE : DE GAUSS À STRASSEN

La preuve des parties (e), (f) et (g) dépasse le cadre de ce cours. En termes
d’exposants, les assertions (a)–(d) impliquent les inégalités ωdet ≤ ωpolcar ≤ ωmul
et ωinv ≤ ωmul .
Dans la suite, nous allons prouver (a)–(d), sous des hypothèses simplificatrices.
Nous montrerons également que ωmul ≤ ωinv et laisserons en exercice (Exercice 11)
la preuve de ωinv ≤ ωdet . Utilisées conjointement, ces inégalités permettent de
prouver le Théorème 1.

3.3. La multiplication n’est pas plus difficile que l’inversion. Soient A


et B des matrices n × n. On souhaite calculer C = AB. Pour cela, on pose
 
In A 0
D =  0 In B  .
0 0 In
On a alors l’identité remarquable
 
In −A AB
D−1 = 0 In −B  ,
0 0 In
qui permet donc de ramener le produit en taille n à l’inversion en taille 3n. Cela
prouve notre affirmation et l’inégalité
ωmul ≤ ωinv .
Exercice 6. Soit K un corps et soit T(n) la complexité du produit de deux
matrices triangulaires inférieures de taille n × n et à coefficients dans K. Montrer
qu’il est possible de multiplier deux matrices arbitraires de Mn (K) en O(T(n))
opérations dans K.
3.4. L’inversion, le calcul de déterminant et la résolution de système
ne sont pas plus difficiles que la multiplication. Nous allons montrer qu’il
est possible d’inverser des matrices n × n par un algorithme de type « diviser pour
régner » en O(nθ ) opérations arithmétiques, quel que soit l’exposant faisable θ.

Inverse. L’algorithme d’inversion matricielle présenté ici, dû à Strassen, est un


algorithme récursif, qui peut s’interpréter comme un « pivot de Gauss par blocs ».
Cet algorithme nécessite d’inverser certaines sous-matrices de A ; afin de garantir sa
correction, nous allons faire l’hypothèse simplificatrice que toutes ces matrices sont
inversibles. Le traitement du cas général (A matrice arbitraire) est plus délicat,
et passe par le calcul efficace, toujours de type « diviser pour régner », d’une
décomposition LUP de A.
Le point de départ est l’identité suivante (non-commutative !), dans laquelle on
suppose n = 2 et a ∈ K \ {0} :
1 a−1 b
       
a b 1 0 a 0
A= = × × ,
c d ca−1 1 0 Z 0 1
et où Z = d − ca−1 b est le complément de Schur de a dans A.
Cette identité se déduit aisément grâce à la méthode du pivot de Gauss appli-
quée à A et permet d’obtenir la factorisation suivante
−1 
1 −a−1 b
   −1   
a b a 0 1 0
= × ×
c d 0 1 0 Z −1 −ca−1 1
(2)  −1
a + a−1 bZ −1 ca−1 −a−1 bZ −1

= .
−Z −1 ca−1 Z −1
3. AUTRES PROBLÈMES D’ALGÈBRE LINÉAIRE 47

Inversion matricielle rapide


Entrée : Une matrice « générique » A ∈ Mn (K), avec n = 2k .
Sortie : Son inverse A−1 .
1. Si n = 1, renvoyer A−1 .
 
a b
2. Décomposer A = , avec a, b, c, d dans Mn/2 (K).
c d
3. Calculer e := a−1 récursivement.
4. Calculer Z := d − ceb.
5. Calculer t := Z −1 récursivement.
6. Calculer y := −ebt, z := −tce, x := e + ebtce.
 
x y
7. Renvoyer .
z t

Figure 2. Algorithme de Strassen pour inverser une matrice.

Le point important est que l’identité (2) est « non-commutative » : elle reste
valable dans tout anneau non-commutatif, pourvu que les éléments a et Z = d −
ca−1 b soient inversibles. Elle permet donc une application récursive.
L’algorithme qui en résulte est présenté en Figure 2. Dans chaque appel récursif
l’algorithme effectue deux inversions, ainsi qu’un certain nombre de produits. Plus
précisemment, avec les notations de la Figure 2, les 6 produits ce, bt, ceb = (ce)b,
ebt = e(bt), (ebt)(ce) et t(ce) sont suffisants. Cette analyse mène au résultat suivant.

Théorème 5. Si toutes les sous-matrices rencontrées au cours de l’algorithme


en Figure 2 sont inversibles, le coût de l’inversion de A est de 3 MM(n) + O(n2 ).

Démonstration. L’algorithme ci-dessus montre que la complexité I(n) de l’in-


version satisfait à la récurrence
n n
I(n) ≤ 2 I + 6 MM + Cn2 ,
2 2
C étant une constante. Il suffit alors d’appliquer le lemme « diviser pour régner »
avec les choix m = p = s = 2, κ = 1 et q = 4. 

Une première conséquence immédiate du Théorème 5 est que la résolution du


système linéaire Ax = b, pour b ∈ Kn , et A inversible vérifiant les hypothèses du
Théorème 5, peut s’effectuer également en O(MM(n)) = O(nθ ) opérations dans K.

Déterminant. Une légère adaptation de l’algorithme permet de calculer le déter-


minant de A en même temps que son inverse, en la même complexité. Pour cela, il
suffit de remplacer les étapes 1, 3, 5 et 7 de l’algorithme en Figure 2 par les étapes
10 , 30 , 50 et 70 décrites ci-dessous.
10 . Si n = 1, renvoyer A−1 et A.
30 . Calculer e := a−1 et da := det(a) récursivement.
50 . Calculer t := Z −1 et dZ := det(Z) récursivement.
 
0 x y
7 . Renvoyer et da dZ .
z t
48 3. ALGÈBRE LINÉAIRE DENSE : DE GAUSS À STRASSEN

Affaiblissement des hypothèses. À ce stade, nous avons démontré les parties (a)–
(c) du Théorème 4 sous une hypothèse supplémentaire. Dans le cas où K est un
sous-corps du corps des réels R, on peut s’affranchir de cette hypothèse, en observant
que, quelle que soit la matrice A inversible dans Mn (R), la matrice B = t A · A
vérifie les hypothèses du Théorème 5, et donc l’inverse de A peut se calculer grâce
à l’égalité A−1 = B −1 · t A en O(MM(n)) = O(nθ ) opérations dans K.
Il n’est pas difficile de prouver que si la matrice A est de type L (triangulaire
inférieure) ou U (triangulaire supérieure) alors l’algorithme de Strassen calcule son
inverse sans avoir besoin d’aucune hypothèse supplémentaire. Cette remarque est à
la base d’un algorithme général d’inversion dû à Bunch et Hopcroft. Cet algorithme
calcule d’abord une décomposition LUP d’une matrice inversible arbitraire 4 sur
un corps quelconque K en O(MM(n)) opérations, et arrive à en déduire le calcul
d’inverse (et aussi la résolution de système) pour le même prix.
Concluons cette section avec la remarque que l’algorithme d’inversion de Stras-
sen est à la base de toute une algorithmique pour les matrices structurées, qui sera
présentée au Chapitre 11.

3.5. Calcul du polynôme caractéristique. Soit A une matrice de Mn (K).


Dans cette section, nous présentons un algorithme efficace, dû à Keller-Gehrig, pour
le calcul du polynôme caractéristique χA (X) de A. Nous ne décrirons en détail qu’un
cas particulier très simple (et très fréquent). Plus exactement, nous ferons dans la
suite l’hypothèse que χA (X) = X n + pn−1 X n−1 + · · · + p0 est irréductible dans
K[X] ; en particulier, il coïncide avec le polynôme minimal de A.
L’algorithme repose de façon cruciale sur la propriété suivante. Rappelons
qu’une matrice C = (ci,j )ni,j=1 de Mn (K) est appelée « de type compagnon »
si ses n − 1 premières colonnes ne contiennent que des éléments nuls, à l’exception
des éléments c2,1 , c3,2 , . . . , cn,n−1 qui valent tous 1.
Lemme 1. Soit v un vecteur de Kn \ {0} et soit P ∈ Mn (K) la matrice dont
la j-ième colonne vaut Aj−1 v, pour 1 ≤ j ≤ n. Alors P est inversible et la matrice
P −1 AP est de type compagnon.
Démonstration. Pour prouver ce lemme, on commence par observer que,
grâce à l’hypothèse sur A, la famille B = {v1 , v2 , . . . , vn }, où vi = Ai−1 v, forme
une base du K-espace vectoriel Kn , et donc P est inversible. En effet, en suppo-
sant le contraire, on déduit l’existence d’un polynôme non nul Q ∈ K[X] de degré
strictement inférieur à n, tel que Q(A)v = 0. Sans perte de généralité, ce poly-
nôme peut être supposé de degré minimal avec cette propriété. Comme par ailleurs
χA (A)v = 0, il s’ensuit que Q divise χA ; or, ce dernier étant supposé irréductible,
cela entraîne que Q est constant, et donc v = 0, une contradiction.
Puisque Avi−1 = vi , la matrice C de l’application linéaire w 7→ Aw dans la
base B est de type compagnon. Le théorème du changement de base fournit alors
l’égalité C = P −1 AP et permet donc de conclure. 

Les matrices A et C = P −1 AP étant semblables, elles ont le même polynôme


caractéristique. Par ailleurs,
Ple polynôme caractéristique de la matrice compagnon
n
C = (ci,j )ni,j=1 vaut X n − i=1 ci,n X i−1 . L’idée de l’algorithme de Keller-Gehrig
est alors naturelle : construire la matrice P du Lemme 1, pour ensuite déterminer
la matrice C à l’aide d’une multiplication et d’une inversion, et lire les coefficients
du polynôme caractéristique de A sur les éléments de la dernière colonne de C.

4. La détection de l’inversibilité est également faisable en O(MM(n)) opérations, grâce à un


algorithme qui calcule le rang de A en cette complexité ; cet algorithme dépasse notre cadre.
EXERCICES 49

Algorithme de Keller-Gehrig
Entrée : Une matrice A de Mn (K), avec n = 2k .
Sortie : Son polynôme caractéristique det(XIn − A).
1. Choisir v dans Kn \ {0} ;
2. M := A ; P := v ;
3. Pour i de 1 à k faire
P := Cat(P, M P ) ;
M := M 2 ;
4. C := P −1 AP ;

5. Renvoyer X n + pn−1 X n−1 + · · · + p0 , où t [−p0 , . . . , −pn−1 ]
est la dernière colonne de C.

Figure 3. Calcul du polynôme caractéristique par l’algorithme de


Keller-Gehrig.

Du point de vue de la complexité, la seule étape coûteuse est la construction de


la matrice P . En effet, la méthode directe qui consiste à calculer la suite de Krylov
v, Av, . . . , An−1 v par multiplications successives d’un vecteur par la matrice A a
un coût cubique en n. La remarque cruciale est que l’on peut regrouper les pro-
duits matrice–vecteur en plusieurs produits matrice–matrice, de la façon suivante :
on calcule en O(n2 ) opérations les vecteurs v, Av, on détermine ensuite par expo-
nentiation binaire les O(log(n)) matrices A, A2 , A4 , A8 , . . . et on termine le calcul
des colonnes de P par le calcul des produits A2 × [ v | Av ] = [ A2 v | A3 v ], puis
A4 × [ v | · · · | A3 v ] = [ A4 v | · · · | A7 v ], etc. Chaque produit de ce type est effec-
tué à l’aide d’un produit matriciel en taille n × n, en rajoutant artificiellement des
colonnes nulles aux facteurs droits.
L’algorithme complet est présenté en Figure 3 (où la notation Cat(U, V ) désigne
l’opération de concaténation horizontale des matrices U et V ). Nous venons de
prouver :
Théorème 6. Soit K un corps et supposons qu’on dispose d’un algorithme
de multiplication dans Mn (K) de complexité MM(n) = O(nθ ), avec θ ≥ 2. Si le
polynôme caractéristique d’une matrice A de Mn (K) est irréductible dans K[X],
l’algorithme en Figure 3 le calcule en O(MM(n) log(n)) opérations dans K.
Le calcul de la suite de Krylov sera utilisé au Chapitre 10 dans l’algorithme de
Wiedemann pour la résolution des systèmes creux, et de façon moins transparente,
au Chapitre 14 dans l’algorithme de Storjohann pour la résolution de systèmes
linéaires à coefficients polynomiaux.

Exercices
Exercice 7 (Multiplication et division rapides de nombres complexes).
1. Montrer qu’il est possible d’effectuer le produit matrice-vecteur
   
a −b x
×
b a y
en utilisant seulement 3 multiplications scalaires.
2. En déduire que deux nombres complexes peuvent être multipliés en utilisant
3 multiplications réelles.
3. Montrer qu’on peut calculer le quotient de deux nombres complexes en
utilisant au plus 7 multiplications et divisions réelles.
50 3. ALGÈBRE LINÉAIRE DENSE : DE GAUSS À STRASSEN

4. Donner un algorithme qui utilise seulement 6 opérations de ce type.


Exercice 8 (Multiplication rapide de quaternions).
1. Soit A = (aij ) une matrice n × n à coefficients dans K, telle que aij = ±aji
pour i < j. Soit v un vecteur quelconque de Kn . Si ` est le nombre d’élé-
ments non-nuls de l’ensemble {aij , i < j}, montrer que n+` multiplications
suffisent pour calculer le produit Av.
2. Montrer qu’on peut calculer le produit d’une matrice n×n et d’une matrice
n × 2 en utilisant 23 n2 + 25 n multiplications scalaires.
   
0 M v1
Indication : Remplacer le produit M × [ v1 | v2 ] par × ,
M 0 v2
 
0 M
puis décomposer la matrice A = en somme de deux matrices vérifiant
M 0
les hypothèses de la question précédente.
3. Un quaternion est une combinaison formelle a · 1 + b · i + c · j + d · k, avec
a, b, c, d ∈ R et i, j, k éléments vérifiant la table de multiplication interne
· 1 i j k
1 1 i j k
i i −1 k −j
j j −k −1 i
k k j −i −1
(par exemple, i · j = k et k · j = −i). La multiplication · se prolonge par R-
linéarité à l’ensemble H des quaternions et en fait un corps non-commutatif.
Montrer que deux quaternions arbitraires peuvent être multipliés en
utilisant seulement 10 multiplications réelles.
Exercice 9. Soit P un polynôme de degré au plus n à coefficients dans un
corps K. Soit θ > 2 un réel tel que O(nθ ) opérations dans K suffisent pour multiplier
deux matrices arbitraires de Mn (K).

1. Donner un algorithme pour évaluer P sur d n e éléments de K en O(nθ/2 )
opérations.
2. Si A ∈ Mn (K), montrer qu’on peut calculer la matrice P (A) en O(nθ+1/2 )
opérations de K.
3. Si Q ∈ K[X] est un autre polynôme de degré au plus n, montrer qu’il est
possible de calculer les n premiers coefficients du polynôme P (Q(X)) en
θ+1
O(n 2 ) opérations dans K.
Indication : Écrire P sous la forme P0 (X) + P1 (X)X d + P2 (X)(X d )2 + · · · , avec d
bien choisi et Pi (X) de degrés au plus d − 1.
Exercice 10 (Inversion de Strassen des matrices polynomiales). Soit M (X) ∈
Mn (K[X]) une matrice polynomiale carrée de taille n et de degré borné par d.
Exhiber une borne supérieure pour la complexité (exprimée en termes d’opérations
arithmétiques dans K et en fonction des deux paramètres n et d) de l’algorithme
de Strassen pour le calcul de M (X)−1 , sous l’hypothèse que toutes les matrices
rencontrées au cours de l’algorithme sont inversibles.
Exercice 11 (Dérivation automatique et calcul d’inverse). Le but de cet exer-
cice est de démontrer que le calcul de l’inverse d’une matrice n’est pas plus difficile
que le calcul du déterminant, en utilisant des techniques de dérivation automatique.
Pour cela, formalisons brièvement ce qu’on entend par programme. Dans notre
contexte, un programme prend en entrée des indéterminées Y1 , . . . , Ym sur un corps
EXERCICES 51

K, et effectue une suite d’instructions g1 , . . . , gL . Pour tout i = 1, . . . , L, l’instruc-


tion gi consiste simplement en la définition d’un polynôme Gi , de la forme
gi : Gi = Argi opi Arg0i ,
selon les règles suivantes :
– Argi et Arg0i sont dans K ∪ {G1 , . . . , Gi−1 } ∪ {Y1 , . . . , Ym }.
– opi est dans {+, −, ×}.
La taille d’un tel programme est L. On dit qu’un tel programme calcule un polynôme
F si F appartient à l’ensemble {G1 , . . . , GL } ; on dit de même que le programme
calcule {F1 , . . . , Fs } si tous les Fi sont dans {G1 , . . . , GL }.
Par exemple, le programme ayant pour entrées Y1 , Y2 , Y3 , Y4 , pour instructions
G1 = Y1 × Y4
G2 = Y2 × Y3
G3 = G1 − G2
calcule le déterminant Y1 Y4 − Y2 Y3 de la matrice
 
Y1 Y2
;
Y3 Y4
il a taille 3.
Si G est dans K[Y1 , . . . , Ym ], on appelle gradient de G l’ensemble de ses m
dérivées partielles ∂G/∂Yi , i = 1, . . . , m.
1. Soient G et H dans K[Y1 , . . . , Ym ]. Exprimer les dérivées partielles de G+H,
G − H et G × H, en fonction de G, H et des dérivées partielles de G et H.
En déduire qu’étant donné un programme de taille L, qui calcule un
polynôme G de K[Y1 , . . . , Ym ], on peut en déduire un programme de taille
O(Lm) qui calcule G et son gradient.
2. Soient G dans K[Y1 , . . . , Ym ] et H dans K[Y1 , . . . , Ym+1 ], tels que
G = H(Y1 , . . . , Ym , Yi × Yj ),
avec 1 ≤ i, j ≤ m. Exprimer les dérivées partielles de G en fonction de H
et de ses dérivées partielles. Traiter ensuite les cas
G = H(Y1 , . . . , Ym , Yi ± Yj ).
3. Soient G dans K[Y1 , . . . , Ym ] et H dans K[Y1 , . . . , Ym+1 ], tels que
G = H(Y1 , . . . , Ym , Yi op Yj ),
avec 1 ≤ i, j ≤ m, et op dans {+, −, ×}. On suppose connu un programme
de taille L qui calcule H et son gradient. Montrer qu’on peut en déduire
un programme de taille L + O(1) qui calcule G et son gradient.
En déduire par récurrence que si un polynôme G de K[Y1 , . . . , Ym ] peut
être calculé par un programme de taille L, G et son gradient peuvent être
calculés par un programme de taille O(L).
4. Soient X1,1 , . . . , X1,n , . . . , Xn,1 , . . . , Xn,n des indéterminées, et soit D le
déterminant de la matrice
 
X1,1 . . . X1,n
M =  ... ..  .

. 
Xn,1 ... Xn,n
Montrer que le gradient de D permet de retrouver les entrées de la comatrice
N de M , où N est l’unique matrice satisfaisant
M · t N = t N · M = DIn ,
In étant la matrice identité de taille n, et t N la transposée de N .
52 3. ALGÈBRE LINÉAIRE DENSE : DE GAUSS À STRASSEN

5. Montrer qu’étant donné un programme de taille L qui calcule D, on peut


en déduire un programme de taille O(L), effectuant éventuellement des
divisions, qui calcule les coefficients de l’inverse de M .
6. En déduire que ωinv ≤ ωdet .

Notes
L’optimalité de l’algorithme naïf pour le produit matrice-vecteur mentionnée
au début de la Section 2 a été prouvée par Winograd [58]. Les parties (b) et (c)
du Théorème 2 sont dues à Winograd [56] et Waksman [55]. Le Théorème 4, dont
le titre est emprunté à l’article de Strassen [50], montre que du point de vue de
la complexité on peut faire mieux que la méthode du pivot de Gauss. C’est un
résultat surprenant car Klyuyev et Kokovkin-Shcherbak [28] avaient prouvé que
l’élimination Gaussienne est optimale si l’on se restreint à des opérations sur des
lignes et des colonnes. C’est surtout un résultat qui a ouvert la voie à tout un
domaine de recherche active, la théorie de la complexité bilinéaire. Les livres [41],
[11, §15–16], [1, §7–10] et les articles de synthèse [40, 52] constituent de bonnes
références sur ce sujet.
L’interprétation des formules de Strassen donnée en Section 2.5 et l’exercice 5
sont dûs à Fiduccia [16]. L’algorithme d’inversion des matrices génériques en Sec-
tion 3.4 est dû à Strassen [50]. La remarque de Schönhage permettant de traiter
l’inversion rapide d’une matrice réelle arbitraire est tirée de [46]. L’algorithme gé-
néral d’inversion évoqué à la fin de la Section 3.4, ainsi que la preuve des égalités
ωinv = ωLUP = ωmul ont été donnés par Bunch et Hopcroft dans [9]. La preuve de
l’inégalité ωinv ≤ ωdet esquissée dans l’exercice 11 est due à Baur et Strassen [2].
La réduction présentée en Section 3.3 provient de [35]. La partie (f) du Théorème 4
est due à [27], et la partie (g) est due à [10]. Le fait que l’exposant ωmul ne dépend
que de la caractéristique du corps de base est prouvé par Schönhage dans [47].
L’algorithme décrit dans la Section 3.5 provient de l’article [27] ; il s’agit d’une
version accélérée d’un algorithme classique de Krylov-Danilevsky [29, 15]. Il est
possible d’adapter cet algorithme au cas où A est une matrice arbitraire. Plus pré-
cisément, l’algorithme de Keller-Gehrig calcule dans ce cas une base de Kn dans
laquelle la matrice de l’endomorphisme de multiplication par A est triangulaire
par blocs, avec des blocs diagonaux de type compagnon. Autrement dit, il procède
à une mise en forme de Frobenius faible. Un raffinement de cet algorithme, dû à
Giesbrecht [19], permet de calculer la forme de Frobenius forte (matrice diagonale
par blocs de type compagnon) également en complexité Õ(MM(n)) ; cet algorithme
permet aussi le calcul, en la même complexité, du polynôme minimal et de tous les
autres facteurs invariants de A. Les algorithmes de [19] sont probabilistes ; des ver-
sions déterministes ont été données par Storjohann dans [49]. L’article [27] propose
également un algorithme différent de celui décrit dans la Section 3.5, calculant le
polynôme caractéristique d’une matrice générique en seulement O(MM(n)) opéra-
tions ; voir l’exercice 13 en page 321. Une version (probabiliste) de même complexité
et sans hypothèse de généricité a été proposée par Pernet et Storjohann [43].
Les articles [19, 49] montrent que ωFrobenius = ωmul et que l’évaluation d’un
polynôme de degré d en une matrice de Mn (K) peut se faire en Õ(MM(n) + d)
opérations dans K, ce qui améliore le résultat (2) de l’exercice 9. Cet exercice est
inspiré des articles [7] pour (1), [42] pour (2) et [8] pour (3) ; le résultat de (1) sera
amélioré au Chapitre 6 et celui de (3) au Chapitre 4.
À l’heure actuelle, on ne sait pas si les exposants des problèmes suivants
– résoudre un système,
– calculer le rang,
– décider si une matrice est inversible,
NOTES 53

sont eux aussi égaux à ωmul . Grâce au Théorème 4, on sait que ces problèmes ne
sont pas plus difficiles que la multiplication, mais peut-être sont-ils plus faciles . . .
Un autre problème ouvert est le calcul du polynôme caractéristique par un
algorithme déterministe de complexité O(MM(n)).
Complexité des algorithmes commutatifs. Il est naturel de se demander s’il
est possible d’obtenir des algorithmes à la Winograd plus efficaces, en regroupant
les termes de (1) en paquets plus gros plutôt que deux par deux. La réponse est
négative. Harter [20] a montré qu’il n’existe pas de généralisation de (1) de la forme
h`, ci = λ(a1 , x1 , a2 , x2 , . . .) + µ(a1 , x1 , a2 , x2 , . . .) + f (a1 , a2 , . . .) + g(x1 , x2 , . . .),
où λ et µ sont des formes linéaires et f et g des fonctions quelconques. Ja’Ja [24]
a montré plus généralement qu’aucun algorithme commutatif ne peut apporter un
gain d’un facteur supérieur à 2 sur l’algorithme naïf, et en particulier ne peut pas
améliorer l’exposant 3. De ce point de vue, les algorithmes de Winograd et Waksman
sont optimaux dans la classe des algorithmes commutatifs.
Algorithme de Strassen. Winograd [17] a donné une version de l’algorithme de
Strassen utilisant seulement C = 15 additions et soustractions (au lieu de C = 18).
Cela permet de descendre la constante dans le O(nlog2 (7) ) de 7 à 6 pour l’algorithme
en Figure 1. Cette constante a été abaissée à 3,92 par Fischer [18].
Dans le cas où la taille n de la matrice n’est pas une puissance de 2 (2k−1 <
n < 2k ) il vaut mieux éviter d’appliquer l’algorithme de Strassen sur la matrice
augmentée de 2k − n lignes et colonnes nulles. Si n est pair, on effectuerait plutôt
un découpage en 4 blocs de taille n/2. Si n est impair, on utiliserait la formule de
Strassen sur des blocs de taille (n − 1)/2 en gérant « à la main » les opérations sur
la ligne et la colonne restantes. D’autres stratégies sont décrites dans [23].
Bornes inférieures vs. bornes supérieures. Le problème des bornes inférieures
est très difficile. En taille n = 2, il a été montré [57, 22] que le résultat de Strassen
est optimal du point de vue des multiplications : on ne peut pas effectuer le pro-
duit de deux matrices carrées de taille 2 en seulement 6 multiplications scalaires.
Récemment Landsberg [32] a obtenu une généralisation de ce résultat, en utilisant
des outils géométriques. Probert [44] a montré que la version de l’algorithme de
Strassen due à Winograd est optimale également vis-à-vis du nombre total d’opé-
rations arithmétiques : il n’existe aucun algorithme pour multiplier deux matrices
2 × 2 en 7 multiplications et seulement 14 additions et soustractions.
La taille n = 2 est la seule pour laquelle on connaît le nombre minimal de
multiplications scalaires requises pour effectuer le produit de matrices carées n × n.
En taille n = 3, la meilleure borne inférieure connue à ce jour est 19 [6], alors
que le meilleur algorithme commutatif utilise 22 multiplications [34] et le meilleur
algorithme non-commutatif utilise 23 multiplications [31]. Pour une taille arbitraire,
toutes les bornes inférieures connues sont seulement quadratiques en n : la meilleure,
5 2
2 n −3n, est due à Bläser [5]. Si le corps des scalaires est R ou C, et dans un modèle
restreint de complexité où les seules multiplications scalaires permises se font par
des scalaires de module borné, Raz [45] a prouvé une borne inférieure en c n2 log n.
Matrices de petite taille. Il existe un grand nombre d’autres schémas à la Stras-
sen pour multiplier des matrices de petite taille. Un recensement des meilleurs
algorithmes non-commutatifs connus pour le produit des matrices de petite taille a
été effectué par Smith [48].
Par exemple, Sýkora [53] a montré qu’on peut multiplier deux matrices n × n
en n3 − (n − 1)2 produits non-commutatifs ; cet algorithme généralise à la fois
ceux de Strassen et de Laderman. Des techniques plus sophistiquées ont permis
à Pan [37, 38] de montrer que le produit de matrices n × n peut s’effectuer en
54 3. ALGÈBRE LINÉAIRE DENSE : DE GAUSS À STRASSEN

n3 /3 + 9/2n2 − n/3 multiplications non-commutatives. Chacun de ces schémas,


appliqué récursivement, donne un algorithme de produit matriciel sous-cubique. Par
exemple, l’algorithme de [38] multiplie des matrices 48×48 en 47216 multiplications
non-commutatives, ce qui mène à ωmul < 2,781.
À la recherche de ωmul = 2. L’idée initiale de Strassen de combiner une bonne
multiplication en taille fixée et la puissance de la récursivité pour améliorer l’ex-
posant ωmul n’a pas permis d’aller en dessous de 2,7. Les améliorations ultérieures
reposent toutes sur une accumulation d’idées de plus en plus sophistiquées. Une
première idée fut d’utiliser le produit des matrices rectangulaires. Un résultat
de [36, 21] montre que si l’on dispose d’un algorithme pour multiplier deux ma-
trices (m×n)×(n×p) en ` multiplications, alors on sait effectuer en ` multiplications
chacun des produits en tailles (n × p) × (p × m) et (p × m) × (m × n). Cet énoncé
est lié au théorème de transposition de Tellegen qui sera vu au Chapitre 12. Une
décomposition par blocs permet alors d’obtenir un algorithme pour le produit de
matrices carrées de taille mnp en `3 opérations, et d’obtenir ainsi la majoration
ωmul ≤ 3 log(`)/ log(mnp). Ce résultat n’a permis d’améliorer la majoration de
ωmul que combiné avec d’autres concepts, comme les algorithmes approchés et le
rang tensoriel limite (border rank en anglais) introduits dans [4, 3]. L’article [4]
donne un algorithme approché qui utilise 10 multiplications pour le produit matri-
ciel en taille (2 × 2) × (2 × 3) ; cela implique ωmul < log12 (1000) < 2,77989, mais
les constantes dans les O(·) commençent à devenir astronomiques. D’autres idées
pour obtenir des bornes de plus en plus fines sur ωmul sont : l’utilisation des ma-
trices creuses [47] qui aboutit à l’inégalité asymptotique pour les sommes directes
de matrices à trous et à la majoration ωmul < 2,548 ; la théorie de la déformation
des modules sur des groupes algébriques linéaires conduisant à la méthode laser de
Strassen [51] et à la borne ωmul < 2,4785, et qui est à la base de la meilleure borne
connue ωmul < 2,376 due à Coppersmith et Winograd [14].
Théorie vs. pratique. Théoriquement, le principal problème ouvert est ωmul = 2.
D’un point de vue pratique, il n’est pas forcément intéressant de comparer les
algorithmes en fonction de leur exposant, mais plutôt de répondre à des questions
du type : quelle est la formule la plus simple qui mène à un exposant faisable
θ < log2 (7) ? Quel est l’algorithme le plus rapide pour une taille donnée ?
L’idée des algorithmes mentionnés en Section 2.7 est due à Pan [36, 39]. L’ar-
ticle [30] est le premier à avoir mis en avant leur aspect pratique ; les derniers
progrès basés sur cette idée sont dûs à Kaporin [26, 25].
La recherche théorique pour améliorer les bornes sur ωmul a demandé beau-
coup d’ingéniosité (et de chance !), mais a mené à des algorithmes de plus en plus
éloignés du calcul réel. Smith [48] adopte un point de vue pragmatique et propose
d’automatiser la recherche d’algorithmes rapides en petite taille. Il ramène la re-
cherche d’un algorithme qui calcule le produit de deux matrices de types (a × b)
et (b × c) en m multiplications non-commutatives à un problème d’optimisation
dans un espace à (ab + bc + ca)m dimensions. Cela lui permet de retrouver tous
les algorithmes connus pour les petites tailles et d’en découvrir des nouveaux. Ses
programmes retrouvent les formules de Strassen en quelques secondes et celles de
Laderman en quelques minutes.
Un point de vue différent est celui développé par Landsberg [33], qui montre
que les questions ouvertes concernant la complexité de la multiplication matricielle
se formulent convenablement en termes géométriques et théorie de la représentation.
Enfin, une autre piste actuellement explorée pour prouver (ou infirmer) que
ωmul = 2 est celle ouverte par Cohn et Umans [13, 12]. Ils développent une ap-
proche unifiée permettant de ramener la multiplication matricielle à l’étude de la
transformée de Fourier discrète dans des algèbres de groupe associées à certains
Bibliographie 55

groupes finis, possédant de bonnes propriétés vis-à-vis de leurs représentations ir-


réductibles. Ils retrouvent par ce biais ωmul < 2,41 et ramènent ωmul = 2 à des
conjectures combinatoires et en théorie des groupes.
Déterminant et permanent. Le permanent d’une matrice A ∈ Mn (K) est défini
comme
X Y n
perm(A) = ai,σ(i) .
σ∈Sn i=1
Malgré la ressemblance entre cette définition et celle de det(A), on ne connaît pas
d’algorithme de complexité polynomiale en n calculant perm(A) sur un corps K de
caractéristique différente de 2. Valiant [54] a prouvé que le calcul du permanent
pour les matrices n × n à coefficients dans {0, 1} est un problème #P -complet.

Bibliographie
[1] Abdeljaoued (J.) and Lombardi (H.). – Méthodes matricielles : introduction à la complexité
algébrique. – Springer-Verlag, Berlin, , Mathématiques & Applications, vol. 42, xvi+376p.
[2] Baur (W.) and Strassen (V.). – The complexity of partial derivatives. Theoretical Computer
Science, vol. 22, , pp. 317–330.
[3] Bini (D.). – Relations between exact and approximate bilinear algorithms. Applications.
‌ , , pp. 87–97.
Calcolo, vol. 17, n1
[4] Bini (D.), Capovani (M.), Romani (F.), and Lotti (G.). – O(n2.7799 ) complexity for n × n
approximate matrix multiplication. Inform. Process. Lett., vol. 8, n‌5, , pp. 234–235.
[5] Bläser (Markus). – A 52 n2 -lower bound for the multiplicative complexity of n × n-matrix
multiplication. In STACS 2001 (Dresden), pp. 99–109. – Springer, Berlin, .
[6] Bläser (Markus). – On the complexity of the multiplication of matrices of small formats. J.
Complexity, vol. 19, n‌1, , pp. 43–60.
[7] Borodin (A.) and Munro (I.). – Evaluation of polynomials at many points. Information Pro-
cessing Letters, vol. 1, n‌2, , pp. 66–68.
[8] Brent (R. P.) and Kung (H. T.). – Fast algorithms for manipulating formal power series.
‌ , , pp. 581–595.
Journal of the ACM, vol. 25, n4
[9] Bunch (James R.) and Hopcroft (John E.). – Triangular factorization and inversion by fast
matrix multiplication. Math. Comp., vol. 28, , pp. 231–236.
[10] Bürgisser (P.), Karpinski (M.), and Lickteig (T.). – Some computational problems in linear
algebra as hard as matrix multiplication. Comput. Complexity, vol. 1, n‌2, , pp. 131–155.
[11] Bürgisser (Peter), Clausen (Michael), and Shokrollahi (M. Amin). – Algebraic complexity
theory. – Springer-Verlag, Berlin, , Grundlehren Math. Wiss., vol. 315, xxiv+618p.
[12] Cohn (H.), Kleinberg (R.), Szegedy (B.), and Umans (C.). – Group-theoretic algorithms for
matrix multiplication. In FOCS’05. pp. 379–388. – IEEE Computer Society, .
[13] Cohn (Henry) and Umans (Christopher). – A group-theoretic approach to fast matrix multi-
plication. In FOCS’03. p. 438. – IEEE Computer Society, Washington, DC, USA, .
[14] Coppersmith (Don) and Winograd (Shmuel). – Matrix multiplication via arithmetic progres-
sions. J. Symbolic Comput., vol. 9, n‌3, , pp. 251–280.
[15] Danilevskii (A. M). – The numerical solution of the secular equation. Matem. sbornik, vol. 44,
n‌2, , pp. 169–171. – (in Russian).
[16] Fiduccia (Charles M.). – On obtaining upper bounds on the complexity of matrix multipli-
cation. In Complexity of computer computations (Proc. Sympos., IBM Thomas J. Watson
Res. Center, Yorktown Heights, N.Y., 1972), pp. 31–40. – Plenum, New York, .
[17] Fischer (P. C.) and Probert (R. L.). – Efficient procedures for using matrix algorithms. In
Automata, languages and programming, pp. 413–427. LNCS, Vol. 14. – Springer, Berlin, .
[18] Fischer (Patrick C.). – Further schemes for combining matrix algorithms. In Automata, lan-
guages and programming, pp. 428–436. LNCS, Vol. 14. – Springer, Berlin, .
[19] Giesbrecht (Mark). – Nearly optimal algorithms for canonical matrix forms. SIAM J. Com-
‌ , , pp. 948–969.
put., vol. 24, n5
[20] Harter (Richard). – The optimality of Winograd’s formula. Commun. ACM, vol. 15, n‌5, ,
p. 352.
56 3. ALGÈBRE LINÉAIRE DENSE : DE GAUSS À STRASSEN

[21] Hopcroft (J.) and Musinski (J.). – Duality applied to the complexity of matrix multiplication
and other bilinear forms. SIAM Journal on Computing, vol. 2, , pp. 159–173.
[22] Hopcroft (J. E.) and Kerr (L. R.). – On minimizing the number of multiplications necessary
for matrix multiplication. SIAM J. Appl. Math., vol. 20, , pp. 30–36.
[23] Huss-Lederman (S.), Jacobson (E. M.), Tsao (A.), Turnbull (T.), and Johnson (J. R.). –
Implementation of Strassen’s algorithm for matrix multiplication. In Supercomputing’96. –
IEEE Computer Society, Washington, DC, USA, . 32 pp.
[24] Ja’Ja’ (Joseph). – On the complexity of bilinear forms with commutativity. In STOC’79.
pp. 197–208. – ACM, New York, NY, USA, .
[25] Kaporin (I). – The aggregation and cancellation techniques as a practical tool for faster
matrix multiplication. Theoretical Computer Science, vol. 315, n‌2-3, , pp. 469–510.
[26] Kaporin (Igor). – A practical algorithm for faster matrix multiplication. Numer. Linear Al-
gebra Appl., vol. 6, n‌8, , pp. 687–700.
[27] Keller-Gehrig (Walter). – Fast algorithms for the characteristic polynomial. Theoret. Comput.
Sci., vol. 36, n‌2-3, , pp. 309–317.
[28] Klyuyev (V. V.) and Kokovkin-Shcherbak (N. I.). – On the minimization of the number of
arithmetic operations for the solution of linear algebraic systems of equations. USSR Com-
putational Mathematics and Mathematical Physics, vol. 5, , pp. 25–43.
[29] Krylov (A. N.). – On the numerical solution of the equation by which in technical questions
frequencies of small oscillations of material systems are determined. Izv. Akad. Nauk SSSR,
vol. 7, n‌4, , pp. 491–539. – (in Russian).
[30] Laderman (Julian), Pan (Victor), and Sha (Xuan He). – On practical algorithms for accele-
rated matrix multiplication. Linear Algebra Appl., vol. 162/164, , pp. 557–588.
[31] Laderman (Julian D.). – A noncommutative algorithm for multiplying 3 × 3 matrices using
23 muliplications. Bull. Amer. Math. Soc., vol. 82, n‌1, , pp. 126–128.
[32] Landsberg (J. M.). – The border rank of the multiplication of 2 × 2 matrices is seven. J.
Amer. Math. Soc., vol. 19, n2 ‌ , , pp. 447–459.
[33] Landsberg (J. M.). – Geometry and the complexity of matrix multiplication. Bull. Amer.
Math. Soc. (N.S.), vol. 45, n2 ‌ , , pp. 247–284.
[34] Makarov (O. M.). – An algorithm for multiplication of 3 × 3 matrices. Zh. Vychisl. Mat. i
Mat. Fiz., vol. 26, n‌2, , pp. 293–294, 320.
[35] Munro (I.). – Problems related to matrix multiplication. In Rustin (R.) (editor), Proceedings
Courant Institute Symposium on Computational Complexity, October 1971. pp. 137–151. –
Algorithmics Press, New York, .
[36] Pan (V.). – Computation schemes for a product of matrices and for the inverse matrix. Uspehi
Mat. Nauk, vol. 27, n‌5(167), , pp. 249–250.
[37] Pan (V. Ya.). – Strassen’s algorithm is not optimal. Trilinear technique of aggregating, uniting
and canceling for constructing fast algorithms for matrix operations. In SFCS ’78. pp. 166–
176. – IEEE Computer Society, Washington, DC, USA, .
[38] Pan (V. Ya.). – New fast algorithms for matrix operations. SIAM J. Comput., vol. 9, n‌2, ,
pp. 321–342.
[39] Pan (V. Ya.). – New combinations of methods for the acceleration of matrix multiplication.
Comput. Math. Appl., vol. 7, n‌1, , pp. 73–125.
[40] Pan (Victor). – How can we speed up matrix multiplication ? SIAM Rev., vol. 26, n‌3, ,
pp. 393–415.
[41] Pan (Victor). – How to multiply matrices faster. – Springer-Verlag, Berlin, , Lecture
Notes in Computer Science, vol. 179, xi+212p.
[42] Paterson (M. S.) and Stockmeyer (L. J.). – On the number of nonscalar multiplications
‌ , , pp. 60–66.
necessary to evaluate polynomials. SIAM J. Comput., vol. 2, n1
[43] Pernet (Clément) and Storjohann (Arne). – Faster algorithms for the characteristic polyno-
mial. In ISSAC’07, pp. 307–314. – ACM, New York, .
[44] Probert (Robert L.). – On the additive complexity of matrix multiplication. SIAM J. Com-
put., vol. 5, n‌2, , pp. 187–203.
[45] Raz (Ran). – On the complexity of matrix product. SIAM J. Comput., vol. 32, n‌5, ,
pp. 1356–1369.
[46] Schönhage (A.). – Unitäre Transformationen grosser Matrizen. Numer. Math., vol. 20,
/, pp. 409–417.
Bibliographie 57

[47] Schönhage (A.). – Partial and total matrix multiplication. SIAM J. Comput., vol. 10, n‌3,
, pp. 434–455.
[48] Smith (Warren D.). – Fast matrix multiplication formulae – report of the prospectors. – .
Preprint, available at http://www.math.temple.edu/~wds/prospector.pdf.
[49] Storjohann (Arne). – Deterministic computation of the Frobenius form (extended abstract).
In 42nd IEEE Symposium on Foundations of Computer Science (Las Vegas, NV, 2001),
pp. 368–377. – IEEE Computer Soc., Los Alamitos, CA, .
[50] Strassen (V.). – Gaussian elimination is not optimal. Numerische Mathematik, vol. 13, ,
pp. 354–356.
[51] Strassen (V.). – Relative bilinear complexity and matrix multiplication. Journal für die Reine
und Angewandte Mathematik, vol. 375/376, , pp. 406–443.
[52] Strassen (Volker). – Algebraic complexity theory. In Handbook of theoretical computer science,
Vol. A, pp. 633–672. – Elsevier, Amsterdam, .
[53] Sýkora (Ondrej). – A fast non-commutative algorithm for matrix multiplication. In Mathe-
matical foundations of computer science (Proc. Sixth Sympos., Tatranská Lomnica, 1977),
pp. 504–512. Lecture Notes in Comput. Sci., Vol. 53. – Springer, Berlin, .
[54] Valiant (L. G.). – The complexity of computing the permanent. Theoret. Comput. Sci., vol. 8,
‌ , , pp. 189–201.
n2
[55] Waksman (Abraham). – On Winograd’s algorithm for inner products. IEEE Trans. Comput.,
vol. C-19, n‌4, , pp. 360–361.
[56] Winograd (S.). – A new algorithm for inner-product. IEEE Transactions on Computers,
vol. 17, , pp. 693–694.
[57] Winograd (S.). – On multiplication of 2 × 2 matrices. Linear Algebra and Appl., vol. 4, ,
pp. 381–388.
[58] Winograd (Shmuel). – On the number of multiplications necessary to compute certain func-
tions. Comm. Pure Appl. Math., vol. 23, , pp. 165–179.
[59] Winograd (Shmuel). – Some remarks on fast multiplication of polynomials. In Complexity of
sequential and parallel numerical algorithms (Proc. Sympos., Carnegie-Mellon Univ., Pitts-
burgh, Pa., 1973), pp. 181–196. – Academic Press, New York, .
CHAPITRE 4

Calculs rapides sur les séries

Résumé
La multiplication rapide de polynômes vue au Chapitre 2 permet des
calculs efficaces comme l’inversion, l’exponentiation ou la prise de loga-
rithme d’une série. Ces opérations sont effectuées grâce à une version
formelle de la méthode de Newton. La composition de séries est en gé-
néral plus coûteuse que le produit, mais peut aussi tirer parti d’une
multiplication rapide.

Ce chapitre porte sur le calcul des premiers termes de développements en séries.


Pour fixer les notations, N sera utilisé pour représenter le nombre de termes à
calculer, et « série » sera employé pour « série formelle tronquée à l’ordre N ». Ainsi,
« calculer une série » voudra toujours dire en calculer les N premiers termes. Comme
dans le Chapitre 2, M(N ) dénote une borne supérieure sur le nombre d’opérations
arithmétiques nécessaires pour multiplier deux polynômes de degré inférieur à N .
L’efficacité des algorithmes sera mesurée par leur complexité arithmétique.
L’opérateur de Newton est très largement utilisé en calcul numérique, pour
trouver des solutions approchées d’équations. C’est un processus itératif, qui
consiste à chaque étape à remplacer le système que l’on veut résoudre par son
linéarisé au voisinage de la dernière approximation trouvée. Ainsi, si Φ est une
fonction C 1 de R dans R, pour résoudre Φ(y) = 0 dans R, on choisit y0 ∈ R et on
itère
Φ(yk )
(1) yk+1 = N (yk ) = yk − 0 .
Φ (yk )
Cette itération est représentée en Figure 1. La solution serait exacte si Φ était une
fonction linéaire ; dans le cas général, si y0 est bien choisi (par exemple assez proche
d’une racine simple), la suite yk converge vers une limite y∞ . En outre, à l’itération k
la distance à la limite est de l’ordre du carré de cette distance à l’itération k − 1.
On parle dans ce cas de convergence quadratique. Dans ces conditions, pour k
suffisamment grand, le nombre de décimales correctes est approximativement doublé
à chaque itération.

Figure 1. Opérateur de Newton de R dans R.


59
60 4. CALCULS RAPIDES SUR LES SÉRIES

Dans le cadre formel, la fonction Φ est remplacée par une application des séries
formelles dans les séries formelles. Dans bien des cas, l’itération de Newton converge,
et le nombre de coefficients corrects est doublé à chaque itération, ce qui mène à
une bonne complexité. La composition des séries reste une opération plus coûteuse,
à laquelle est consacrée la fin du chapitre.

1. Séries formelles
Définition. Si A est un anneau commutatif unitaire, on note A[[X]] l’ensemble des
séries formelles sur A. Ses éléments sont des suites (fi )i∈N de A, notées
X
F (X) = fi X i .
i≥0

Le coefficient fi est appelé le iième coefficient de F (X), le coefficient f0 est appelé


terme constant de F (X), et parfois noté F (0).
Les opérations de A[[X]] sont l’addition des suites et une multiplication (appelée
parfois produit de Cauchy) qui généralise la multiplication des polynômes :
X X X X
fi X i × gi X i = hi X i , avec hi = fj gk ,
i≥0 i≥0 i≥0 j+k=i

la dernière somme étant finie.


Exemple 1. La série formelle
1 = 1 · X0 + 0 · X + 0 · X2 + · · · ,
où 1 est l’unité de A, est élément neutre pour la multiplication de A[[X]]. La formule
donnant les coefficients du produit se réduit alors à un terme.
Exemple 2. Si F = 1 + X et G = 1 − X + X 2 − X 3 + · · · , alors le produit
vaut H = F G = 1 : le coefficient de X n dans H vaut 1 − 1 = 0 pour n > 0 et 1
sinon. La série G est donc l’inverse de F pour la multiplication, que l’on peut noter
(1 + X)−1 .

Métrique. Lorsque les coefficients sont des nombres complexes, la question de la


convergence des séries entières représentées par ces séries formelles ne se posera pas
pour les algorithmes considérés dans ce cours. En revanche, quel que soit l’anneau
de coefficients A, il est possible de définir une distance entre deux séries F et G
par d(F, G) = 2− val(F −G) , où la valuation val(F ) d’une série F est l’indice de son
premier terme non-nul (et par convention val(0) = ∞).
Exercice 1. Vérifier que la fonction d définie ci-dessus est bien une distance.
Muni de cette distance, l’ensemble des séries formelles forme un espace métrique
complet (les suites de Cauchy convergent). En effet, dire qu’une suite (Sn ) de séries
est de Cauchy signifie qu’étant donné k ∈ N, il existe un entier N tel que pour
tous m, n ≥ N , on ait d(Sm , Sn ) < 2−k , autrement dit après l’indice N , les k
premiers termes des Sn sont fixés, ce sont ceux de la série limite.

Composition. Si F et G sont deux séries formelles, avec terme constant G(0) = 0,


on définit la composition comme
F (G(X)) = f0 + f1 G(X) + f2 G(X)2 + · · ·
Les points de suspension signifient que l’on considère la limite des sommes Hn
obtenues en arrêtant la somme au terme fn G(X)n . Cette limite existe puisque
pour m ≥ n, la distance obéit à d(Hm , Hn ) ≤ 2−n , ce qui fait de (Hn )n une suite
de Cauchy.
1. SÉRIES FORMELLES 61

Inverse. Si F est de la forme F = 1 + GX avec G ∈ A[[X]], alors F est inversible


et son inverse est donné par
1 − GX + G2 X 2 − · · · ,
composition de (1 + X)−1 par GX. La preuve découle de cette composition : (1 +
GX)(1 − GX + . . . ) = H(GX) où H = (1 + X)(1 + X)−1 = 1.
Si a = F (0) est inversible, la série F se récrit F = a(1 + GX) avec G =
a−1 (F − a)/X, donc F est inversible, d’inverse a−1 (1 + GX)−1 .
Ces ingrédients mènent à la structure d’anneau de l’ensemble de séries formelles.
Proposition 1. L’ensemble A[[X]] des séries formelles à coefficients dans A
est un anneau commutatif unitaire. Ses éléments inversibles sont les séries de terme
constant inversible.
Démonstration. L’addition est commutative comme celle de A. L’associati-
vité et la distributivité du produit sont obtenues comme pour les polynômes. L’unité
pour le produit
P est ila série 1. La première partie du lemme est donc prouvée.
gi X i est son inverse, alors
P
Si F = fi X ∈ A[[X]] est inversible, et G =
l’extraction du coefficient de X 0 dans l’identité F G = 1 donne f0 g0 = 1 ce qui
prouve qu’une série inversible a un terme constant inversible. 

Séries multivariées. Comme A[[X]] est un anneau commutatif unitaire, il peut


être utilisé comme anneau de base pour définir des séries formelles en une autre
variable Y , ce qui définit de la même manière l’anneau des séries formelles biva-
riées A[[X]][[Y ]], noté aussi A[[X, Y ]].

Dérivation. La dérivée d’une série est définie formellement coefficient par coeffi-
cient via l’identité  0
X X
 fi X i  = (i + 1)fi+1 X i .
i≥0 i≥0

Les relations habituelles (F + G)0 = F 0 + G0 et (F G)0 = F 0 G + F G0 sont prouvées


comme pour les polynômes. Dans le cas de séries en plusieurs variables, on utilise
la notation des dérivées partielles ∂F/∂X pour désigner la dérivée par rapport à la
variable X.

Troncatures. Algorithmiquement, on ne manipule pas de série à précision « infi-


nie », mais seulement des troncatures, c’est-à-dire un certain nombre des premiers
termes. Les séries tronquées deviennent alors de simples polynômes, pour lesquels on
dispose en particulier d’algorithmes rapides de multiplication. Étant donnés les N
premiers termes d’une série F , l’objectif de ce chapitre est de donner des algo-
rithmes permettant de calculer efficacement les N premiers termes d’autres séries
définies à partir de F .
Pour étendre la notation utilisée avec les polynômes, étant donnée la série
X
S= ai X i ,
i≥0
N
on notera S mod X le polynôme
X
S mod X N := ai X i .
0≤i<N
N
On notera S = f + O(X ) si les séries ou polynômes S et f coïncident jusqu’au
terme de degré N − 1, et même plus généralement S = O(T k ) si S = O(X k val(T ) ).
62 4. CALCULS RAPIDES SUR LES SÉRIES

Inverse multiplicatif de séries formelles


Entrée : un entier N > 0, F mod X N une série tronquée ;
Sortie : F −1 mod X N .
Si N = 1, alors renvoyer f0−1 , où f0 = F (0).
Sinon,
1. Calculer récursivement l’inverse G de F mod X dN/2e ;
2. Renvoyer G + (1 − GF )G mod X N .

Figure 2. Inverse de série par itération de Newton.

Formule de Taylor. Le lien entre la composition et la dérivation est donné par la


formule de Taylor. Si F , G, H sont trois séries formelles, avec G(0) = H(0) = 0, et
les entiers 2, 3, . . . , k − 1 sont inversibles dans A, alors
H2
F (G + H) = F (G) + F 0 (G)H + F 00 (G) + · · · + O(H k ).
2!
Pour cette identité, la commutativité de A est cruciale. La formule est classique
pour les polynômes, et les coefficients de X N dans les deux membres de la formule
sont les mêmes que ceux de l’identité entre polynômes obtenue en considérant les
troncatures de F , G et H modulo X N +1 , ce qui permet de conclure.

Intégration. Il s’agit de l’opération inverse de la dérivation. On suppose que les


entiers sont inversibles dans A (A est une Q-algèbre) et on définit alors
Z X X X i+1
fi X i = fi .
i+1
i≥0 i≥0

Exemple 3. La série log(1 + X) vaut


Z
1 1
log(1 + X) = (1 + X)−1 = X − X 2 + X 3 + · · ·
2 3

2. La méthode de Newton pour le calcul d’inverses


Partant de la fonction Φ(y) = 1/y − f , l’itération (1) devient
N (gk ) = gk + gk2 (1/gk − f ) = gk + gk (1 − gk f ).
Cette itération, ou des variantes, permet le calcul d’inverses dans plusieurs
contextes.

2.1. Convergence quadratique pour l’inverse d’une série formelle.


Lemme 1. Soit F ∈ A[[X]] une série formelle de terme constant inversible et
G une série telle que G − 1/F = O(X n ) (n ≥ 1), alors la série
(2) N (G) = G + (1 − GF )G
vérifie N (G) − 1/F = O(X 2n ).
Démonstration. Par hypothèse, on peut définir H ∈ A[[X]] par 1 − GF =
X n H. Il suffit alors de récrire F = G−1 (1 − HX n ) et d’inverser :
1/F = (1 + HX n + O(X 2n ))G = (1 + HX n )G + O(X 2n )G = N (G) + O(X 2n ).

2. LA MÉTHODE DE NEWTON POUR LE CALCUL D’INVERSES 63

2.2. Algorithme.
Lemme 2. L’algorithme d’inversion de la Figure 2 est correct.
Démonstration. La preuve est une récurrence sur les entiers. Pour N = 1 la
propriété est claire. Si la propriété est vraie pour 1 ≤ N < k, alors elle l’est pour
1 ≤ dN/2e < k donc le résultat de l’étape 1 vaut F mod X dN/2e . Alors, d’après
le lemme 1, G + (1 − GF )G = 1/F mod X 2dN/2e et la troncature modulo X N est
donc bien correcte. 
2.3. Complexité. Chaque itération coûte essentiellement deux multiplica-
tions, et l’ensemble est donc effectué en O(M(N )) opérations d’après le lemme
« diviser pour régner ». Une estimation plus précise est donnée par la proposition
suivante.
Proposition 2. Soit F dans A[[X]] avec F (0) inversible et N ≥ 1. On peut
calculer l’inverse de F modulo X N en 4M(N ) + O(N ) opérations dans A.
Démonstration. L’étape 2 de l’algorithme demande 2 multiplications modulo
X N , plus λ · N opérations supplémentaires (additions, . . .), λ étant une constante
que l’on ne va pas déterminer. Notons C(N ) le coût du calcul modulo N ; on a alors
C(N ) ≤ C (dN/2e) + 2M(N ) + λN.
L’application du lemme « diviser pour régner » donne alors
C(N ) ≤ 4M(N ) + 2λN
en utilisant l’inégalité M(d) ≤ 21 M(2d). 

Optimisations. Le coût de la Proposition 2 peut être encore divisé d’un facteur 2 :


Dans le produit (1 − GF )G, le deuxième terme est de la forme X dN/2e RN , alors
que G est de degré inférieur à dN/2e. Ainsi, seul le produit RN G est nécessaire, et
celui-ci ne demande que M(N/2) opérations.
D’autre part, le produit GF est de la forme 1 + X dN/2e RN . Il s’agit donc de
calculer le produit d’un polynôme de degré N/2 par un polynôme de degré N ,
alors que l’on connaît à l’avance les N/2 premiers coefficients du produit. Dans
cette situation, il est possible d’abaisser le coût du produit de M(N ) à M(N/2), en
utilisant un produit médian et des techniques non triviales de « transposition » de
code abordées au Chapitre 12.
2.4. Division de séries. Le quotient H/F où H et F sont des séries et F
est inversible, peut être obtenu comme le produit H × F −1 . Ce calcul peut être
amélioré d’un facteur constant. Il suffit pour cela de remplacer la dernière itération
G+(1−GF )G par Y +(H −Y F )G où Y := HG mod X dN/2e . Cette astuce remplace
un produit de la forme (N/2, N ) (pour GF ), un produit de la forme (N/2, N/2)
(pour (1 − GF )G) et un produit final (N, N ) par deux produits (N/2, N/2) (pour
Y et (H − Y F )G) et un produit (N/2, N ) pour calculer Y F . L’économie est donc
la différence M(N ) − M(N/2).
2.5. Application à la division Euclidienne. L’algorithme 2 est l’élément
clé de la division Euclidienne rapide, traitée au Chapitre 5.
2.6. Application au logarithme. Si F ∈ A[[X]] est telle que F (0) = 0, on
définit la série log(1 + F ) par composition avec log(1 + X). Pour calculer cette série,
il suffit d’utiliser l’identité
F0
Z
log(1 + F ) = .
1+F
64 4. CALCULS RAPIDES SUR LES SÉRIES

R
Exercice 2. Prouver cette identité à partir des définitions de log, et de la
dérivation données plus haut.
Le calcul demande une division de séries, une dérivation et une intégration,
mais ces deux dernières opérations sont de complexité linéaire. Le bilan est donc
une complexité en O(M(N )).

2.7. Inverse de matrices. L’anneau A étant commutatif, il n’est pas possible


de traiter directement des matrices de séries comme des séries de matrices. Une
variante de l’itération (2) permet d’adapter l’inversion à ce cadre.
Lemme 3. Soient A et B deux matrices carrées à coefficients dans A[[X]], telles
que A(0) soit inversible et B − A−1 = O(X n ) (n ≥ 1). Alors la matrice
N (B) = B + (I − BA)B
vérifie N (B) − A−1 = O(X 2n ).
Démonstration. Comme ci-dessus, l’hypothèse n ≥ 1 entraîne que le terme
constant de B vaut A(0)−1 . Ensuite, la preuve est la même que pour l’inverse de
séries : en définissant la matrice de séries C := (I − BA)/X n , on peut récrire
A = B −1 (I − X n C), et il vient
A−1 = (I + X n C + O(X 2n ))B = N (B) + O(X 2n ),
ce qui permet de conclure. 
L’algorithme correspondant est une variante immédiate de l’algorithme 2, où
les multiplications sont déjà dans le bon sens pour ce cadre non-commutatif. La
complexité de cet algorithme s’exprime à l’aide de la fonction MM(k, N ) complexité
du produit de matrices k × k de polynômes de degré au plus N . Le Corollaire 1 du
Chapitre 6 montre que MM(k, N ) = O(k θ N + k 2 M(N )).
Proposition 3. Soit A une matrice k × k à coefficients dans A[[X]], avec A(0)
inversible. La matrice A−1 mod X N peut être calculée en O(MM(k, N )) opérations
dans A.
Démonstration. Comme pour l’inverse ci-dessus, le coût est dominé à une
constante près par celui du calcul de B + (I − BA)B mod X N : la complexité vérifie
l’inégalité C(N ) ≤ C(dN/2e) + 2MM(k, N ) et le résultat se déduit de l’hypothèse
MM(k, N ) ≤ 12 MM(k, 2N ). 

3. Itération de Newton formelle et applications


3.1. Un résultat général.
Théorème 1 (Itération de Newton sur les séries). Soit Φ ∈ A[[X, Y ]] une série
∂Φ
bivariée 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(X n ) (n ≥ 1), alors
Φ(X, F )
N (F ) = F − ∂Φ
∂Y (X, F )

vérifie S − N (F ) = O(X 2n ).
Ce résultat est un résultat local en (0, 0) : si ce point 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.
3. ITÉRATION DE NEWTON FORMELLE ET APPLICATIONS 65

Résolution d’équation en série


Entrée : un entier N > 0, Φ mod (X N , Y N ) une série tronquée avec
Φ(0, 0) = 0 et (∂Φ/∂Y )(0, 0) inversible.
Sortie : S mod X N , T mod X dN/2e , telles que
S(0) = 0, Φ(X, S) = 0, T = (∂Φ/∂Y (X, S))−1 .
Si N = 1, alors renvoyer 0, ((∂Φ/∂Y )(0, 0))−1 .
Sinon,
1. Calculer récursivement F := S mod X dN/2e et G := T mod X ddN/2e/2e ;
∂Φ
2. Calculer G := G + (1 − G ∂Y (X, F ))G mod X dN/2e ;
3. Calculer F := F − GΦ(X, F ) mod X N ;
4. Renvoyer F, G.

Figure 3. Résolution de Φ(X, Y ) = 0 par itération de Newton.

∂Φ
Démonstration. L’itération est bien définie : ∂Y (X, F ) est inversible parce
∂Φ
que F (0) = S(0) = 0 et que son terme constant ∂Y (0, 0) est inversible. De ce fait,
on déduit aussi N (F ) − F = O(Φ(X, F )).
La valuation de Φ(X, F ) est doublée par l’itération :
∂Φ
(3) Φ(X, N (F )) = Φ(X, F ) + (X, F )(N (F ) − F ) + O((N (F ) − F )2 )
∂Y
= O(Φ(X, F )2 ).
La limite S de la suite définie par S0 = 0 et Sk+1 = N (Sk ) existe donc (la suite
est de Cauchy d’après l’égalité qui précède) 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é
∂Φ
(4) Φ(X, F ) = Φ(X, S) + (X, F )(S − F ) + O((S − F )2 )
∂Y
donne S − F = O(Φ(X, F )). On en déduit S − N (F ) = O(Φ(X, N (F ))) = O(X 2n )
au vu des hypothèses et de (3). 
3.2. Algorithme.
Lemme 4. L’algorithme de résolution détaillé en Figure 3 est correct.
Démonstration. Pour N = 1, les valeurs renvoyées sont les termes constants
de S et T . Si la propriété est vraie pour 1 ≤ k < N , alors l’étape 1 renvoie
T mod X ddN/2e/2e et S mod X dN/2e . D’après le lemme 1, l’étape 2 calcule T mod
X dN/2e . L’étape 3 calcule alors S mod X N : les formules (3) et (4) montrent que
seuls les dN/2e premiers coefficients de ∂Φ/∂Y (X, S) sont utiles pour doubler la
précision. 
3.3. 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 ).
La complexité de l’algorithme de la Figure 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 suivants.
Théorème 2. Dans le cas où la série Φ du Théorème 1 est un polynôme en Y
de degré O(1), les N premiers termes de sa solution série telle que S(0) = 0 sont
obtenus en O(M(N )) opérations dans A.
66 4. CALCULS RAPIDES SUR LES SÉRIES

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


meilleure complexité O(N ) (donc linéaire au lieu de quasi-linéaire !) sera présenté
au Chapitre 8.
Théorème 3. Soit f une série de A[[X]]. On peut calculer en O(M(N )) opéra-
tions dans A les N premiers termes de :
1. 1/f , lorsque f (0) est inversible ;
2. log f et f α lorsque f (0) = 1 ;
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 sec-
tions 2.3 et 2.6. 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 Sec-
tion 3.7.3 sur l’inverse compositionnel. 

3.4. Exponentielle. Si F ∈ A[[X]] est telle que F (0) = 0, on définit la série


exp(F ) par
exp(F ) = 1 + F + F 2 /2! + F 3 /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.
Exercice 3. Montrer que les conditions du Théorème 1 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 )).
Exercice 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 5. Donner des bornes sur les constantes dans les O(·) pour le loga-
rithme, l’exponentielle et la puissance.
3.5. ? Sommes de Newton ?. Une conséquence intéressante de l’efficacité
du calcul de l’exponentielle est l’utilisation 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 , . . . , αd dans la clôture algébrique K de K. Les sommes de Newton de P sont les
sommes pi = α1i + · · · + αdi . Ce sont des éléments de K, puisqu’ils sont fonctions
symétriques des racines de P . Leur utilisation efficace repose sur la proposition
suivante.
3. ITÉRATION DE NEWTON FORMELLE ET APPLICATIONS 67

Proposition 4. Les sommes de Newton p1 , . . . , pd d’un polynôme P ∈ K[X]


de degré d peuvent être calculées en O(M(d)) opérations dans K. Lorsque la carac-
téristique de K est 0 ou supérieure à d, la conversion inverse est également possible
en O(M(d)) opérations.
Q
Démonstration. Si P = c α (X − α), la décomposition en éléments simples
XP 0 X X X
S= = = αi X −i ,
P X −α
P (α)=0 P (α)=0
i≥0

où α décrit les zéros de P comptés avec multiplicités, montre que les coefficients
du développement en puissances de X −1 de XP 0 /P sont les pi . Pour se ramener
à des calculs de séries formelles, on introduit par exemple une nouvelle variable
par X = 1/T . Le calcul des d premiers termes de cette série demande O(M(d))
opérations. L’opération inverse, à savoir le calcul de P à partir des d premiers
termes de la série S = XP 0 /P est effectué en O(M(d)) opérations par la formule
Z
P = exp S/X

si P (0) 6= 0. Sinon, il faut d’abord récupérer la valuation, et le reste se calcule de


la façon précédente. La contrainte sur la caractéristique permet de définir l’expo-
nentielle tronquée par son développement en série. 

3.6. ? Application à la somme et au produit composés ?. On suppose


dans cette section que K est un corps de caractéristique nulle ou supérieure à d2 .
Théorème 4. Soient P et Q deux polynômes unitaires de K[X], de degré d.
Alors, les polynômes
Y  Y
P ⊕Q= X − (α + β) , P ⊗Q= (X − αβ)
P (α)=0 P (α)=0
Q(β)=0 Q(β)=0

peuvent être calculés en O M(d2 ) opérations.

Comme ces polynômes sont de degré d2 , 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 des résultants
bivariés. Les résultants et leur calcul sont présentés au Chapitre 7. Dans le cas
bivarié général, il n’existe pas (encore ?) d’algorithme quasi-optimal 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.

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


du produit :
X X X
αi βi = (αβ)i .
α β α,β

Il suffit donc de multiplier terme à terme les séries XP 0 /P et XQ0 /Q pour obtenir la
série génératrice des sommes de Newton de P ⊗ Q. Si l’on a calculé d2 termes de ces
séries, le résultant, dont le degré est d2 , est alors reconstruit par une exponentielle
en O(M(d2 )) opérations.
68 4. CALCULS RAPIDES SUR LES SÉRIES

Diviser le i-ième coefficient de XP 0 /P par i!, pour tout i ≥ 0, produit la série


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

En effectuant la même opération sur Q et en multipliant les séries, on obtient donc


X X X
exp(α/X) exp(β/X) = exp((α + β)/X).
P (α)=0 Q(β)=0 P (α)=0
Q(β)=0

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 est borné par O(M(d2 )). 
3.7. Inverse compositionnel. Étant donnée une série F avec F (0) = 0 et
F 0 (0) inversible, il s’agit ici de calculer une série F (−1) telle que F (F (−1) (X)) =
F (−1) (F (X)) = X.
3.7.1. Les N premiers termes. Les conditions d’application de la méthode de
Newton (Théorème 1) sont vérifiées pour la fonction
Φ(X, Y ) = F (Y ) − X.
L’opérateur de Newton correspondant est donc
F (G) − X
N (G) = G − .
F 0 (G)
La dérivation de F (G) = X donne F 0 (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 4).
Exercice 6. La k-ième racine positive de l’équation x = tan x admet un
développement asymptotique de la forme
π a1 a2
rk = (2k + 1) + + 2 + ....
2 k k
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 calcu-
ler f1 , . . . , fN , pour N grand.
3.7.2. Exemple. La série génératrice T ∈ Q[[X]] des arbres généraux étiquetés
(appelés aussi arbres de Cayley) vérifie l’équation
T = X exp(T ).
Ses 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 calcu-
lés lorsque N tend vers l’infini (c’est-à-dire l’asymptotique du nombre d’arbres de
taille N ), une méthode utilisée en analyse d’algorithmes passe par le calcul du dé-
veloppement
√ √ de T au voisinage du point singulier exp(−1), 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
2 − 2y exp(1 − y) = u,
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.
4. LA COMPOSITION DES SÉRIES 69

Remarque. La formule d’inversion de Lagrange donne immédiatement une


jolie expression pour les coefficients de T solution de T = X exp(T ) de l’exemple
précédent. L’asymptotique mentionnée plus haut donne alors la formule de Stirling.
3.7.3. Le N -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( N log N M(N )) (voir la sec-
tion 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 la formule d’inversion de Lagrange :
1 1
[X N ]F (−1) (X) = [X N −1 ] N
,
N (F (X)/X)
où la notation [X k ]F représente le coefficient de X k 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.
3.8. Systèmes. Le théorème 1 s’étend à des systèmes d’équations.
Théorème 5. 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(X n ) (n ≥ 1), alors
   
F1  −1 Φ1 (X, F1 , . . . , Fk )
∂Φ
N (F ) =  ...  − (X, F1 , . . . , Fk ) · ..
   
∂Y . 
Fk Φk (X, F1 , . . . , Fk )
vérifie S − N (F ) = O(X 2n ).
La preuve est la même que celle du théorème 1, la formule de Taylor pour les
fonctions de plusieurs variables s’exprimant alors à l’aide de la matrice jacobienne.
Lemme 5. L’algorithme 3 fonctionne sans changement pour un système Φ sa-
tisfaisant aux hypothèses du théorème 5.
Démonstration. La preuve est la même, en observant que l’étape 2 est écrite
de telle sorte que le lemme 3 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 22.
Corollaire 1 (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. L’étape 2 demande des produits de matrices k × k de po-
lynômes de degré dN/2e, et l’étape 3 demande un produit matrice-vecteur en pré-
cision N . La complexité de l’application 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. 

4. La composition des séries


Si F (X) et G(X) sont des séries, avec G(0) = 0, il s’agit de calculer efficacement
la série F (G(X)). À la différence des algorithmes vus dans les sections précédentes,
il s’avère que les algorithmes connus n’atteignent pas une complexité quasi-optimale
(c’est-à-dire linéaire en N , à des facteurs logarithmiques près).
70 4. CALCULS RAPIDES SUR LES SÉRIES

4.1. MéthodeP naïve. La composition peut être calculée par la méthode de


Horner. Si F (X) = i≥0 fi X i + O(X N ), le calcul utilise alors
F (G(X)) = f0 + G(f1 + G(f2 + . . . )) + O(X N ).
Exercice 7. Montrer que la complexité du calcul par cette formule est
O(N M(N )).
4.2. Pas de bébés—pas √ de géants. Une√technique dite
√ pas de bébés, pas
de géants réduit ce coût à O( N (M(N ) + MM( N ))) = O( N (M(N ) + N θ/2 )),
où θ est un exposant faisable pour la complexité du produit de matrices, présenté
au Chapitre 3. La série F est d’abord écrite
F (X) = F0 (X) + X k F1 (X) + · · · + X kdN/ke FdN/ke (X) + O(X N ),
où les polynômes Fi en nombre 1+dN/ke ont degré au plus k−1. Ensuite, on calcule
les puissances G2 , . . . , Gk de G en kM(N ) opérations. Soient fi,j les coefficients
des Fi et gi,j ceux des Gi . Le développement
−1 k−1
N
!
X X
Fi (G) = fi,` g`,j X j + O(X N )
j=0 `=0

montre que les coefficients des Fi (G) sont les coefficients du produit de la ma-
trice (fi,j ) de taille (dN/ke+1)×k par la matrice (gi,j ) de taille k×N . En découpant
chacune de ces matrices en blocs de taille k × k — la première devient un vecteur
colonne d’environ N/k 2 blocs, la seconde un vecteur ligne d’environ N/k blocs —,
ce produit est effectué en au plus O(N 2 k θ−3 ) opérations. Ensuite, il ne reste plus
qu’à effectuer dN/ke produits à précision N suivis d’autant d’additions √ pour un
coût total de O(N M(N )/k). Le coût total est minimisé par le choix k = b N c qui
mène à la complexité annoncée.
4.3. L’algorithme de Brent & Kung. Bien qu’il n’y ait pas d’algorithme
permettant d’abaisser la complexité de la composition au même ordre que M(N ),
il est possible de faire sensiblement mieux que la méthode de 4.2, en évitant la
multiplication matricielle, grâce à un algorithme sophistiqué dû à Brent & Kung,
détaillé dans cette section.

Théorème 6. Si 2, 3, . . . , d N√log N e sont inversibles dans l’anneau A, la série
F (G(X))
√ peut être calculée en O( N log N M(N )) opérations arithmétiques, ou en
O( N M(N )) opérations arithmétiques si log M(N )/ log N → γ > 1.
L’idée de départ de l’algorithme permettant d’aboutir à cette complexité est
d’utiliser la formule de développement de Taylor, sous la forme
X 2m G22
(5) F (G1 + X m G2 ) = F (G1 ) + F 0 (G1 )X m G2 + F 00 (G1 ) + ··· ,
2!
où G1 est un polynôme de degré inférieur à m ; le choix de m est ajusté plus loin
pour minimiser la complexité.
Le premier gain de complexité par rapport à la méthode naïve provient de
l’observation suivante.
Lemme 6. Étant données les séries G et F ◦ G, avec G0 (0) inversible, la série
0
F ◦ G peut être calculée en O(M(N )) opérations arithmétiques.
Démonstration. La dérivation de séries a une complexité linéaire, et la divi-
sion est en O(M(N )). Le résultat provient alors de la formule de dérivation d’une
composée (déjà utilisée en page 68) :
(F ◦ G)0
F0 ◦ G = .
G0
4. LA COMPOSITION DES SÉRIES 71

L’hypothèse sur G0 (0) permet de garantir l’inversion de la série du dénominateur.




L’utilisation répétée de cette idée dans la formule (5) mène à une complexité
N
C(F (G1 )) + O(M(N )) opérations
m
pour l’ensemble de la composition, où C(F (G1 )) représente la complexité du calcul
de la première composition avec un polynôme, donnée par le lemme suivant.
Lemme 7. Soient F et G deux polynômes de degrés k et m, avec G(0) =
0. Le calcul des N premiers coefficients de la série F ◦ G peut être effectué en
O(km log N M(N )/N ) opérations arithmétiques, ou en O(kmM(N )/N ) opérations
si log M(N )/ log N → γ > 1.
Démonstration. [du théorème à l’aide de ce lemme] Ce lemme fournit l’esti-
mation C(F (G1 )) = O(mM(N ) log N ). La complexité totale est donc bornée par
 
N N
O(mM(N ) log N ) + O(M(N )) = O M(N )(m log N + ) .
m m
p
Cette dernière somme est minimisée par le choix de m = N/ log N qui donne le
résultat du théorème.
Le cas sans le facteur log N est laissé en exercice. 

Démonstration. [du lemme] Sans perte de généralité, on peut supposer que le


degré k de F est une puissance de 2. Sinon, il suffit de considérer que les coefficients
de F pour les degrés allant de k + 1 jusqu’à la puissance de 2 immédiatement
supérieure sont nuls, et la perte de complexité est d’au plus un facteur 2, absorbé
dans la constante du O(·).
L’idée est d’effectuer ce calcul par « diviser pour régner » en récrivant le poly-
nôme F sous la forme
F = F1 + X k/2 F2 ,
où F1 et F2 sont deux polynômes de degré au plus k/2. Dans la composition

F (G) = F1 (G) + Gk/2 F2 (G),


les deux polynômes du second sommant ont degré au plus km/2. La complexité Ckm
découlant de l’utilisation de cette formule vérifie donc
Ckm ≤ 2Ck/2
m
+ 2M(min(N, km/2)) + O(N ).
C’est dans cette prise de minimum que réside toute la subtilité : tant que k est
grand, les calculs sont tronqués à l’ordre N , et dès que k devient suffisamment
petit, on exploite l’arithmétique polynomiale. Il vient donc
Ckm ≤2M(N ) + 4M(N ) + · · · + 2`−1 M(N )
     
` km km
+2 M + 2M + ··· ,
2` 2`+1
où ` est déterminé par
km km
< N ≤ `−1 .
2` 2
Cette valeur de `, combinée à l’utilisation du théorème « diviser pour régner »
conclut la preuve du lemme. 
72 4. CALCULS RAPIDES SUR LES SÉRIES

Exercices
Exercice 8 (Exponentielle de série). Soit s une série de terme constant nul et
n = 2p . On étudie l’itération
k−1
zk = zk−1 + zk−1 (1 − yk−1 zk−1 ) mod X 2 ,
Z
k
0
yk = yk−1 − yk−1 zk (yk−1 − s0 yk−1 ) mod X 2

avec y0 = 1 = z0 .
1. Montrer que yp − exp(s) = O(X n ) ;
2. Estimer la complexité du calcul des n premiers coefficients de la série exp(s)
par cette itération ;
3. (Plus difficile) interpréter cette itération comme l’itération de Newton as-
sociée à l’opérateur Y 7→ Y 0 − s0 Y .
Exercice 9 (Composition avec l’exponentielle). Soit f (x) ∈ Q[[X]] une série
à coefficients rationnels. Le but de cet exercice est de montrer que les N premiers
coefficients de la série S(X) = f (eX − 1) peuvent être calculés en O M(N ) log N
opérations arithmétiques dans Q.
1. Montrer que S(X) − A(eX − 1) = O(X N ), où A(X) est l’unique polynôme
de degré inférieur à N tel que f (X) = A(X) + O(X N ).
2. On pose B(X) = A(X − 1) ; donner un algorithme pour
 calculer les coeffi-
cients de B à partir de ceux de A en O M(N ) log N opérations dans Q.
3. La transformée de Laplace formelle L est définie sur Q[[X]] comme l’appli-
cation Q-linéaire telle que L(X k ) = k! X k , k ∈ N. Si B(X) = b0 + b1 X +
· · · + bN −1 X N −1 , montrer que
−1
 NX
X bi
L B(e ) = .
i=0
1 − iX

4. Donner un algorithme pour calculer les N premiers


 coefficients de B(eX )
à partir de ceux de B(X) en O M(N ) log N opérations dans Q.
 les N premiers coefficients de S
5. Donner finalement un algorithme calculant
à partir de ceux de f en O M(N ) log N opérations dans Q.
Exercice 10 (Composition de séries avec arcsinus). Soit K un corps de carac-
téristique nulle, et soit F ∈ K[X] une série formelle de terme constant nul. Écrire
un algorithme à base d’itérations de Newton permettant de calculer les N pre-
miers termes de la série composée (arcsin ◦F ), à partir des N premiers termes de
la série F , en O(M(N )) opérations arithmétiques dans K.

Notes
Lorsque Newton décrit sa méthode de résolution des équations [16], il traite
non seulement de la recherche de solutions numériques, mais aussi de la recherche
de solutions séries, et va jusqu’à montrer l’usage de sa méthode pour les solutions
de polynômes à coefficients des séries (la première partie de notre théorème 2, sans
la complexité). La formule d’inversion évoquée en page 69 a été découverte par
Lagrange en 1768 [14].
L’utilisation de l’itération de Newton en informatique est très ancienne. L’in-
version de matrice de la Section 2.7 remonte à Schulz [20] pour des matrices réelles.
L’importance de la méthode de Newton pour le calcul rapide avec des séries for-
melles a été soulignée par Lipson [15] : « In a symbolic mathematics system setting,
we feel that Newton’s method offers a unified and easily implemented algorithm for
Bibliographie 73

solving a wide variety of power series manipulation problems that can be cast into
a root-finding mold. Our experience attests to the practicality of Newton’s method.
We feel that it is a great algebraic algorithm. »
Du point de vue de la complexité, Sieveking [21] a donné l’algorithme d’in-
version rapide de séries (notre Figure 2), et Kung [13] a observé qu’il s’agissait
d’une itération de Newton et il a amélioré la constante dans la complexité. En-
suite, Brent [7] a montré comment l’exponentielle et le logarithme s’obtiennent
également en O(M(N )) opérations. Les algorithmes de la Section 3.5 sont dus à
Schönhage [19] ; l’application aux sommes et produits composés en Section 3.6 est
beaucoup plus récente et se trouve dans [4]. La méthode de Newton permet égale-
ment la résolution de systèmes linéaires à coefficients polynomiaux (Chapitre 14) et
la résolution d’équations ou de systèmes différentiels (Chapitre 15). L’idée d’incor-
porer le dividende dans la dernière itération de Newton, afin de gagner un facteur
constant pour la division de séries (Section 2.4), est due à [11].
Les algorithmes non triviaux de composition décrits en Section 4 sont dus à
Brent et Kung [6]. L’idée de l’algorithme pas de bébés, pas de géants en Section 4.2
remonte à [17]. La composition F ◦G mod X N peut s’effectuer en complexité quasi-
optimale O(M(N ) log N ) si G est un polynôme [6], ou plus généralement lorsque G
est une série algébrique [22]. Des compositions avec d’autres fonctions particulières
peuvent aussi être calculées en O(M(N ) log N ), ou parfois O(M(N )), voir [5]. Savoir
si cela est encore possible pour des séries quelconques est un grand problème ouvert.
Dans le cas où la caractéristique p de A est finie, Bernstein [2] a montré qu’il
est possible de descendre la composition à une complexité quasi-optimale en la pré-
cision N des séries, pour le prix d’une dépendence linéaire en p. Cet algorithme est
intéressant lorsque la caractéristique p est petite. Une avancée récente importante
est due à Kedlaya et Umans [12], qui ont donné le premier algorithme de complexité
binaire quasi-linéaire à la fois en N et en log(p), pour le calcul de F ◦ G mod X N ,
lorsque F et G sont des séries à coefficients dans le corps fini Fp .
Ritzmann [18] a montré que la composition des séries entières peut s’effectuer
en complexité binaire quasi-optimale : si F, G ∈ Z[X] ont des coefficients bornés par
` en module, alors il est possible de calculer F ◦G mod X N en O(MZ (N 2 log N log `))
opérations binaires. L’article [18] montre également que le problème de la compo-
sition de séries à coefficients dans un corps K est d’une difficulté équivalente à celui
du calcul du N -ième coefficient de F ◦ G. L’article [6] montre que le problème de
l’inverse compositionnel leur est également équivalent.
En pratique, les constantes cachées dans les O(·) jouent un grand rôle, et né-
cessitent généralement l’implantation à la fois des algorithmes asymptotiquement
meilleurs et des algorithmes plus classiques, souvent plus efficaces en petite taille.
Dans le modèle de multiplication polynomiale par FFT, les meilleurs constantes de-
vant M(N ) sont dues à Harvey [9, 10] : 13 4
9 pour l’inverse, 3 pour la racine carrée,
13
6 pour l’exponentielle. Les articles de synthèse [1, 3] décrivent diverses techniques
utilisées pour éliminer certains calculs redondants dans la méthode de Newton.
L’exercice 8 est inspiré par [8], et l’exercice 9 est tiré de [5].

Bibliographie
[1] Bernstein (D. J.). – Removing redundancy in high-precision Newton iteration. – Preprint,
available from http://cr.yp.to/fastnewton.html#fastnewton-paper.
[2] Bernstein (Daniel J.). – Composing power series over a finite ring in essentially linear time.
‌ , , pp. 339–341.
Journal of Symbolic Computation, vol. 26, n3
[3] Bernstein (Daniel J.). – Fast multiplication and its applications. In Algorithmic number
theory : lattices, number fields, curves and cryptography, pp. 325–384. – Cambridge Univ.
Press, .
74 4. CALCULS RAPIDES SUR LES SÉRIES

[4] Bostan (Alin), Flajolet (Philippe), Salvy (Bruno), and Schost (Éric). – Fast computation of
special resultants. Journal of Symbolic Computation, vol. 41, n‌1, January , pp. 1–29.
[5] Bostan (Alin), Salvy (Bruno), and Schost (Éric). – Power series composition and change of
basis. In ISSAC’08, pp. 269–276. – ACM, New York, .
[6] Brent (R. P.) and Kung (H. T.). – Fast algorithms for manipulating formal power series.
‌ , , pp. 581–595.
Journal of the ACM, vol. 25, n4
[7] Brent (Richard P.). – Multiple-precision zero-finding methods and the complexity of elemen-
tary function evaluation. In Analytic computational complexity, pp. 151–176. – Academic
Press, New York, . Proceedings of a Symposium held at Carnegie-Mellon University,
Pittsburgh, Pa., 1975.
[8] Hanrot (Guillaume) and Zimmermann (Paul). – Newton iteration revisited. – Available at
http://www.loria.fr/~zimmerma/papers.
[9] Harvey (David). – Faster algorithms for the square root and reciprocal of power series. Ma-
thematics of Computation. – To appear. Available at http://arxiv.org/abs/0910.1926/.
[10] Harvey (David). – Faster exponentials of power series. – Preprint, available from http://
arxiv.org/abs/0911.3110.
[11] Karp (A. H.) and Markstein (P.). – High-precision division and square root. ACM Transac-
‌ , December , pp. 561–589.
tions on Mathematical Software, vol. 23, n4
[12] Kedlaya (Kiran S.) and Umans (Christopher). – Fast modular composition in any characte-
ristic. In FOCS ’08 : Proceedings of the 2008 49th Annual IEEE Symposium on Foundations
of Computer Science. pp. 146–155. – IEEE Computer Society, Washington, DC, USA, .
[13] Kung (H. T.). – On computing reciprocals of power series. Numerische Mathematik, vol. 22,
, pp. 341–348.
[14] Lagrange (Joseph-Louis). – Nouvelle méthode pour résoudre les équations littérales par le
moyen des séries. Mémoires de l’Académie Royale des Sciences et Belles-Lettres de Berlin,
vol. 24, , pp. 251–326.
[15] Lipson (J. D.). – Newton’s Method : A Great Algebraic Algorithm. In Proceedings ACM
Symposium of Symbolic and Algebraic Computation. pp. 260–270. – ACM Press, .
[16] Newton (Isaac). – La méthode des fluxions, et les suites infinies. – de Bure aîné, .
Traduction française par G. Buffon du texte de 1671 de Newton. Disponible en ligne à http:
//gallica.bnf.fr.
[17] Paterson (M. S.) and Stockmeyer (L. J.). – On the number of nonscalar multiplications
‌ , , pp. 60–66.
necessary to evaluate polynomials. SIAM J. Comput., vol. 2, n1
[18] Ritzmann (P.). – A fast numerical algorithm for the composition of power series with complex
coefficients. Theoretical Computer Science, vol. 44, , pp. 1–16.
[19] Schönhage (A.). – The fundamental theorem of algebra in terms of computational com-
plexity. – Technical report, Univ. Tübingen, . 73 pages.
[20] Schulz (G.). – Iterative Berechnung der reziproken Matrix. Zeitschrift für angewandte Ma-
thematik und Physik, vol. 13, , pp. 57–59.
[21] Sieveking (M.). – An algorithm for division of powerseries. Computing, vol. 10, , pp. 153–
156.
[22] van der Hoeven (Joris). – Relax, but don’t be too lazy. Journal of Symbolic Computation,
‌ , , pp. 479–542.
vol. 34, n6
CHAPITRE 5

Division euclidienne, fractions rationnelles et


récurrences linéaires à coefficients constants

Résumé
La multiplication et l’inversion rapide de séries permettent le calcul ef-
ficace de la division euclidienne de polynômes et du développement en
série des fractions rationnelles. Ils mènent en particulier au calcul rapide
d’un ou de plusieurs termes d’une suite récurrente linéaire à coefficients
constants.

1. Introduction
Les suites récurrentes linéaires à coefficients constants sont extrêmement pré-
sentes dans la nature. On estime ainsi qu’environ 12% des suites de la littérature 1
sont de ce type. L’exemple le plus célèbre est celui de la suite de Fibonacci, définie
par F0 = 0, F1 = 1 et
(1) Fn+2 = Fn+1 + Fn , n ≥ 0.
L’utilisation directe de cette récurrence permet de calculer les N premiers éléments
de la suite de manière optimale du point de vue de la complexité. En revanche,
pour le calcul d’un seul terme d’indice élevé, le passage par le calcul de tous ses
prédécesseurs est inutilement coûteux. Une première idée de ce chapitre consiste
à utiliser une version matricielle des récurrences pour aboutir à une complexité
quasi-optimale pour cette question.
La récurrence (1) n’est que d’ordre 2. Pour des suites définies par des récur-
rences d’ordre d plus grand, il faut aussi chercher à limiter le coût des calculs
vis-à-vis de d. Simplement dérouler la récurrence n’est plus alors la meilleure façon
de calculer les N premiers termes de la suite. Une autre idée importante de ce
chapitre est d’exploiter le lien entre les récurrences linéaires à coefficients constants
et les fractions rationnelles, qui mène à une complexité quasi-optimale vis-à-vis à
la fois de N et d pour cette question, ainsi que pour celle du calcul du N premier
terme, et aussi pour le développement en série des fractions rationnelles.
Les applications algorithmiques de ces idées sont nombreuses. Certaines d’entre
elles sont présentées dans des exercices de ce chapitre, comme le calcul rapide d’un
polynôme sur 1, 2, . . . , N , une partie du calcul du polynôme minimal d’une matrice,
et des tests probabilistes de primalité d’entiers.

2. Division de polynômes
Étant donnés deux polynômes F et G de A[X], avec G unitaire, à coefficients
dans un anneau A, il existe d’uniques polynômes Q et R, quotient et reste de la
division euclidienne de F par G, tels que :
F = QG + R avec deg R < deg G.

1. Recensées très largement par l’encyclopédie en ligne des suites d’entiers


http://www.research.att.com/~njas/sequences/Seis.html.

75
76 5. DIVISION EUCLIDIENNE ET RÉCURRENCES LINÉAIRES

Calculer rapidement le quotient Q et le reste R est d’importance vitale dans


toute la suite du cours. Outre l’application aux suites récurrentes qui sera détaillée
plus loin, les algorithmes de division sont utilisés au Chapitre 6 pour l’évaluation
multipoint et l’interpolation et au Chapitre 7 pour le calcul de pgcd. À leur tour,
ces deux algorithmes sont centraux dans nombre d’applications.
2.1. Méthode naïve. L’algorithme naïf pour calculer Q et R consiste à poser
la division. Pour cela, les termes dominants sont d’abord isolés :
F = aX m + TF , G = X n + TG , avec deg TF < m, deg TG < n.
Si m < n, il n’y a rien à faire. Sinon, la boucle élémentaire de la division de F par
G consiste à « tuer » le terme de plus haut degré de F en effectuant la soustraction
F − aX δ G = (aX m + TF ) − aX δ+n + aX δ TG = TF − aX δ TG ,


où δ = m − n. Le polynôme obtenu est congru à F modulo G, mais de degré stricte-


ment inférieur à m. Il n’y a plus qu’à itérer ce procédé jusqu’à obtenir un polynôme
de degré strictement inférieur à n, et à garder trace des quotients successifs.
La complexité de cet algorithme est facile à estimer. La boucle élémentaire
présentée ci-dessus s’effectue en O(n) opérations de type (+, −, ×) ; dans le pire des
cas, l’algorithme effectue (m − n + 1) passages dans cette boucle, de sorte que la
complexité de la division de F par G est de O(n(m − n)) opérations. Le pire des
cas est atteint pour m = 2n. C’est donc un algorithme quadratique (mais un bon
algorithme quadratique : la constante dans le O(·) est en fait petite, c’est 2). Le
même genre d’estimation s’obtient pour la division euclidienne classique des entiers.
2.2. Algorithme rapide. Un bien meilleur résultat peut être obtenu à base
d’itération de Newton.
L’idée principale de l’algorithme part de la réécriture de F = QG + R en
F R
=Q+ .
G G
Si on pense que A = R, on voit donc que le développement asymptotique de F/G
à l’infini a ses premiers termes donnés par Q, puisque R/G tend vers 0 à l’infini (à
cause des contraintes de degré sur R et G). Ceci suggère que l’on va obtenir Q par
calcul du développement de Taylor de F/G au voisinage de l’infini.
Concrètement, il suffit de ramener d’abord l’infini en zéro (par le changement
de variable X = 1/T ), pour réduire le calcul à la division de séries formelles. Plus
précisément, le point de départ est l’identité
T m F (1/T ) T m R(1/T )
n
= T m−n Q(1/T ) + n .
T G(1/T ) T G(1/T )
Dans cette identité les numérateurs et dénominateurs des fractions sont des poly-
nômes, et le polynôme T n G(1/T ) a 1 pour terme constant. En outre, la valuation
du second sommant du membre droit est supérieure à m − n. En découle donc
l’algorithme suivant :
1. Calculer T m F (1/T ) et T n G(1/T ) (aucune opération arithmétique n’est
nécessaire, il suffit d’inverser l’ordre des coefficients) ;
2. calculer le quotient (T m F (1/T ))/(T n G(1/T )) mod T m−n+1 par une inver-
sion de série formelle suivie d’un produit ;
3. en déduire Q en inversant l’ordre des coefficients ;
4. en déduire R, qui est donné par R = F − QG mod X n .
Théorème 1. Soient G un polynôme unitaire de A[X] de degré n et F ∈ A[X]
de degré m ≥ n. Alors on peut calculer le quotient Q et le reste R de la division
euclidienne de F par G en 5M(m − n) + M(n) + O(m) opérations (+, −, ×) de A.
3. SUITES RÉCURRENTES LINÉAIRES À COEFFICIENTS CONSTANTS 77

Ainsi, la division euclidienne ne coûte pas plus cher que la multiplication (à


une constante près). En particulier, si on utilise une multiplication à base de FFT,
le coût de la division est linéaire en le degré, à des facteurs logarithmiques près.
Démonstration. La complexité s’obtient en suivant les étapes de l’algo-
rithme. D’après la Proposition 2 du Chapitre 4 et la remarque qui la suit, l’inverse
du dénominateur à l’étape 2 s’obtient en
4M(m − n) + O(m − n)
opérations dans A , puis une multiplication supplémentaire donne Q. Pour retrou-
ver R, le dernier produit est effectué modulo X n , c’est-à-dire pour un coût de M(n).
Toutes les additions sont prises en compte dans le terme O(m). 
Remarque. Si Q a un degré beaucoup plus petit que G, on peut accélérer
le calcul de QG, en découpant G en « tranches » de taille m − n ; de la sorte, le
n
dernier produit peut se faire en m−n M(m − n) opérations. Enfin, si de nombreuses
réductions sont à faire modulo le même polynôme G, il est évidemment recommandé
de stocker l’inverse du réciproque de T n G(1/T ) de G.
2.3. Le cas des entiers. Comme pour la multiplication, il est possible de
poser le problème dans Z comme dans un anneau de polynômes. C’est ce dernier
cas qui est le plus simple à étudier, puisqu’il n’y a pas à y gérer de retenue. On
obtient cependant un résultat analogue sur les entiers.
Théorème 2. Soit MZ une fonction de multiplication pour Z, et f et g deux
entiers positifs avec g ≤ f ≤ 2n . Soient q et r les quotient et reste de la division
euclidienne de f par g :
f = qg + r avec 0 ≤ r < g.
On peut calculer q et r en O(MZ (n)) opérations binaires.
2.4. Application aux calculs modulaires. Une application importante de
la division euclidienne rapide est le calcul efficace dans des structures algébriques
de type « quotient », par exemple dans n’importe quel corps fini.
Corollaire 1. Si A est un anneau et si P est un polynôme unitaire de degré n
de A[X], alors dans A[X]/(P ), l’addition et la multiplication par un élément de A
ont une complexité linéaire en n, la multiplication a une complexité en O(M(n)).
Démonstration. Il s’agit de calculer modulo P . L’addition et la multiplica-
tion par un scalaire s’effectuent terme à terme, ainsi leur complexité est linéaire en
le degré n de P . Ensuite, pour multiplier deux éléments A + (P ) et B + (P ) de
A[X]/(P ), on commence par multiplier A et B dans A[X], puis on réduit le résultat
modulo P . La complexité découle donc de ce qui précède. 
La question du calcul dans Z/nZ est légèrement plus délicate que son analogue
dans A[X], à cause des retenues. Malgré tout, les résultats s’étendent.

3. Suites récurrentes linéaires à coefficients constants


Definition 1. Une suite (an )n≥0 d’éléments de l’anneau A est appelée suite
récurrente linéaire à coefficients constants (srlcc) d’ordre d si elle satisfait une ré-
currence de la forme
an+d = pd−1 an+d−1 + · · · + p0 an , n ≥ 0,
où les pi sont des éléments de A. Le polynôme P = X − pd−1 X d−1 − · · · − p0 de
d

A[X] est appelé polynôme caractéristique de la suite (an )n≥0 .


78 5. DIVISION EUCLIDIENNE ET RÉCURRENCES LINÉAIRES

Il faut noter que tout multiple d’un polynôme caractéristique est aussi carac-
téristique. Le pgcd de ces polynômes caractéristiques est appelé polynôme minimal
de la suite.

3.1. Exemples.
Exercice 1. Soit M une matrice de taille d × d à coefficients dans A, de
polynôme caractéristique χM (X) = det(XId − M ), soient u une matrice ligne et
v une matrice colonne. Montrer que la suite (uM n v)n≥0 est une suite récurrente
linéaire à coefficients constants admettant χM comme polynôme caractéristique.
Exercice 2. Soit a1 , . . . , ar des entiers strictement positifs. Soit An et Bn
le nombre de r-uplets non-ordonnés, resp. ordonnés, (x1 , . . . , xr ) ∈ Nr , solutions
de l’équation a1 x1 + · · · + ar xr = n. Montrer que les suites (An ) et (Bn ) sont
récurrentes linéaires à coefficients constants, admettant (X a1 − 1) · · · (X ar − 1) et
X a1 + · · · + X ar − 1 comme polynômes caractéristiques.
Exercice 3. Si P ∈ A[X] est de degré d, alors la suite (P (n))n≥0 est une srlcc
de polynôme caractéristique (X − 1)d+1 .
3.2. Méthode naïve. L’approche naïve pour le calcul des N premiers termes
d’une srlcc consiste tout simplement à dérouler la récurrence et requiert O(dN )
opérations dans A.

3.3. Exponentiation binaire. Pour calculer uniquement le N e terme de la


suite, une alternative à cette méthode naïve est basée sur l’exponentiation binaire
de la matrice compagnon associée à la suite. Par exemple, la récurrence (1) se récrit
matriciellement
      
FN 0 1 FN −1 F
= = CN 0 , N ≥ 1.
FN +1 1 1 FN F1
| {z }
C

La puissance de la matrice constante C se calcule alors récursivement par


(
N (C N/2 )2 , si N est pair,
C = N −1
C · (C 2 )2 , sinon.
On en déduit que le calcul de FN peut être effectué sans calculer les précédents en
O(log N ) produits de matrices 2 × 2, soit O(log N ) opérations dans A.
Cette idée s’étend facilement à des récurrences d’ordre arbitraire.
Exercice 4. Montrer que le N -ième terme de toute récurrence linéaire d’ordre
d à coefficients constants peut se calculer en O(d3 log N ) opérations dans A.
L’utilisation d’une multiplication matricielle rapide abaisse cette complexité
à O(MM(d) log N ) = O(dθ log N ) opérations dans A, où 2 ≤ θ < 2, 38 (voir le
Chapitre 3). La dépendance en d reste cependant plus que quadratique. La section
suivante présente une meilleure méthode, de complexité quasi-linéaire en d.

3.4. Exponentiation modulaire. La complexité arithmétique de l’algo-


rithme de la section précédente (Exercice 4) est quasi-optimale par rapport à l’in-
dice N , mais n’est pas très bonne par rapport à l’ordre d de la récurrence.
Une méthode plus efficace est obtenue en exploitant mieux la structure du
problème. En effet, les matrices multipliées ne sont pas quelconques, mais sont des
puissances d’une matrice compagnon. Cette structure peut être exploitée grâce à
l’observation suivante.
3. SUITES RÉCURRENTES LINÉAIRES À COEFFICIENTS CONSTANTS 79

Exponentiation modulaire
Entrée : (p0 , . . . , pd−1 ) les coefficients d’une récurrence linéaire ;
(a0 , . . . , ad−1 ) des conditions initiales ; un entier N .
Sortie : Le terme aN de la suite définie par
an+d = pd−1 an+d−1 + · · · + p0 an .
1. Poser P = X d − pd−1 X d−1 − · · · − p0 et x = X mod P ;
2. Calculer récursivement Q = xN = q0 + q1 x + · · · + qd−1 xd−1 par
(
(xk/2 )2 , si k est pair,
xk = k−1
x · (x 2 )2 , sinon,
3. Renvoyer q0 a0 + · · · + qd−1 ad−1 .

Figure 1. Calcul du N e terme d’une slrcc

Lemme 1. Soit (an )n≥0 une suite récurrente linéaire à coefficients constants
de polynôme caractéristique P (X). Soit B = A[X]/(P ) et x la classe de X dans B.
Alors la matrice compagnon C de P est à la fois
1. telle que [an+1 , . . . , an+d ] = [an , . . . , an+d−1 ] · C pour tout n ≥ 0 ;
2. matrice de l’application A-linéaire de multiplication par x dans B dans la
base canonique {1, x, . . . , xd−1 }.
Démonstration. Il suffit d’écrire la matrice pour le voir. Si P = X d −
pd−1 X d−1 − · · · − p0 , la matrice C vaut par définition
 
0 0 ... 0 p0
1 0 . . . 0 p1 
 
0 1 . . . 0 p2 
C= .
 .. .. .. .. .. 
. . . . . 
0 0 ... 1 pd−1
La première propriété traduit la définition de la récurrence :
an+d = pd−1 an+d−1 + · · · + p0 an .
La seconde exprime que modulo P , X d = pd−1 X d−1 + · · · + p0 . 

Corollaire 2. Avec les mêmes notations, pour tous entiers positifs i et k,


ak+i = [ai , . . . , ad+i−1 ] · Vk ,
où Vk a pour coordonnées les coefficients du polynôme X k mod P.
Démonstration. Le vecteur Vk est la première colonne de C k , et d’après
le lemme précédent, cette matrice est celle de la multiplication par X k dans B.
Les coefficients de la première colonne sont donc les coordonnées de xk · 1 dans la
base {1, x, . . . , xd−1 }. 

Le résultat de complexité est alors le suivant.


Théorème 3. Soit (an ) une suite récurrente linéaire à coefficients constants,
donnée par une récurrence d’ordre d et des conditions initiales a0 , . . . , ad−1 .
Soit N ≥ d. Alors, le calcul du N -ième terme aN peut se faire en seulement
O(M(d) log N ) opérations dans A.
80 5. DIVISION EUCLIDIENNE ET RÉCURRENCES LINÉAIRES

Démonstration. L’algorithme est présenté en Figure 1. Chaque étape du


calcul récursif a lieu dans A[X]/(P ) et coûte O(M(d)) opérations dans A d’après
le Corollaire 1, le nombre d’étape est en log N ; la dernière multiplication ne prend
que O(d) opérations. La complexité est donc dominée par O(M(d) log N ). 

4. Développement de fractions rationnelles


Il est également possible de calculer efficacement les N premiers éléments d’une
suite récurrente linéaire à coefficients constants, ou de manière équivalente, le dé-
veloppement de Taylor des fractions rationnelles.
4.1. Séries rationnelles et suites récurrentes. Ces deux notions sont deux
aspects de la même question.
Lemme 2. Soit A(X) = n≥0 an X n la série génératrice de la suite (an )n≥0 .
P
Les assertions suivantes sont équivalentes :
(i) La suite (an ) est une srlcc, avec polynôme caractéristique P de degré d ;
(ii) A(X) = N0 /P̄ où P̄ = P (1/X)X d , pour un certain N0 ∈ K[X] avec
deg(N0 ) < d.
De plus, si P est le polynôme minimal de (an ), alors d = max{1+deg(N0 ), deg(P̄ )}
et pgcd(N0 , P̄ ) = 1.
Démonstration. Supposons que P s’écrive P = gd X d + · · · + g0 . Pour l’équi-
valence, on utilise uniquement le fait que le coefficient de X d+i dans P̄ · A(X) est
égal à gd ai+d + · · · + g0 ai et que P̄ (0) = gd 6= 0.
Soit maintenant P le polynôme minimal de (an ). On a deg(P̄ ) ≤ d avec égalité
si et seulement si g0 6= 0, c’est-à-dire X - P . Donc d ≥ max{1 + deg(N0 ), deg(P̄ )}.
Supposons par l’absurde que cette inégalité est stricte. Alors X | P et on a que
P/X est aussi polynôme caractéristique de (an ), ce qui contredit la minimalité de
P . Donc d = max{1 + deg(N0 ), deg(P̄ )}.
Soit enfin u := pgcd(N0 , P̄ ). Alors Pu := P/ū est un polynôme de degré d −
deg(u) qui est caractéristique de (an ), car P̄ /u = P¯u et (P̄ /u)·A(X) = N0 /u est un
polynôme de degré < d − deg(u). Par la minimalité, cela implique que deg(u) = 0,
donc N0 et P̄ sont bien premiers entre eux. 
Une conséquence immédiate de cette équivalence et du Théorème 3 est alors :
Corollaire 3. Soit F (X)/G(X) dans A(X) de degré au plus d, Pavec G(0)
inversible. Le N e coefficient du développement en série F (X)/G(X) = n≥0 an X n
peut être calculé en O(M(d) log N ) opérations.
4.2. Développement. On peut calculer le développement de Taylor à l’ordre
N d’une fraction rationnelle de degré d ≤ N en O(M(N )) opérations, en utilisant la
méthode de Newton, décrite au Chapitre 4. Mais O(M(N )) est en général beaucoup
plus gros que les O(dN ) opérations requises par la méthode naïve.
Le point de départ pour améliorer cette complexité est le Corollaire 2 qui montre
comment calculer un coefficient de la suite en fonction de coefficients distants. L’idée
est de calculer les coefficients par tranches de longueur d. Il ne suffit pas d’utiliser d
fois le corollaire, mais il faut encore une fois exploiter une structure supplémentaire,
qui provient ici de ce que les coefficients cherchés sont consécutifs. Cette idée est
résumée par le résultat suivant.
Lemme 3. Soit F (X)/G(X) dans A(X) avec G(0) inversible. Soit d le degré
de G et soit k ≥P0. Alors les coefficients ak , ak+1 , . . . , ak+d−1 du développement de
F (X)/G(X) = i ai X i sont les coefficients de X 2d−2 , . . . , X d , X d−1 du produit
a2d−2 + · · · + a0 X 2d−2 X k mod B(1/X)X d .
 
5. APPLICATIONS 81

Série Rationnelle
Entrée : Deux polynômes F (X), G(X) avec
deg G = d, G(0) 6= 0 et deg F < d, un entier N > d.
Sortie : Les coefficientsPa0 , . . . , aN du développement
F (X)/G(X) = n≥0 an X n .
1. Calculer les 2d − 1 premiers coefficients a0 , . . . , a2d−2 .
2. Poser y1 = X d−1 mod Ḡ(X) et y ? = X d mod Ḡ(X),
où Ḡ(X) = X d G(1/X).
3. Pour i = 2, . . . , dN/de,
(a) Calculer yi = y ? yi−1 mod Ḡ(X) ;

(b) Calculer P = (a2d−2 + · · · + a0 X 2d−2 yi ;
(c) Extraire aid−1 , aid , . . . , a(i+1)d−2 les coefficients de
X 2d−2 , . . . , X d , X d−1 dans P .
4. Renvoyer a0 , . . . , aN .

Figure 2. Développement en série d’une fraction rationnelle.

Démonstration. Le polynôme G(1/X)X d est polynôme caractéristique de la


suite des coefficients d’après le Lemme 2. Le coefficient de X k+i pour i = 0, . . . , d−1
dans le produit ci-dessus vaut exactement le produit scalaire [ai , . . . , ad+i−1 ] · Vk
d’après le Corollaire 2. 
L’application de cette idée mène finalement à une complexité améliorée pour le
calcul des N premiers coefficients.
Théorème 4. Soit F (X)/G(X) dans A(X) de degré au plus d, avec G(0)
inversible. Le développement de Taylor de F (X)/G(X) à précision N ≥ d peut se
calculer en O(N M(d)/d) opérations (+, −, ×) dans A.
Si l’anneau A permet la FFT, cette estimation de complexité devient O(N log d)
ce qui est quasi-optimal, simultanément vis-à-vis de N et de d.
Démonstration. L’algorithme est résumé en Figure 2. La première étape se
calcule par itération de Newton en O(M(d)) opérations dans A, ce qui représente
un coût négligeable sur l’ensemble. L’obtention de y ? est une récriture à partir
de Ḡ et ne demande pas d’opération. Ensuite, chaque itération utilise un produit
dans A[X]/(Ḡ) et un produit d’un polynôme de degré 2d − 2 par un polynôme de
degré d − 1. Au total, sont donc effectuées O(N M (d)/d) opérations dans A. 
La traduction de ce résultat au niveau des srlcc est immédiate.
Corollaire 4. Soit (an ) une suite récurrente linéaire à coefficients constants,
donnée par une récurrence d’ordre d, et des conditions initiales a0 , . . . , ad−1 . Soit
N ≥ d. Alors, les termes a0 , . . . , aN peuvent être calculés en O (N M(d)/d) opéra-
tions dans A.

5. Applications
5.1. Évaluation d’un polynôme sur une progression arithmétique.
Corollaire 5. Un polynôme P de degré d peut être évalué aux N + 1  d
points b, a + b, 2a + b, . . . , N a + b au prix total de O(N M(d)/d) opérations arithmé-
tiques.
82 5. DIVISION EUCLIDIENNE ET RÉCURRENCES LINÉAIRES

Démonstration. L’opérateur ∆a (P ) = P (X + a) − P (X) fait décroître le


degré des polynômes. Il s’ensuit que ∆d+1a P = 0 et donc P (an + b) est une suite
récurrente linéaire d’ordre d + 1 et de polynôme caractéristique (X − 1)d+1 . 

5.2. Propriétés de clôture. La classe des srlcc admet de nombreuses pro-


priétés de clôture : si a = (an )n et b = (bn )n sont deux srlcc de polynômes carac-
téristiques P et Q, alors

Pna + b = (an + bn )n et le produit de Cauchy a ?C b, de terme


1. la somme
général i=0 ai bn−i , sont deux srlcc de polynôme caractéristique P Q ;
2. le produit d’Hadamard a ?H b = (an bn )n est une srlcc de polynôme carac-
téristique égal au produit composé P ⊗ Q défini au Chapitre 4 ;
P n n 
3. la suite i=0 i ai bn−i n est une srlcc de polynôme caractéristique égal
à la somme composée P ⊕ Q définie au Chapitre 4.
Ils se calculent donc tous en bonne complexité (quasi-linéaire en la taille de la
sortie).
Exercice 5. Prouver les assertions précédentes.
5.3. Tests de primalité. Une application du calcul rapide d’un terme d’une
récurrence est une famille de tests probabilistes de primalité, de complexité po-
lynomiale. L’idée est de construire une suite récurrente (an ) d’entiers telle que la
primalité de n soit équivalente (ou presque équivalente) à an ≡ 0 mod n.
Un cas particulier important en est le test de Fermat (pour lequel an = an−1 −1)
implanté dans la plupart des systèmes de calcul formel. Bien qu’il soit probabiliste
(si n ne passe pas le test, n est composé, mais si n passe le test, alors il est pre-
mier seulement avec une grande probabilité), sa grande simplicité le rend souvent
préférable à d’autres algorithmes sophistiqués.
Exercice 6. Soit (an ) une srlcc d’ordre d. Montrer qu’il existe des constantes
entières c0 , c1 , . . . , cd telles que p divise c0 + c1 ap−1 + · · · + cd ap−d dès lors que p est
un nombre premier. De plus, pour tout premier p, les constantes ci mod p peuvent
être trouvées en O(M(d)) opérations arithmétiques dans A = Z/pZ.
Par exemple, si (Fn ) est la suite de Fibonacci, alors p divise Fp−2 + 3Fp−1 − 1
dès lors que p est premier et la réciproque est vraie avec une bonne probabilité.
L’exercice précédent fournit un test de primalité similaire au test de Fermat. D’après
le Théorème 3, son coût est de O(M(d) log p) opérations arithmétiques dans Z/pZ,
soit O(M(d)MZ (log p) log p) opérations binaires.
Exercice 7. Soient a et N deux entiers premiers entre eux. Montrer que N
est premier si et seulement si X N + a = (X + a)N mod N dans Z[X].
Exercice 8. Montrer que si N est premier, 0 ≤ a < N et P (X) ∈ Z[X],
alors X N + a = (X + a)N mod P (X) dans Z/N Z[X] ; si de plus, P (X) est de
degré r = O(logc N ), pour un c > 0, alors cette égalité peut être testée « en temps
polynomial », c’est-à-dire en un nombre d’opérations binaires polynomial en log N .

Notes
La suite de Fibonacci, introduite en 1202 par Leonardo Pisano (mieux connu
sous le pseudonyme de Fibonacci) dans un problème récréatif décrivant la croissance
d’une population de lapins jouit de riches propriétés algébriques, arithmétiques et
combinatoires. Par exemple : (a) Fn est le nombre de façons différentes de paver
un rectangle 2 × (n − 1) au moyen de dominos 2 × 1 ; (b) (Fn )n est une suite de
Bibliographie 83

divisibilité, i. e. Fn divise Fm dès lors que n divise m ; (c) si n est impair, alors
n−1
2
Y 1 
n−1 2 kπ
Fn = 2 + cos .
4 n
k=1

Exercice 9. Prouver les assertions (a)–(c).


Malgré sa simplicité, la suite de Fibonacci fait l’objet de nombreux problèmes
ouverts. Par exemple, on ignore s’il existe une infinité de nombres de Fibonacci
premiers. Les nombres de Fibonacci sont omniprésents en mathématiques et en
informatique 2 : ils interviennent aussi bien dans l’analyse de l’algorithme d’Euclide
pour le calcul du plus grand commun diviseur de deux entiers, que dans la solution
négative de Matiyasevich du dixième problème de Hilbert 3.
Historiquement, le premier algorithme rapide pour la division des polynômes
est dû à Moenck et Borodin [7]. Son point clé est que le quotient de la division eu-
clidienne de deux polynômes ne dépend que de leurs coefficients de poids fort. Cette
remarque est également à la base du calcul rapide de pgcd, étudié au Chapitre 7.
L’algorithme de la Section 2.2 est dû à Strassen [10]. Une alternative, de même
complexité asymptotique, à l’algorithme esquissé en Section 2.4 pour les calculs
modulaires a été proposée par Montgomery [8].
Calculer les N premiers termes d’une srlcc de polynôme caractéristique fixé
est une opération linéaire en les conditions initiales ; c’est le dual de l’opération
de division d’un polynôme de degré N par un polynôme fixé. Les conséquences
algorithmiques de ce fait seront décrites au Chapitre 12.
Le théorème de Skolem-Mahler affirme que pour toute srlcc (an ), l’ensemble de
ses zéros (les indices i pour lesquels ai = 0) est la réunion d’un ensemble fini et
d’un nombre fini de suites arithmétiques. Son étude est une question subtile. Par
exemple, déterminer si l’ensemble des zéros est vide est un problème NP-dur [2]. Les
srlcc sont étudiées dans [3, 11]. Le livre [4] constitue une référence très complète.
L’exercice 1 est le point clé de la méthode de Wiedemann pour la résolution de
systèmes linéaires creux, traitée au Chapitre 10.
Le calcul rapide d’un terme de la suite de Fibonacci par exponentiation binaire
de la matrice compagnon associée relève du folklore mathématique. Sa généralisa-
tion (exercice 4) est décrite dans [6], mais était probablement connue bien avant.
Les Théorèmes 4 et 4 sont tirés de [5] et [9]. Leur récente généralisation au cas
des matrices polynomiales est à la base du meilleur algorithme pour la résolution
de systèmes linéaires à coefficients polynomiaux, exposé au Chapitre 14.
Il n’existe pas de tests déterministes de primalité basés sur le test modulaire
d’un terme d’une récurrence à coefficients constants. Par contre, on peut caractériser
un nombre premier N à l’aide de suites qui vérifient des récurrences à coefficients
polynomiaux (comme la factorielle, via le test de Wilson (N − 1)! = −1 mod N ).
Malheureusement, cela ne fournit pas d’algorithme efficace. Le premier algorithme
déterministe qui prouve la primalité en temps polynomial est très récent [1]. Cet
article part de la caractérisation de type Fermat donnée dans l’exercice 8, et exhibe
une constante c et un polynôme P tels que la primalité de N est impliquée par la
vérification de l’identité de l’Exercice 8 pour seulement r1/2 log(N ) valeurs de a.

Bibliographie
[1] Agrawal (Manindra), Kayal (Neeraj), and Saxena (Nitin). – PRIMES is in P. Annals of
‌ , , pp. 781–793.
Mathematics. Second Series, vol. 160, n2

2. Le journal The Fibonacci Quarterly est entièrement dédié à l’étude de leurs propriétés.
3. Ce problème proposait de trouver un algorithme pour décider si un système d’équations
diophantiennes (polynômes à coefficients entiers) admet une solution en nombres entiers.
84 5. DIVISION EUCLIDIENNE ET RÉCURRENCES LINÉAIRES

[2] Blondel (Vincent D.) and Portier (Natacha). – The presence of a zero in an integer linear
recurrent sequence is NP-hard to decide. Linear Algebra and its Applications, vol. 351/352,
, pp. 91–98. – Fourth special issue on linear systems and control.
[3] Cerlienco (L.), Mignotte (M.), and Piras (F.). – Suites récurrentes linéaires. Propriétés algé-
briques et arithmétiques. L’Enseignement Mathématique, vol. 33, , pp. 67–108.
[4] Everest (Graham), van der Poorten (Alf), Shparlinski (Igor), and Ward (Thomas). – Re-
currence sequences. – American Mathematical Society, Providence, RI, , Mathematical
Surveys and Monographs, vol. 104, xiv+318p.
[5] Fiduccia (C. M.). – An efficient formula for linear recurrences. SIAM Journal on Computing,
vol. 14, n‌1, , pp. 106–112.
[6] Miller (J. C. P.) and Brown (D. J. Spencer). – An algorithm for evaluation of remote terms
in a linear recurrence sequence. Computer Journal, vol. 9, , pp. 188–190.
[7] Moenck (R. T.) and Borodin (A.). – Fast modular transforms via division. In Thirteenth
Annual IEEE Symposium on Switching and Automata Theory, pp. 90–96. – .
[8] Montgomery (Peter L.). – Modular multiplication without trial division. Mathematics of
Computation, vol. 44, n‌170, , pp. 519–521.
[9] Shoup (V.). – A fast deterministic algorithm for factoring polynomials over finite fields of
small characteristic. In ISSAC’91. pp. 14–21. – ACM Press, .
[10] Strassen (V.). – Die Berechnungskomplexität von elementarsymmetrischen Funktionen und
von Interpolationskoeffizienten. Numerische Mathematik, vol. 20, /, pp. 238–251.
[11] van der Poorten (A. J.). – Some facts that should be better known, especially about ratio-
nal functions. In Number theory and applications, pp. 497–528. – Kluwer, Dordrecht, .
Proceedings of a Conference held at Banff, AB, 1988.
CHAPITRE 6

Calculs modulaires, évaluation et interpolation

Résumé
Le concept d’algorithme modulaire est central en calcul formel. Il per-
met de pallier le phénomène d’explosion des expressions intermédiaires.
Des cas particuliers importants sont l’évaluation multipoint et l’interpo-
lation, pour lesquels il existe des algorithmes rapides qui peuvent être
vus comme des généralisations de la FFT.

1. Introduction
Un ingrédient essentiel en calcul formel est l’utilisation de différents types de
représentation pour les objets manipulés. Par exemple, un polynôme est classique-
ment codé par la liste de ses coefficients, mais on peut très bien le représenter par
les valeurs qu’il prend en un nombre suffisant de points. D’ailleurs, nous avons vu
au Chapitre 2 que c’est bien cette seconde représentation qui est la plus adaptée
pour le calcul efficace, via la FFT, du produit de polynômes. Par ailleurs, d’autres
opérations (comme la division polynomiale, traitée au Chapitre 5) se font mieux
dans la première représentation. D’autres exemples de codages alternatifs déjà ren-
contrés dans ce cours sont l’écriture des entiers en différentes bases de numération,
ou encore la représentation des suites récurrentes linéaires à coefficients constants,
soit par leurs éléments, soit par leurs séries génératrices, soit par une récurrence et
des conditions initiales.
L’exemple de la FFT montre à quel point il est crucial d’examiner dans quelle
représentation un problème donné est plus facile à traiter, et aussi, de trouver des
algorithmes rapides pour la conversion d’une représentation à l’autre.
Une incarnation de ce concept général est la notion d’algorithme modulaire,
dont le paradigme évaluation-interpolation est un cas particulier très important.
L’approche modulaire consiste à choisir des modulos mi , à faire des calculs modulo
chaque mi et à reconstruire tout à la fin le résultat à l’aide d’une version effective du
théorème des restes chinois. Pour garantir l’unicité du résultat et la correction de
ce schéma, il suffit que les modulos soient suffisamment nombreux et indépendants.
Typiquement, s’il s’agit d’entiers, ils peuvent être choisis premiers entre eux et tels
que leur produit dépasse le résultat final. En particulier, pour mettre en place une
approche modulaire, on a besoin de bornes a priori sur la taille de l’objet calculé.
Cette approche porte ses fruits surtout lorsque les coefficients dans les calculs
intermédiaires sont beaucoup plus gros que ceux du résultat final. Il s’agit du phéno-
mène d’explosion des expressions intermédiaires, qui se présente par exemple dans
le calcul du déterminant d’une matrice entière ou polynomiale, ou encore au cours
du calcul du pgcd de polynômes à coefficients entiers.

Exemple 1 (calcul du déterminant d’une matrice polynomiale). Soit à calculer


le déterminant d’une matrice n×n, dont les éléments sont des polynômes de degré au
plus d (le cas particulier d = 1 correspond au calcul d’un polynôme caractéristique).
85
86 6. CALCULS MODULAIRES, ÉVALUATION ET INTERPOLATION

Le point de départ est la remarque que le pivot de Gauss produit sur la i-ième
ligne des fractions rationnelles de degré 2i d. Ainsi, sa complexité ne semble pas
polynomiale par rapport à n. Une approche évaluation-interpolation résout cette
anomalie. Le déterminant étant un polynôme de degré au plus nd, il suffit de choisir
un ensemble de nd + 1 points, d’y évaluer les éléments de la matrice, de calculer les
nd+1 déterminants de matrices scalaires et de finir par une interpolation fournissant
le determinant cherché. Le même raisonnement s’applique aux matrices entières.

Choix des modulos. Dans certaines situations, le programmeur a le choix des


modulos. Dans l’exemple précédent, on peut choisir comme modulos des polynômes
de la forme X − ω i , dans le cas favorable où l’anneau de base contient une racine
primitive de l’unité ω d’ordre suffisamment élevé (≈ 2dn). En théorie, ce choix est
donc possible dès lors que l’anneau de base permet une multiplication polynomiale
à base de FFT. En pratique, il existe des plages de degrés pour lesquelles, même
si elle est faisable, la FFT n’est pas encore rentable ; ce choix est alors déconseillé.
Dans d’autres situations, le choix des modulos est intrinsèquement imposé par le
problème à traiter ; c’est le cas pour le calcul de la factorielle exposé au Chapitre 13.

2. Présentation, résultats
Les problèmes d’évaluation et d’interpolation sont inverses l’un de l’autre. Dans
leur version standard, ils s’énoncent ainsi. Soient a0 , . . . , an−1 des points dans A,
où A est un anneau commutatif et unitaire.
Évaluation multipoint. Étant donné un polynôme P dans A[X], de degré
strictement inférieur à n, calculer les valeurs :
P (a0 ), . . . , P (an−1 ).
Interpolation. Étant donnés b0 , . . . , bn−1 ∈ A, trouver un polynôme P ∈ A[X]
de degré strictement inférieur à n tel que
P (a0 ) = b0 , . . . , P (an−1 ) = bn−1 .

Le problème d’interpolation admet toujours une solution unique sous l’hypo-


thèse technique suivante :
(H) ai − aj est inversible dans A lorsque i 6= j.
j−1 n

En effet, si V = ai−1 i,j=1 est la matrice de Vandermonde associée aux points ai ,
Q 
dont le déterminant vaut det(V) = i<j aj −ai , alors le problème d’interpolation
se traduit par la résolution en l’inconnue p du système linéaire Vp = b, où b est le
vecteur des bi . Or, ce système admet une solution unique, puisque l’hypothèse (H)
entraîne l’inversibilité du déterminant det(V) et donc aussi celle de la matrice V.
Q
Exercice 1. Montrer que det(V) = i<j (aj − ai ).
Cette discussion suggère un algorithme naïf pour l’interpolation, produisant
l’unique solution p = V−1 b du système Vp = b à l’aide du pivot de Gauss en
O(n3 ) opérations dans A, ou encore en O(MM(n)) = O(nθ ) opérations (2 ≤ θ < 3),
en utilisant l’algorithmique matricielle rapide (Chapitre 3). De manière analogue,
l’évaluation multipoint de P en les ai se traduit par le produit matrice-vecteur Vp,
où p est le vecteur des coefficients de P ; elle peut donc être effectuée de manière
naïve en O(n2 ) opérations arithmétiques. En s’y prenant vraiment naïvement, l’in-
terpolation est donc plus coûteuse que l’évaluation multipoint. Nous verrons un peu
plus loin qu’une méthode exploitant la formule d’interpolation de Lagrange permet
de résoudre le problème d’interpolation en complexité quadratique en n.
3. INTERPOLATION DE LAGRANGE 87

L’objectif de ce chapitre est de montrer qu’il est possible d’atteindre une com-
plexité quasi-optimale, tant pour l’évaluation multipoint que pour l’interpolation,
en utilisant des algorithmes de type « diviser pour régner » qui ramènent ces ques-
tions à des multiplications de polynômes. Les principaux résultats sont les suivants :
Théorème 1 (« Évaluation-interpolation »). On peut effectuer l’évaluation
et l’interpolation sur n points vérifiant l’hypothèse (H) en utilisant O(M(n) log n)
opérations (+, −, ×) de A. Cette complexité peut être abaissée à O(M(n)) si les
points forment une progression géométrique de raison inversible dans A.
En termes pratiques, si l’anneau de base A est un corps fini, les algorithmes
rapides deviennent avantageux pour des degrés de l’ordre de quelques dizaines : c’est
sensiblement mieux que pour les algorithmes rapides de type « diviser pour régner »
utilisés aux Chapitres 7 et 9 pour le calcul rapide de pgcd ou d’approximants de
Padé-Hermite ; cela reflète une relative simplicité des algorithmes.

Extensions. L’évaluation multipoint et l’interpolation sont des instances particu-


lières des problèmes modulos multiples et restes chinois s’énonçant comme suit :

Modulos multiples.P Étant donnés des polynômes P, m1 , . . . , mr dans A[X],


avec deg(P ) < n = i deg(mi ), calculer les restes :
P mod m1 , . . . , P mod mr .
Restes chinois. Étant donnés des polynômes b1 , . . . , br , m1 , P
. . . , mr dans A[X],
avec mi unitaires, trouver P ∈ A[X] de degré inférieur à n = i deg(mi ) tel que
P mod m1 = b1 , . . . , P mod mr = br .

Les techniques de ce chapitre s’y généralisent 1 et mènent aux résultats suivants :


Théorème 2. On peut résoudre les deux problèmes ci-dessus en O(M(n) log n)
opérations (+, −, ×) dans A.
Naturellement, on peut se poser les questions précédentes dans le cas où l’an-
neau de polynômes A[X] est remplacé par l’anneau Z, les polynômes mi sont rem-
placés par des modulos entiers ai et où l’on cherche un P ∈ Z à n chiffres. Il est
possible d’obtenir le même type de résultats de complexité, cette fois en comptant
les opérations binaires, mais nous nous limiterons dans la suite au cas polynomial.
La suite de ce chapitre est organisée comme suit : dans la Section 3 est décrite
la méthode d’interpolation de Lagrange, de complexité quadratique. La Section 4
est consacrée aux algorithmes rapides sous-jacents à la preuve du Théorème 1.

3. Interpolation de Lagrange
Un algorithme de complexité quadratique pour l’interpolation polynomiale re-
pose sur une écriture explicite du polynôme interpolant. Soient bi les valeurs à
interpoler et ai les points d’interpolation vérifiant l’hypothèse (H). On peut alors
écrire P sous la forme :
n−1
X Y X − aj
P (X) = bi .
i=0
ai − aj
0≤j≤n−1, j6=i

1. Pour les restes chinois, l’unicité du résultat est garantie par l’hypothèse que le résultant
Res(mi , mj ) est un élément inversible dans A, pour tous i 6= j. Cette condition technique généralise
la condition d’inversibilité des ai − aj ; se rapporter au Chapitre 7 pour la définition du résultant.
88 6. CALCULS MODULAIRES, ÉVALUATION ET INTERPOLATION

Cette égalité est usuellement appelée la formule d’interpolation de Lagrange. Pour


la prouver, il suffit d’observer que pour tout i, le produit s’annule en aj (j 6= i), et
vaut 1 en ai . Afin de simplifier l’écriture de la formule de Lagrange, posons
Y Y A
A= (X − aj ) et Ai = (X − aj ) = ,
j
X − ai
j6=i

pour i = 0, . . . , n − 1. Pour i 6= j, on a donc les relations A(ai ) = 0 et Ai (aj ) = 0.


On obtient alors l’écriture
n−1
X Ai (X)
P = bi .
i=0
Ai (ai )
Une approche directe pour l’interpolation revient à calculer tout d’abord les poly-
nômes Ai , puis leurs valeurs en les points ai , et enfin à effectuer les combinaisons
linéaires nécessaires. Le seul point non-trivial est le calcul des Ai : si on n’y fait pas
attention, on risque de sortir des bornes en O(n2 ) (par exemple, si on les calcule
tous indépendamment, et chacun de manière quadratique). Pour faire mieux, on
partage le gros des calculs, en calculant d’abord le polynôme A.
Interpolation de Lagrange
Entrée : a0 , . . . , an−1 ∈ A vérifiant (H) et b0 , . . . , bn−1 dans A.
Sortie : L’unique polynôme P ∈ A[X] de degré inférieur à n tel que
P (ai ) = bi pour tout i.
1. A ← 1, P ← 0
2. Pour i = 0, . . . , n − 1 faire
A ← A · (X − ai )
3. Pour i = 0, . . . , n − 1 faire
Ai ← A/(X − ai )
qi ← Ai (ai )
P ← P + bi Ai /qi

Proposition 1. L’algorithme ci-dessus utilise O(n2 ) opérations dans A.


Démonstration. La multiplication d’un polynôme de degré d par un poly-
nôme de degré 1 prend un temps linéaire en d, disons Cd opérations, C étant une
constante. Calculer A demande donc C(1 + 2 + · · · + (n − 1)) = O(n2 ) opérations.
Ensuite, chaque passage dans la seconde boucle prend un temps linéaire en n. Il y
a n passages, d’où à nouveau un coût quadratique. 

4. Algorithmes rapides
4.1. Les idées. L’idée fondamentale de l’algorithme d’évaluation multipoint
rapide est d’utiliser une technique de type « diviser pour régner ». Supposons pour
simplifier que n est pair et séparons l’ensemble des points a0 , . . . , an−1 en deux pa-
quets, a0 , . . . , an/2−1 et an/2 , . . . , an−1 . Il est naturel d’associer à P deux polynômes
P0 et P1 de degré strictement inférieur à n/2, tels que :
P0 (a0 ) = P (a0 ), . . . , P0 (an/2−1 ) = P (an/2−1 ) et
P1 (an/2 ) = P (an/2 ), . . . , P1 (an−1 ) = P (an−1 ).
Pour effectuer cette construction, le choix suivant s’impose :
P0 = P mod (X − a0 ) · · · (X − an/2−1 )
P1 = P mod (X − an/2 ) · · · (X − an−1 ).
4. ALGORITHMES RAPIDES 89

On a donc ramené le calcul en degré n à deux calculs en degré n/2, plus deux
divisions euclidiennes ; on va ensuite itérer ce processus. En bout de course, on
retrouve les valeurs P (ai ), car celles-ci peuvent également s’écrire P mod (X − ai ).
Remarquons que les polynômes par lesquels on effectue les divisions euclidiennes
ne sont pas « gratuits » : on doit de les (pré)calculer. Pour cela, l’idée est de les
empiler dans une structure d’arbre binaire, dont les nœuds internes sont étiquetés
par des polynômes.
4.2. L’arbre des sous-produits. Pour simplifier, dans tout ce qui suit, on
suppose que le nombre de points est une puissance de 2, n = 2κ . Quand ce n’est pas
le cas, on adapte toutes les constructions (on fabrique toujours un arbre binaire,
mais il lui manque alors des nœuds internes à certains niveaux). On peut donner
la définition récursive suivante pour cet arbre (noté B) :
– Si κ = 0, B se réduit à un nœud unique qui contient le polynôme X − a0 .
– Sinon, soient B0 , B1 les arbres associés à a0 , . . . , a2κ−1 −1 et a2κ−1 , . . . , a2κ −1 .
Soient B0 et B1 les polynômes présents aux racines de B0 et B1 . Alors B est
l’arbre dont la racine contient le produit B0 B1 et dont les fils sont B0 et B1 .
Graphiquement, on a la représentation suivante :

L’intérêt de cette structure d’arbre est double : d’une part, il contient tous les
polynômes par lesquels on va diviser lors de l’algorithme d’évaluation, d’autre part,
le coût de son calcul s’amortit, et devient essentiellement linéaire en le degré.

ArbreSousProduits
Entrée : a0 , . . . , an−1 dans A, avec n de la forme n = 2κ (κ ∈ N).
Sortie : l’arbre B des sous-produits associé aux points ai .
1. Si n = 1, renvoyer X − a0
2. Calculer (par un appel récursif) B0 = ArbreSousProduits(a0 , . . . , an/2−1 )
3. Calculer (par un appel récursif) B1 = ArbreSousProduits(an/2 , . . . , an−1 )
4. Calculer A = B0 B1 , où B0 et B1 sont les racines de B0 et de B1 .
5. Renvoyer l’arbre de racine A et dont les fils sont B0 et B1 .

Figure 1. Algorithme rapide pour le calcul de l’arbre des sous-produits.


90 6. CALCULS MODULAIRES, ÉVALUATION ET INTERPOLATION

Proposition 2. L’algorithme ArbreSousProduits calcule tous les polynômes


contenus dans l’arbre B pour O(M(n) log n) opérations arithmétiques dans A.
Démonstration. Soit T(n) le coût du calcul de l’arbre pour n points. La
définition récursive implique l’inégalité suivante pour T(n) :
n n
T(n) ≤ 2T +M .
2 2
Le résultat s’ensuit en invoquant le théorème « diviser pour régner ». 
4.3. Évaluation multipoint rapide. L’algorithme d’évaluation multipoint
devient simple à écrire de manière récursive, si on s’autorise un peu de souplesse
dans l’écriture, en supposant précalculés tous les nœuds de l’arbre.

EvaluationRapide
Entrée : a0 , . . . , an−1 dans A, avec n de la forme n = 2κ (κ ∈ N),
l’arbre B des sous-produits associé aux points ai ,
P dans A[X], avec deg P < n.
Sortie : P (a0 ), . . . , P (an−1 ).
1. Si n = 1, renvoyer P
2. P0 ← P mod (X − a0 ) · · · (X − an/2−1 )
3. P1 ← P mod (X − an/2 ) · · · (X − an−1 )
4. Calculer (par un appel récursif) L0 = P0 (a0 ), . . . , P0 (an/2−1 )
5. Calculer (par un appel récursif) L1 = P1 (an/2 ), . . . , P1 (an−1 )
6. Renvoyer L0 , L1

Figure 2. Algorithme rapide d’évaluation multipoint par division répétée.

Graphiquement, cela correspond à faire descendre les restes de divisions eucli-


diennes dans l’arbre des sous-produits :

Or, la division avec reste par un polynôme unitaire de degré n peut s’effectuer
en O(M(n)) opérations de A (Chapitre 5). Nous obtenons le résultat de complexité
suivant :
Proposition 3. La complexité de l’algorithme EvaluationRapide (Figure 2) est
de O(M(n) log n) opérations dans A.
4. ALGORITHMES RAPIDES 91

Démonstration. Soit T(n) le coût du calcul pour n points. L’algorithme ci-


dessus implique la récurrence suivante pour T(n) :
n
T(n) ≤ 2 T + O(M (n)),
2
et le résultat en découle grâce au théorème « diviser pour régner ». 
Exercice 2. Si ω ∈ A est une racine primitive n-ième de l’unité, montrer que
l’algorithme FFT vu au Chapitre 2 est un cas particulier de l’algorithme en Figure 2.
Exercice 3. Estimer la complexité de la variante de l’algorithme Evaluation-
Rapide dans laquelle l’arbre des sous-produits n’est pas précalculé, les polynômes
modulo lesquels s’effectuent les divisions étant calculés à la volée.
4.4. Sommes de fractions. Un problème intermédiaire à traiter avant de
résoudre efficacement le problème d’interpolation est celui du calcul rapide d’une
somme de fractions. Rappelons les définitions introduites dans la Section 3. À partir
des points ai , nous y avions défini les polynômes
Y Y A
A= (X − aj ) et Ai = (X − aj ) = .
j
X − ai
j6=i

Il était apparu que pour effectuer l’interpolation, il suffisait de savoir effectuer la


tâche suivante : étant données des valeurs ci , calculer le numérateur et le dénomi-
nateur de la fraction rationnelle
n−1
X ci
(1) .
i=0
X − ai
C’est à cette question que nous allons répondre maintenant ; à nouveau, on utilise
une idée de type « diviser pour régner » : par deux appels récursifs, on calcule
n/2−1 n
X ci X ci
S1 = et S2 =
i=0
X − ai X − ai
i=n/2

et on renvoie S = S1 + S2 . Soit T(n) le coût du calcul pour n points. Le coût de


l’algorithme SommesFractions esquissé ci-dessus satisfait à la récurrence :
n
T(n) ≤ 2T + O(M (n)),
2
d’où l’on déduit le résultat suivant, en faisant encore une fois appel au théorème
« diviser pour régner ».
Proposition 4. L’algorithme SommesFractions calcule le dénominateur et le
numérateur de la fraction rationnelle (1) en O(M(n) log n) opérations dans A.
4.5. Interpolation. À ce stade, l’interpolation ne pose plus de réelle difficulté.
Au vu des formules de la Section 3, le polynôme interpolant les valeurs bi aux
points ai est donné par :
n−1 n−1
X Ai (X) X bi /Ai (ai )
P (X) = bi = A(X) × .
i=0
Ai (ai ) i=0
X − ai
D’après les P
paragraphes précédents, on sait comment calculer rapidement la fraction
rationnelle ci /(X −ai ) ; il ne reste plus qu’à calculer les constantes ci = bi /Ai (ai ).
Le calcul itératif des constantes ci reviendrait à évaluer n polynômes différents,
chacun en un point, et aurait donc une complexité trop élevée, quadratique en n.
La proposition suivante permet de remplacer ces n évaluations par une évaluation
multipoint d’un unique polynôme en n points, ce qui mène à un gain de complexité.
Proposition 5. Pour tout i = 0, . . . , n − 1, on a Ai (ai ) = A0 (ai ).
92 6. CALCULS MODULAIRES, ÉVALUATION ET INTERPOLATION

InterpolationRapide
Entrée : a0 , . . . , an−1 ∈ A vérifiant (H) et b0 , . . . , bn−1 dans A.
Sortie : L’unique polynôme P ∈ A[X] de degré inférieur à n tel que
P (ai ) = bi pour tout i.
1. Calculer l’arbre des sous-produits associé aux points ai (de racine A).
2. (d0 , . . . , dn−1 ) ← EvaluationRapide(A0 , (a0 , . . . , an−1 ))
3. (c0 , . . . , cn−1 ) ← (b0 /d0 , . . . , bn−1 /dn−1 )
4. R ← SommesFractions(c0 /(X − a0 ), . . . , cn−1 /(X − an−1 ))
5. Renvoyer le numérateur de R.

Figure 3. Algorithme d’interpolation rapide.

Démonstration. On dérive A, ce qui fournit l’égalité :


n−1
XY n−1
X
A0 = (X − aj ) = Ai .
i=0 j6=i i=0

On a vu précédemment que Ai (aj ) = 0 pour i 6= j, ce qui donne le résultat. 


L’algorithme d’interpolation et l’estimation de son coût s’en déduisent facilement.

Proposition 6. La complexité de l’algorithme InterpolationRapide en Figure 3


est O(M(n) log n) opérations de A.
Démonstration. C’est une conséquence des Propositions 2, 3 et 4. 
4.6. Évaluation et interpolation sur une suite géométrique. Dans cette
section nous montrons que tout polynôme de degré n peut être évalué et interpolé
sur des points en progression géométrique {1, q, . . . , q n−1 } en O(M(n)) opérations.
Proposition 7. Soit q un élément inversible de A, et ai = q i pour 0 ≤ i < n.
Alors :
1. On peut évaluer tout polynôme P ∈ A[X] de degré strictement inférieur à n
sur les points a0 , . . . , an−1 en O(M(n)) opérations dans A.
2. Si les points (ai ) vérifient l’hypothèse (H) on peut effectuer l’interpolation
en les points a0 , . . . , an−1 en O(M(n)) opérations dans A.
Démonstration. Soit P = p0 +p1 X +· · ·+pn−1 X n−1 . Pour i = 0, . . . , 2n−2,
on introduit les nombres triangulaires ti = i(i − 1)/2 et la suite βi = q ti ; pour
i = 0, . . . , n − 1 on construit γi = pi /βi . Tous les éléments q ti , γi et βi peuvent être
calculés en O(n) opérations, en utilisant l’égalité q ti+1 = q i q ti . L’observation clé est
que ij = ti+j − ti − tj et donc q ij = βi−1 βj−1 βi+j . L’algorithme d’évaluation repose
alors sur la formule
n−1
X n−1
X
P (q i ) = pj q ij = βi−1 · γj βi+j ,
j=0 j=0
i
qui montre que les valeurs P (q ) sont, à des facteurs constants près, données par les
Pn−1 P2n−2
coefficients de X n−1 , . . . , X 2n−2 dans le produit de i=0 γi X n−i−1 et i=0 βi X i .
Pour l’interpolation, on adapte l’algorithme InterpolationRapide en Figure 3, de
façon à économiser un facteur log en tirant parti de la structure des points ai = q i .
On commence par remarquer que la racine A(X) de l’arbre des sous-produits
peut être calculée en O(M(n)) opérations dans A, par un algorithme qui ne nécessite
EXERCICES 93

pas la construction de tout l’arbre des sous-produits, donc différent de l’algorithme


donné en Figure 1. En effet, puisque les points ai forment une suite géométrique, il
Qn−1
est possible de calculer récursivement A = i=0 (X − ai ) par un seul appel récursif
Qn/2−1 Qn−1
calculant B0 = i=0 (X − ai ), suivi du calcul de B1 = i=n/2 (X − ai ) à partir
de B0 par une homothétie de coût O(n), et enfin du calcul du produit A = B0 B1 .
Par ailleurs, observons que dans l’algorithme InterpolationRapide, le calcul de
tout l’arbre des sous-produits a été utilisé uniquement pour l’évaluation multipoint
de A0 . Or, par la première partie de la Proposition 7, l’évaluation de A0 sur les
points ai peut s’effectuer en O(M(n)) opérations.
Il nous reste à prouver que la somme des fractions (1), qui devient ici
n−1
N X ci
(2) =
A i=0
X − qi
peut également être déterminée pour le même prix.
On adopte la stratégie suivante : on calcule le développement en série à l’ordre n
de la fraction (2). Celui-ci suffit pour en P déduire son numérateur N (X). Pour ce
faire, on utilise la formule 1/(a − X) = i≥j a−j−1 X j valable dans A[[X]] pour
tout a ∈ A inversible. On obtient :
 
n−1
X ci n−1
X n−1 X n−1
X
−i(j+1) j 
i
mod X n
= −  c i q X = − C(q −j−1 )X j ,
i=0
X − q i=0 j=0 j=0
Pn−1 −1 −2
où C(X) est le polynôme i
i=0 ci X . Or, les points q , q , . . . , q −n étant en
progression géométrique, on sait évaluer C sur ces points en O(M(n)). 
Exercice 4. Montrer que tout l’arbre des sous-produits associé aux points
ai = q i , i = 0, . . . , n − 1, peut être calculé en M(n) + O(n log n) opérations dans A.
Une approche évaluation-interpolation reposant sur la Proposition 7 permet
d’obtenir un bon algorithme pour la multiplication des matrices polynomiales.
Corollaire 1. Soit K un corps possédant au moins 2d éléments. Il est pos-
sible de multiplier deux matrices polynomiales de Mn (K[X]) de degré au plus d en
MM(n, d) = O(d MM(n) + n2 M(d)) opérations dans K.

Exercices
Exercice 5 (Calcul rapide P de sommes de puissances). Soient x1 , x2 , . . . , xn
n
des éléments de K et soit Pk = i=1 xki pour k ≥ 1. Montrer que, à partir de la
donnée des x1 , . . . , xn , il est possible de calculer :
1. tous les Pk dont les indices k ≤ n sont une puissance de 2 en O(n log(n))
opérations dans K.
2. tous les P1 , . . . , Pn en O(M(n) log(n)) opérations dans K.
Exercice 6. Estimer la complexité de l’algorithme direct pour évaluer un
polynôme de degré au plus n et ses premières n dérivées en un point. Imaginer un
algorithme de complexité quasi-linéaire résolvant ce problème.
Exercice 7. Soient a, b, c, d ∈ A. Montrer qu’on peut évaluer tout polynôme
de degré au plus n en {ba2i + cai + d, 0 ≤ i < n}, en O(M(n)) opérations dans A.
Exercice 8. Soit K un corps, soient m1 , m2 ∈ K[X] des polynômes premiers
entre eux, de degrés au plus n, et soient v1 , v2 ∈ K[X] de degrés inférieurs à n.
Donner un algorithme de complexité O(M(n) log n) qui calcule f ∈ K[X] de degré
inférieur à 2n tel que f = v1 mod m1 et f = v2 mod m2 . [Indication : utiliser un
pgcd étendu.]
94 6. CALCULS MODULAIRES, ÉVALUATION ET INTERPOLATION

En déduire un algorithme de type « diviser pour régner » pour l’interpolation


polynomiale en degré n, de complexité O(M(n) log2 n).

Notes
Pour évaluer un polynôme P (X) = pn−1 X n−1 + · · · + p0 en un seul point a, le
schéma de Horner P (a) = (· · · ((pn−1 a + pn−2 )a + pn−3 )a + · · · + p0 ) minimise le
nombre d’opérations (additions ou multiplications). Cet algorithme effectue n − 1
additions et n−1 multiplications dans A, et on ne peut pas faire mieux en général (si
les coefficients du polynôme sont algébriquement indépendants — moralement, s’ils
sont des indéterminées). Ce résultat d’optimalité a été conjecturé par Ostrowski [15]
et prouvé par Pan [16]. Par contre, pour un polynôme donné, il peut être possible
de faire mieux : l’évaluation de P (X) = X n−1 se fait en temps logarithmique en n.
Une forme particulière du théorème des restes chinois a été enoncée il y a plus
de 2000 ans par le mathématicien chinois Sun Tsu. Le traitement moderne est dû
à Gauss [9]. Ce théorème admet une formulation très générale, en termes d’idéaux
d’anneaux non nécessairement commutatifs : Si R est un anneau et I1 , . . . , Ir des
idéaux (à gauche) de R mutuellement premiers (i. e. Ii + Ij = Q R pour i < j),
alors l’anneau quotient R/ ∩i I est isomorphe à l’anneau produit R/Ii via l’iso-
morphisme x mod I 7→ (x mod I1 , . . . , x mod Ir ). La formule d’interpolation de
Lagrange est due à Waring [23]. Les avantages pratiques de l’arithmétique modu-
laire et les premières applications en informatique du théorème des restes chinois
ont été mis en évidence dans les années 1950 par Svoboda et Valach [21], et indé-
pendamment par Garner [8] et Takahasi et Ishibashi [22].
Le premier algorithme sous-quadratique, de complexité arithmétique O n1,91 ),
pour l’évaluation multipoint est dû à Borodin et Munro [4] et repose sur une ap-
proche pas de bébés / pas de géants exploitant la multiplication sous-cubique des
matrices de Strassen [19]. Horowitz [11] a étendu ce résultat à l’interpolation. La
Proposition 2 calcule efficacement les fonctions symétriques élémentaires de n élé-
ments a0 , . . . , an−1 de A ; elle est due également à Horowitz [11].
S’inspirant de la FFT, Fiduccia [7] eut l’idée d’un algorithme pour l’évaluation
multipoint à base de division polynomiale récursive. Ne disposant pas de division
de complexité sous-quadratique, son algorithme récursif reste quadratique. Borodin
et Moenck corrigent ce point dans deux articles successifs [13, 3], reposant sur les
algorithmes quasi-optimaux pour la division de [13, 20]. Montgomery [14] améliore
la constante dans la complexité O M(n) log n) de l’évaluation multipoint, sous l’hy-
pothèse que la FFT est utilisée pour la multiplication polynomiale. L’algorithme
d’évaluation sur une suite géométrique exposé dans ce chapitre vient de [17, 2]. À
l’origine, cet algorithme a permis de montrer qu’une DFTω , pour ω racine primitive
n-ième de l’unité, peut être effectuée en O(n log n) opérations même si n n’est pas
une puissance de 2. L’algorithme d’interpolation est une adaptation de [12]. Les al-
gorithmes fournissant les meilleures constantes actuellement connues dans les O(·)
du Théorème 1 sont obtenus à l’aide du principe de transposition de Tellegen [5, 6].
On connaît peu de choses sur la complexité intrinsèque de l’évaluation multi-
point et de l’interpolation en degré n. Strassen [20] a prouvé une borne inférieure de
type n log n. Shoup et Smolensky [18] ont montré que ces bornes restent essentiel-
lement vraies même dans un modèle où des précalculs en quantité illimitée sur les
points d’évaluation sont permis. Cependant, l’optimalité des meilleurs algorithmes
connus, de complexité O(n log2 n), reste un problème ouvert. Même dans le cas
particulier où les points d’évaluation sont en progression arithmétique, on ne dis-
pose d’aucun algorithme d’évaluation multipoint de complexité O(M(n)), ni d’une
preuve qu’un tel algorithme n’existe pas. De même, pour des points quelconques
a0 , . . . , an−1 on ne connaît pas d’algorithme de complexité O(M(n)) pour calculer
Bibliographie 95

Q
le polynôme i (X − ai ). Notons toutefois que de tels algorithmes existent dans les
cas particuliers où les ai forment une progression arithmétique ou géométrique [6].
L’exercice 8 provient de [10] ; historiquement, ce fut le premier algorithme
rapide pour les restes chinois. Les exercices 6 et 7 sont tirés de [1].

Bibliographie
[1] Aho (A. V.), Steiglitz (K.), and Ullman (J. D.). – Evaluating polynomials at fixed sets of
‌ , , pp. 533–539.
points. SIAM Journal on Computing, vol. 4, n4
[2] Bluestein (L. I.). – A linear filtering approach to the computation of the discrete Fourier
transform. IEEE Trans. Electroacoustics, vol. AU-18, , pp. 451–455.
[3] Borodin (A.) and Moenck (R. T.). – Fast modular transforms. Comput. Sys. Sci., vol. 8, n‌3,
, pp. 366–386.
[4] Borodin (A.) and Munro (I.). – Evaluation of polynomials at many points. Information Pro-
cessing Letters, vol. 1, n‌2, , pp. 66–68.
[5] Bostan (Alin), Lecerf (Grégoire), and Schost (Éric). – Tellegen’s principle into practice. In
Sendra (J. R.) (editor), ISSAC’03. pp. 37–44. – ACM Press, .
[6] Bostan (Alin) and Schost (Éric). – Polynomial evaluation and interpolation on special sets
of points. Journal of Complexity, vol. 21, n‌4, , pp. 420–446.
[7] Fiduccia (C. M.). – Polynomial evaluation via the division algorithm : The fast Fourier
transform revisited. In 4th ACM Symposium on Theory of Computing, pp. 88–93. – .
[8] Garner (Harvey L.). – The residue number system. In IRE-AIEE-ACM’59 Western joint
computer conference. pp. 146–153. – ACM, NY, USA, .
[9] Gauss (Carl Friedrich). – Disquisitiones arithmeticae. – Yale University Press, New Haven,
Conn., , Translated into English by Arthur A. Clarke, S. J, xx+472p.
[10] Heindel (L. E.) and Horowitz (E.). – On decreasing the computing time for modular arith-
metic. In 12th symposium on switching and automata theory. pp. 126–128. – IEEE, .
[11] Horowitz (E.). – A fast method for interpolation using preconditioning. Information Proces-
‌ , , pp. 157–163.
sing Letters, vol. 1, n4
[12] Mersereau (Russell M.). – An algorithm for performing an inverse chirp z-transform. IEEE
Trans. Acoust. Speech Signal Processing, vol. ASSP-22, n‌5, , pp. 387–388.
[13] Moenck (R. T.) and Borodin (A.). – Fast modular transforms via division. In Thirteenth
Annual IEEE Symposium on Switching and Automata Theory, pp. 90–96. – .
[14] Montgomery (P. L.). – An FFT extension of the elliptic curve method of factorization. –
PhD thesis, University of California, Los Angeles CA, .
[15] Ostrowski (A.). – On two problems in abstract algebra connected with Horner’s rule. In Stu-
dies in mathematics and mechanics presented to Richard von Mises, pp. 40–48. – Academic
Press Inc., NY, .
[16] Pan (V. Ya.). – Methods of computing values of polynomials. Russian Mathematical Surveys,
vol. 21, n‌1, , pp. 105–136.
[17] Rabiner (L. R.), Schafer (R. W.), and Rader (C. M.). – The chirp z-transform algorithm and
its application. Bell System Tech. J., vol. 48, , pp. 1249–1292.
[18] Shoup (Victor) and Smolensky (Roman). – Lower bounds for polynomial evaluation and
interpolation problems. Computational Complexity, vol. 6, n‌4, /, pp. 301–311.
[19] Strassen (V.). – Gaussian elimination is not optimal. Numerische Mathematik, vol. 13, ,
pp. 354–356.
[20] Strassen (V.). – Die Berechnungskomplexität von elementarsymmetrischen Funktionen und
von Interpolationskoeffizienten. Numerische Mathematik, vol. 20, /, pp. 238–251.
[21] Svoboda (A.) and Valach (M.). – Operátorové obvody (Operational circuits). Stroje na Zpra-
cování Informací (Information Processing Machines), vol. 3, , pp. 247–295.
[22] Takahasi (H.) and Ishibashi (Y.). – A new method for exact calculation by a digital computer.
Information Processing in Japan, , pp. 28–42.
[23] Waring (E.). – Problems concerning interpolations. Philosophical Transactions of the Royal
Society of London, vol. 59, , pp. 59–67.
CHAPITRE 7

Pgcd et résultant

Résumé
L’algorithme d’Euclide classique permet de calculer le pgcd et le pgcd
étendu. Il est relié aux résultants, qui permettent un calcul d’élimina-
tion. Le pgcd et le résultant peuvent être calculés en complexité quasi-
optimale.

Les calculs de pgcd sont cruciaux pour la simplification des fractions, qu’il
s’agisse de fractions d’entiers ou de fractions de polynômes. Les algorithmes efficaces
de factorisation de polynômes reposent par ailleurs de manière essentielle sur le pgcd
de polynômes. Comme pour la multiplication, les algorithmes efficaces de pgcd sont
plus complexes dans le cas des entiers que dans le cas des polynômes, à cause des
retenues, et nous n’en détaillons que la version polynomiale. Dans les définitions
et résultats de nature moins algorithmique, nous utilisons le cadre algébrique des
anneaux euclidiens qui permet de traiter simultanément toutes les applications que
nous avons en vue.
L’algorithme d’Euclide pour le calcul du pgcd est présenté en Section 1. Dans
le cas des polynômes de K[X], sa complexité est quadratique en nombre d’opéra-
tions dans le corps K. Le résultant est également lié à l’algorithme d’Euclide, ses
propriétés et son calcul sont présentés en Section 2. En outre, une technique dite
« des sous-résultants » permet de réduire l’explosion de la taille des coefficients
intermédiaires dont souffre l’algorithme d’Euclide pour le pgcd dans Q[X]. Le cha-
pitre se termine en Section 3 sur un algorithme de complexité quasi-optimale pour
le pgcd dans K[X], exploitant la multiplication polynomiale rapide.
Dans ce chapitre, A désignera toujours un anneau intègre (commutatif et sans
diviseurs de zéro) et unitaire.

1. Algorithme d’Euclide
1.1. Le pgcd. Des pgcd peuvent être définis dans tout anneau intègre A : on
appelle plus grand diviseur commun (pgcd) de A et B tout G ∈ A qui divise A et B
et tel que tout diviseur de A et de B divise aussi G. Contrairement à l’usage, nous
notons dans ce chapitre pgcd(A, B) tout pgcd de A et de B sans faire de choix de
normalisation parmi les pgcd de A et de B.
L’algorithme d’Euclide présenté dans cette section permet le calcul du pgcd
dans Z ou dans l’anneau K[X], où K est un corps. Il repose sur l’existence d’une
division euclidienne dans ces anneaux. Un anneau intègre A est appelé anneau
euclidien s’il existe une fonction de taille d : A → N ∪ {−∞} telle que pour tout
a ∈ A, b ∈ A \ {0}, il existe q et r dans A avec
a = qb + r, d(r) < d(b).
En particulier, d(0) < d(b) dès que b est non nul. Dans le cas des entiers, la valeur
absolue fournit une telle fonction d, et le degré remplit ce rôle pour les polynômes.
La notation r := a mod b sert dans les deux cas à définir r à partir de a et de b.
L’entier ou le polynôme r est appelé reste de la division euclidienne de a par b.
97
98 7. PGCD ET RÉSULTANT

Euclide(A, B)
Entrée : A et B dans A.
Sortie : Un pgcd de A et B.
1. R0 := A ; R1 := B ; i := 1.
2. Tant que Ri est non nul, faire :
Ri+1 := Ri−1 mod Ri
i := i + 1
3. Renvoyer Ri−1 .

Figure 1. L’algorithme d’Euclide.

Exercice 1. Un élément d’un anneau est dit irréductible si les produits qui
lui sont égaux font tous intervenir un élément inversible. Tout anneau euclidien
est factoriel (c’est-à-dire que tout élément non nul y a une factorisation unique
en irréductibles, à l’ordre près de la factorisation et à des multiplications près des
facteurs par des inversibles de l’anneau). Le pgcd se lit aussi sur les factorisations.
Si A et B se factorisent sous la forme
A = amk11 · · · mks s , B = bm`11 · · · m`ss ,
où a et b sont inversibles dans A, les mi sont irréductibles et les ki et `i sont des
entiers positifs ou nuls, montrer qu’alors un pgcd de A et B est
min(k1 ,`1 )
G = m1 · · · mmin(k
s
s ,`s )
.
Autrement dit, on « met » dans G les facteurs irréductibles communs de A et B,
avec la plus grande multiplicité possible. La factorisation dans Z ou dans K[X] est
plus coûteuse que le pgcd et cette propriété n’est donc pas utilisée pour le calcul
du pgcd.
1.2. Calcul du pgcd. Étant donnés A, B dans un anneau euclidien A, l’al-
gorithme d’Euclide en Figure 1 calcule une suite de restes successifs dont la taille
décroît, jusqu’à atteindre le pgcd.
La terminaison provient de la décroissance stricte de la taille à chaque étape.
La correction de cet algorithme se déduit de la relation
pgcd(F, G) = pgcd(H, G) pour H := F mod G,
dont la preuve est laissée en exercice. Par récurrence, il s’ensuit que pgcd(F, G) =
pgcd(Ri , Ri+1 ) pour tout i. Si en outre Ri+1 est nul, alors pgcd(Ri , Ri+1 ) = Ri , ce
qui prouve la correction.
Exemple 1. Soient A = X 4 − 13X 3 + 2X 2 − X − 1 et B = X 2 − X − 1 dans
Q[X]. La suite des restes est :
R0 = X 4 − 13X 3 + 2X 2 − X − 1,
R1 = X 2 − X − 1,
R2 = −22X − 10,
R3 = −41/121,
R4 = 0,
de sorte que −41/121 est un pgcd de A et B et donc 1 aussi.
Théorème 1. L’algorithme d’Euclide calcule un pgcd de A et B dans K[X] en
O(deg A deg B) opérations dans K.
1. ALGORITHME D’EUCLIDE 99

Démonstration. La correction a été prouvée dans le cas général. Pour l’étude


de complexité, nous supposons d’abord que deg A ≥ deg B. D’après le Chapitre 4
(p. 76), le calcul naïf de P mod Q peut être effectué en 2 deg Q(deg P − deg Q + 1)
opérations de K. Il s’ensuit que le coût de l’algorithme d’Euclide est borné par la
somme des 2 deg(Ri )(deg Ri−1 − deg Ri + 1), pour i ≥ 1. TousP les deg(Ri ) sont
majorés par deg A, de sorte que le coût est borné par 2 deg A i≥1 (deg Ri−1 −
deg Ri + 1) = 2 deg A(deg R0 + deg B) = O(deg A deg B).
Si le degré de B est supérieur à celui de A, la première étape ne coûte pas
d’opération arithmétique, et la borne ci-dessus s’applique au reste du calcul. 
Exercice 2. Énoncer et prouver l’analogue entier du résultat du Théorème 1.
La borne de complexité quadratique reflète bien le comportement de l’algo-
rithme : dans une exécution typique de l’algorithme, les quotients ont degré 1 à
chaque itération, les degrés des restes successifs diminuent de 1 à chaque itération
et leur calcul est linéaire ; le nombre de coefficients intermédiaires calculés est qua-
dratique et ils sont calculés aussi efficacement que possible par un algorithme qui
les calcule tous.
1.3. Pgcd étendu et inversion modulaire.

Relation de Bézout. Une relation de la forme G = U A + V B qui donne le pgcd G


de deux polynômes A et B avec deux cofacteurs polynomiaux U et V est appelée
une relation de Bézout. L’algorithme d’Euclide étendu est une modification légère
de l’algorithme d’Euclide qui calcule non seulement le pgcd, mais aussi une relation
de Bézout particulière,
(1) U A + V B = G, avec d(U G) < d(B) et d(V G) < d(A).
Une fois le pgcd G choisi, les cofacteurs U et V sont rendus uniques par la contrainte
sur les tailles. Dans de nombreuses applications, c’est davantage de ces cofacteurs
U et V que du pgcd lui-même qu’on a besoin. On parle alors de calcul de pgcd
étendu. Ce calcul intervient par exemple de manière importante dans la manipu-
lation des nombres algébriques (Exemple 3 ci-dessous), dans le calcul dans des
algèbres quotient K[X]/(P ) (Exemples 2 et 4 ci-dessous, cf. aussi la Section 2.4 en
page 77), et dans le développement rapide des séries algébriques (Chapitre 8). Il
intervient également dans d’autres algorithmes qui ne seront pas abordés dans ce
cours, par exemple pour le calcul des « restes chinois rapides », pour la factorisation
de polynômes dans Z[X] ou Q[X] par des techniques de type « Hensel », ou pour
l’intégration symbolique (à la Hermite).
Mais, avant tout, les calculs de pgcd étendu permettent d’effectuer des inver-
sions modulaires. Lorsque A et B sont premiers entre eux, (c’est-à-dire si G est un
élément inversible de A), alors l’élément V est un inverse de B modulo A.
Exemple 2. La relation de Bézout pour a + bX et 1 + X 2 dans R[X] s’écrit :
(a − bX)(a + bX) + b2 (1 + X 2 ) = a2 + b2 .
L’inverse de B = a + bX modulo A = 1 + X 2 vaut donc
a − bX
V = 2 .
a + b2
Puisque le corps des complexes s’obtient par le quotient R[X]/(X 2 + 1), cette rela-
tion n’est autre que la formule d’inversion familière
1 a − ib
= 2 .
a + ib a + b2
100 7. PGCD ET RÉSULTANT

Si A ∈ A est irréductible, alors A/(A) est un corps, et le calcul de la relation de


Bézout permet d’y effectuer la division : si B 6= 0 mod A, alors N/B = N V mod A.
Exemple 3. La « simplification » de la fraction rationnelle
φ4 − φ + 1 25φ − 34
r= =
φ7 − 1 169
où φ est le « nombre d’or », défini par A(φ) = 0 pour A(X) = X 2 − X − 1, est
obtenue par les trois calculs suivants :
– calcul du reste U = 13X + 7 par U := X 7 − 1 mod A,
– détermination de la relation de Bézout
13X − 20
U − A = 1,
169
– calcul du reste V = 25X − 34 par V := (13X − 20)(X 4 − X + 1) mod A.
Plus généralement, dans le cas où A ∈ K[X] est un polynôme irréductible, ces
calculs montrent que le corps K(α) des fractions rationnelles en α racine de A est un
espace vectoriel dont une base est 1, α, α2 , . . . , αdeg A−1 . Les algorithmes d’Euclide
et d’Euclide étendu fournissent un moyen de calcul dans cette représentation. Il est
ainsi possible de manipuler de manière exacte les racines d’un polynôme de degré
arbitraire sans « résoudre ».
Exemple 4. Lorsque l’élément A ∈ A n’est pas irréductible, A/(A) n’est pas
un corps. Cependant, les éléments inversibles peuvent y être inversés par le même
calcul que ci-dessus. Lorsqu’un élément B non nul n’est pas inversible, la relation
de Bézout se produit avec un G différent de 1. Il est alors possible de tirer parti
de cette information (un facteur de A) en scindant le calcul d’une part sur G et
d’autre part sur B/G.
Exemple 5. Le même calcul qu’à l’exemple 3 fonctionne sur des entiers :
25
r= ≡ 5 mod 7
33
se déduit de
33 mod 7 = 5, 3 × 5 − 2 × 7 = 1, 3 × 25 mod 7 = 5.
Exercice 3. Soit p un nombre premier et soit a un entier non multiple de p.
Donner un algorithme pour le calcul de l’inverse de a modulo p utilisant le petit
théorème de Fermat (ap−1 = 1 mod p) et l’exponentiation binaire. Analyser la com-
plexité binaire de cet algorithme et comparer avec l’approche par Euclide étendu.

Calcul des cofacteurs. L’idée-clé est de suivre pendant l’algorithme d’Euclide la


décomposition de chacun des Ri sur A et B. Autrement dit, pour tout i, l’algorithme
calcule des éléments Ui et Vi tels que
U i A + V i B = Ri ,
dont les tailles sont bien contrôlées. Pour i = 0, il suffit de poser U0 = 1, V0 = 0, ce
qui correspond à l’égalité
1 · A + 0 · B = A = R0 .
Pour i = 1, l’égalité
0 · A + 1 · B = B = R1
est obtenue avec U1 = 0, V1 = 1. Ensuite, la division euclidienne
Ri−1 = Qi Ri + Ri+1
2. RÉSULTANT 101

AEE(A, B)
Entrée : A et B dans A.
Sortie : Un pgcd G de A et B, et les cofacteurs U et V de l’identité de
Bézout U A + V B = G.
1. R0 := A ; U0 := 1 ; V0 := 0 ; R1 := B ; U1 := 0 ; V1 := 1 ; i := 1.
2. Tant que Ri est non nul, faire :
(Qi , Ri+1 ) := QuotRem(Ri−1 , Ri ) ; # division euclidienne
Ui+1 := Ui−1 − Qi Ui ; Vi+1 := Vi−1 − Qi Vi ;
i := i + 1
3. Renvoyer Ri−1 , Ui−1 , Vi−1 .

Figure 2. L’algorithme d’Euclide étendu.

donne la relation
Ri+1 = Ri−1 − Qi Ri = (Ui−1 − Qi Ui )A + (Vi−1 − Qi Vi )B,
qui pousse à définir Ui+1 par Ui−1 − Qi Ui et Vi+1 par Vi−1 − Qi Vi . À partir de
cette relation, une preuve par récurrence montre que les conditions de tailles de la
relation de Bézout sont satisfaites.
L’algorithme est résumé en Figure 2. À nouveau, dans le cas des polynômes ou
des entiers, la complexité est quadratique.

2. Résultant
2.1. Matrice de Sylvester. L’algorithme d’Euclide pour deux polynômes
A, B à une variable est étroitement relié à la matrice de Sylvester. Si
A = am X m + · · · + a0 , (am 6= 0), et B = bn X n + · · · + b0 , (bn 6= 0),
appartiennent à A[X], cette matrice, carrée de taille m + n, s’écrit
 
am am−1 ... a0

 am am−1 ... a0 

 .. .. .. 

 . . . 

 am am−1 ... a0 
Syl(A, B) = 
 bn bn−1

 ... b0 


 b n b n−1 ... b0 

 .. .. .. 
 . . . 
bn bn−1 ... b0
avec les n premières lignes contenant les coefficients de A et les m suivantes conte-
nant les coefficients de B.
La transposée de cette matrice représente l’application linéaire
(U, V ) 7→ AU + BV,
en se limitant aux paires (U, V ) tels que deg U < deg B et deg V < deg A, et en uti-
lisant la base des monômes 1, X, . . . , X m+n−1 à l’arrivée. Les combinaisons linéaires
des lignes de la matrice de Sylvester donnent donc les coefficients des polynômes
qui peuvent être obtenus comme image. Au vu de la relation de Bézout (1), le pgcd
de A et B peut être obtenu ainsi et il est caractérisé comme l’élément de plus petit
degré qui peut l’être. Ceci permet de le lire sur une forme échelonnée en ligne de
la matrice Syl(A, B) (cf. Définition 3, page 44).
102 7. PGCD ET RÉSULTANT

Proposition 1. Soient A, B deux polynômes de K[X]. La forme échelonnée


en ligne de la matrice de Sylvester Syl(A, B) contient sur sa dernière ligne non
nulle les coefficients d’un pgcd de A et B. En outre, la dimension du noyau de cette
matrice est le degré du pgcd.
Exemple 6. Pour les polynômes A = X 4 − X 3 − 7X 2 + 2X + 3 et B =
X − 4X 2 + 2X + 3, la matrice de Sylvester et sa forme échelonnée en ligne sont :
3
   
1 −1 −7 2 3 0 0 1 −1 −7 2 3 0 0
0 1 −1 −7 2 3 0 0 1 −1 −7 2 3 0 
   
0 0
 1 −1 −7 2 3 
0 0
 1 −1 −7 2 3 
1 −4 2
 3 0 0 0  et 0 0
 0 −14 45 −3 −18 .
0 1 −4 2 5 12 9 
 3 0 0 

0 0
 0 0 − 7 7 7 
1 3 
0 0 1 −4 2 3 0 0 0 0 0 0 10 − 10
0 0 0 1 −4 2 3 0 0 0 0 0 0 0
La dernière ligne non nulle donne le pgcd X − 3.
Definition 1. Le résultant de A et B est le déterminant de la matrice de
Sylvester Syl(A, B). Il est noté Res(A, B), ou ResX (A, B) si l’on veut insister sur
l’élimination de la variable X.
Le résultant peut être vu comme une condition de cohérence pour le système
formé par les deux polynômes A et B.
Corollaire 1. Soient A et B deux polynômes de K[X]. Alors A et B sont
premiers entre eux si et seulement si Res(A, B) 6= 0.
Démonstration. Le déterminant d’une matrice carrée se lit sur la forme éche-
lonnée en ligne en faisant le produit des éléments diagonaux. Il est non nul si et
seulement si tous les éléments diagonaux le sont et dans ce cas un pgcd non nul
est sur la dernière ligne. À l’inverse, s’il existe un pgcd G non nul, alors les poly-
nômes X k G montrent l’existence de lignes avec un coefficient de tête non nul dans
chaque colonne de la forme échelonnée. 
Exemple 7. Le discriminant de A est par définition le résultant de A et sa
dérivée A0 . Il s’annule lorsque ces deux polynômes ont une racine commune dans
une clôture algébrique de A, c’est-à-dire, en caractéristique nulle, lorsque A a une
racine multiple.
Exercice 4. Calculer le discriminant de aX 2 +bX+c en prenant le déterminant
de la matrice de Sylvester.
2.2. Applications du résultant.

Calculs de projections. Algébriquement, la « résolution » d’un système polynomial


se ramène souvent à une question d’élimination. Lorsqu’elle est possible, l’élimina-
tion successive des variables amène le système d’entrée sous une forme triangulaire.
De proche en proche, la résolution d’un tel système se réduit alors à la manipulation
de polynômes à une variable, pour lesquels compter, isoler, . . . , les solutions est
bien plus facile.
Géométriquement, l’élimination correspond à une projection. Cette section
montre comment le résultant de deux polynômes permet de traiter ce genre de
problèmes, pour les systèmes de deux équations en deux inconnues. Le schéma gé-
néral est représenté en Figure 3. Cette opération est à la base d’une technique
plus générale pour un nombre arbitraire d’équations et d’inconnues, la résolution
géométrique, qui sera présentée au Chapitre 22.
2. RÉSULTANT 103

Figure 3. Le résultant calcule des projections.

Figure 4. Les deux courbes de l’exemple 8.

Exemple 8. Les deux courbes de la Figure 4 ont pour équations


A = (X 2 + Y 2 )3 − 4X 2 Y 2 = 0, B = X 2 (1 + Y ) − (1 − Y )3 = 0.
Ces deux polynômes sont irréductibles et leur pgcd, qui vaut 1, ne renseigne pas sur
leurs racines communes. Les résultants par rapport à X et Y donnent en revanche
des polynômes qui s’annulent sur les coordonnées de ces points d’intersection :
ResX (A, B) = (4Y 7 + 60Y 6 − 152Y 5 + 164Y 4 − 95Y 3 + 35Y 2 − 9Y + 1)2 ,
ResY (A, B) = 16X 14 + 6032X 12 − 1624X 10 + 4192X 8 − 815X 6 − 301X 4 − 9X 2 + 1.
Il n’y a que 4 points d’intersection visibles sur la figure 4, les 10 autres ont au moins
une coordonnée qui n’est pas réelle. Le caractère bicarré du résultant en Y provient
de la symétrie de la figure par rapport à l’axe des Y . C’est pour cette même raison
que le premier résultant est un carré.
Le résultat général est le suivant.
Proposition 2. Soient A = am Y m + · · · et B = bn Y n + · · · où les coefficients
ai et bj sont dans K[X]. Alors les racines du polynôme ResY (A, B) ∈ K[X] sont
d’une part les abscisses des solutions du système A = B = 0, d’autre part les racines
communes des termes de tête am et bn .
Démonstration. Ce résultat est une conséquence pas évidente du théorème 2
de la Section 2.3 ci-dessous. 
104 7. PGCD ET RÉSULTANT

Figure 5. Les courbes de l’exemple 9.

Graphiquement, les racines « dégénérées » du second cas se traduisent par la


présence d’asymptotes verticales.
Exemple 9. Avec A = X 2 Y + X + 1, B = XY − 1, on obtient ResY (A, B) =
−X(2X + 1) (asymptote en X = 0, « vraie » solution en X = − 12 ). Les courbes
correspondantes sont représentées en Figure 5.
Une fois calculé le résultant donnant les coordonnées des abscisses des intersec-
tions des deux courbes, il est souhaitable d’obtenir les ordonnées correspondantes.
Dans le cas simple où l’avant-dernier reste de l’algorithme d’Euclide est de degré 1,
il fournit bien une telle paramétrisation.
Exemple 10. Sur les deux polynômes A et B de l’exemple 8, vus comme
polynômes dans Q(X)[Y ], la suite des restes est
(X 4 − 13X 2 + 15)Y 2 − 4(X 2 + 2)(X 2 + 3)Y + (X 6 − 2X 4 − 8X 2 + 10),
(4X 8− 344X 6 − 1243X 4 − 301X 2 − 21)Y + (84X 8− 372X 6 + 169X 4 + 143X 2 + 15),
1.
Un calcul de pgcd du coefficient de Y dans l’avant-dernier reste avec ResY (A, B)
montre que ces deux polynômes sont premiers entre eux. Pour chaque racine X
de ResY (A, B) il y a donc un unique point d’intersection aux deux courbes, d’or-
donnée donnée par
84X 8 − 372X 6 + 169X 4 + 143X 2 + 15
Y =− .
4X 8 − 344X 6 − 1243X 4 − 301X 2 − 21
En utilisant un calcul de pgcd étendu, ceci peut être récrit, comme expliqué plus
haut, en un polynôme de degré au plus 13 en X.
Le même calcul sur A et B vus comme polynômes dans Q(Y )[X] donne B
comme dernier reste avant le pgcd. Ceci correspond aux deux points ayant la même
projection sur l’axe des Y .

Implicitation. Une autre application géométrique du résultant est l’implicitation


de courbes du plan. Étant donnée une courbe paramétrée
X = A(T ), Y = B(T ), A, B ∈ K(T ),
il s’agit de calculer un polynôme non trivial en X et Y qui s’annule sur la courbe.
Il suffit pour cela de prendre le résultant en T des numérateurs de X − A(T ) et
de Y − B(T ).
2. RÉSULTANT 105

Exemple 11. La courbe « en fleur » de la Figure 4 peut aussi être donnée sous
la forme
4T (1 − T 2 )2 8T 2 (1 − T 2 )
X= 2 3
, Y = .
(1 + T ) (1 + T 2 )3
Il suffit d’effectuer le calcul du résultant
ResT ((1 + T 2 )3 X − 4T (1 − T 2 )2 , (1 + T 2 )3 Y − 8T 2 (1 − T 2 ))
pour retrouver (à un facteur constant près) le polynôme A de l’exemple 8.
2.3. Propriétés et calcul quadratique. L’essentiel des propriétés du résul-
tant est contenu dans le théorème suivant.
Théorème 2. Si les polynômes A et B de A[X] s’écrivent
A = a(X − α1 ) · · · (X − αm ), B = b(X − β1 ) · · · (X − βn ),
alors, le résultant de A et B vaut
Y Y
Res(A, B) = an bm (αi − βj ) = (−1)mn bm A(βj )
i,j 1≤j≤n
Y
n mn
=a B(αi ) = (−1) Res(B, A).
1≤i≤m

Démonstration. Il suffit de prouver la première égalité. Les trois suivantes


en sont des conséquences immédiates.
Le facteur an bm est une conséquence de la multilinéarité du déterminant.
On peut donc se restreindre au cas où a = b = 1. Il est commode de considé-
rer le cas générique où les αi et βj sont des indéterminées et où l’anneau A est
Z[α1 , . . . , αm , β1 , . . . , βn ]. Si le résultat est vrai dans cet anneau, il l’est aussi pour
des valeurs arbitraires des αi et βj . Le corollaire 1 dans Q(α1 , . . . , αm , β1 , . . . , βn )
montre que le produit des αi − βj divise le résultant. Par ailleurs, le degré en αi
de chacune des n premières lignes de la matrice de Sylvester est 1, et ce degré est
nul pour les m autres lignes. Ceci donne une borne n pour le degré en chaque αi
du résultant et de la même manière une borne m pour son degré en chaque βj . Il
s’ensuit que le résultant est égal au produit des αi − βj à un facteur constant près.
Ce facteur est indépendant des αi et βj . En choisissant β1 = · · · = βn = 0, c’est-
à-dire B = X n , et en développant le déterminant par rapport à ses m dernières
lignes, on obtient que le résultant vaut (−1)mn A(0)n , ce qui donne le facteur 1 et
conclut la preuve. 
Corollaire 2 (Multiplicativité du résultant). Pour tous polynômes A, B, C
de A[X], Res(AB, C) = Res(A, C) Res(B, C).
Démonstration. L’anneau A étant intègre, il possède un corps de fractions
qui a lui-même une clôture algébrique dans laquelle les polynômes A, B et C peuvent
s’écrire sous la forme utilisée dans le théorème précédent. L’identité sur les résul-
tants (qui appartiennent à A par définition) est alors vérifiée en considérant les
produits deux à deux de racines. 
Une dernière propriété utile du résultant est la suivante.
Proposition 3. Il existe U et V dans A[X] tels que le résultant de A et de B
s’écrive Res(A, B) = U A + V B.
Démonstration. En ajoutant à la dernière colonne de la matrice de Sylves-
ter le produit des colonnes précédentes par des puissances adaptées de X, on fait
apparaître dans la dernière colonne les polynômes A et B, sans avoir changé le
déterminant. Le développement du déterminant par rapport à la dernière colonne
permet alors de conclure. 
106 7. PGCD ET RÉSULTANT

L’algorithme d’Euclide étendu montre que le résultant Res(A, B) (qui est un


multiple par un élément du corps des fractions K de l’un des restes euclidiens
« standards »), peut s’écrire comme une combinaison polynomiale de A et B, à
coefficients dans K[X]. La proposition 3 montre que cette combinaison se fait « sans
division », c’est-à-dire avec des coefficients dans A[X].
En utilisant la définition 1 et les résultats du Chapitre 3, le résultant de deux
polynômes A, B de K[X] peut se calculer naïvement en O(MM(n)) = O(nθ ) opéra-
tions dans K, où n = max(deg(A), deg(B)) et où 2 ≤ θ ≤ 3 est un exposant faisable
pour la multiplication matricielle. Un algorithme plus efficace, de complexité seule-
ment quadratique, s’obtient comme conséquence du Théorème 2 et est laissé en
exercice.
Exercice 5 (Algorithme de type Euclide pour le résultant). Soient A et B
deux polynômes de K[X] de degrés m = deg(A) et n = deg(B).
1. Soit A = QB + R la division euclidienne dans K[X] de A par B. Si r =
deg(R), et si bn est le coefficient dominant de B, montrer que
Res(A, B) = (−1)mn · bm−r
n · Res(B, R).
2. Écrire un algorithme de type Euclide (i.e. à base de divisions répétées), qui
calcule le résultant Res(A, B) en O(mn) opérations dans K.
2.4. Calcul avec des nombres algébriques. L’idée que les polynômes sont
de bonnes structures de données pour représenter leur racines amène à chercher des
algorithmes pour effectuer les opérations de base sur ces racines, comme la somme
ou le produit. Le résultant répond à cette attente.
Q Q
Proposition 4. Soient A = i (X − αi ) et B = j (X − βj ) des polynômes
de K[X]. Alors
Y
ResX (A(X), B(T − X)) = (T − (αi + βj )),
i,j
Y
ResX (A(X), B(T + X)) = (T − (βj − αi )),
i,j
Y
deg B
ResX (A(X), X B(T /X)) = (T − αi βj ),
i,j
Y
ResX (A(X), T − B(X)) = (T − B(αi )).
i

Démonstration. C’est une application directe du Théorème 2. 


√ 2

Exemple 12. On sait que 2 est racine√de X√ − 2, tout comme 3 est racine
2
de X − 3. Un polynôme ayant pour racine 2 + 3 est donné par
ResX (X 2 − 2, (T − X)2 − 3) = T 4 − 10T 2 + 1.

√ pas les racines de A et B, les quatre racines du


Ces opérations ne distinguent

résultant sont donc ± 2 ± 3.

Calcul du résultant bivarié. On dispose à l’heure actuelle d’algorithmes rapides


(de complexité quasi-optimale) pour le calcul du résultant univarié. Le meilleur
algorithme connu actuellement pour le calcul du résultant bivarié est une méthode
d’évaluation-interpolation qui se ramène au résultant univarié (voir l’exercice 9).
Cet algorithme n’est pas quasi-optimal. En revanche, pour les trois premières opé-
rations de la Proposition 4, des algorithmes quasi-optimaux à base de multiplication
rapide de séries existent, ils ont été présentés au Chapitre 4 (Section 3.6, page 67).
2. RÉSULTANT 107

2.5. Sous-résultants.

La croissance des coefficients dans l’algorithme d’Euclide. Le nombre d’opérations


dans le corps des coefficients n’est pas une mesure suffisante de la complexité des
calculs lorsque les opérations elles-mêmes ont une complexité variable. C’est le cas
pour le calcul de pgcd dans Q[X] et dans K(Y )[X]. Dans ces corps de coefficients,
on constate empiriquement les phénomènes suivants :
– l’algorithme d’Euclide amène à faire des divisions, et introduit des dénomi-
nateurs au cours du calcul ;
– la taille des coefficients croît rapidement ;
– ces coefficients peuvent souvent se « simplifier ».
Exemple 13. L’exécution de l’algorithme d’Euclide sur
A = 115X 5 + 7X 4 + 117X 3 + 30X 2 + 87X + 44,
B = 91X 4 + 155X 3 + 3X 2 + 143X + 115.
produit les restes successifs suivants :
3601622 3 1196501 2 151912 2340984
X − X + X+
8281 8281 637 8281
189886027626841 2 57448278681703 17501090665331
X − X−
12971681030884 3242920257721 3242920257721
3748556212578804983806085060 141833360915123969328014892
X+ .
4354148470945709877351001 334934497765054605950077
En simplifiant ces restes par des multiplications par des constantes bien choisies,
on obtient les restes :
3601622X 3 − 1196501X 2 + 1974856X + 2340984,
22930325761X 2 − 27749440252X − 8453612204,
288979986761465X + 142143002707719.
Il est souhaitable d’éviter le calcul sur les rationnels (ou les fractions ration-
nelles), pour lesquels l’addition requiert des calculs de multiplications et éventuel-
lement de pgcd. Une première idée consiste alors à éviter totalement les divisions
en utilisant des pseudo-restes.
Definition 2. Si A et B sont des polynômes de A[X] et b est le coefficient de
tête de B, le pseudo-reste R de A et B est défini par
bdeg A−deg B+1 A = QB + R,
où Q, R ∈ A[X] avec deg R < deg Q.
Remplacer les calculs de restes de l’algorithme d’Euclide par des calculs de
pseudo-restes évite d’introduire des dénominateurs. Cette idée seule n’est pas suf-
fisante : les coefficients de ces pseudo-restes croissent trop.
Exemple 14. Sur le même exemple, la modification de l’algorithme d’Euclide
produit la suite de pseudo-restes
3601622X 3 − 1196501X 2 + 1974856X + 2340984,
189886027626841X 2 − 229793114726812X − 70004362661324,
257057096083899261191107914552182660X
+126440823512296156588839626542149756.
108 7. PGCD ET RÉSULTANT

Sous-résultants(A,B)
Entrée : A et B dans A[X] avec deg B < deg A.
Sortie : Le dernier sous-résultant non nul.
1. f = g = s = 1
2. Tant que deg B > 0
(a) d = deg A − deg B
(b) R =pseudoReste(A, B)
(c) Si les degrés de A et B sont impairs, faire s = −s.
(d) Faire A := B et mettre dans B le quotient de la division
de R par f g d
(e) Prendre f :=coefficientDominant(A)
(f) Mettre à jour g en lui affectant le quotient de la division
de f d par g d−1
3. d = deg A ;
4. Renvoyer le quotient de la division de sB d par g d−1 .

Figure 6. L’algorithme des sous-résultants.

Une possibilité pour éviter cette croissance est de diviser ces polynômes par
le pgcd de leurs coefficients à chaque étape. C’est ce que nous avons fait dans
l’exemple 13 ci-dessus. On parle alors de suite de pseudo-restes primitifs. Cepen-
dant, ces calculs de pgcd de coefficients sont trop coûteux.
L’algorithme des sous-résultants donné en Figure 6 est une modification de l’al-
gorithme d’Euclide qui évite les divisions, tout en prévoyant des facteurs communs
qui apparaissent dans les coefficients de la suite des pseudo-restes de sorte à limiter
leur croissance. Ces pseudo-restes sont appelés des sous-résultants. Dans cet algo-
rithme, on se contente de renvoyer le dernier sous-résultant non nul ; on conçoit
aisément comment modifier l’algorithme pour obtenir n’importe quel sous-résultant
(spécifié par des conditions de degré, par exemple).
Exemple 15. Toujours sur les mêmes polynômes, la suite des sous-résultants
redonne les polynômes que nous avions déjà calculés par simplification :
3601622X 3 − 1196501X 2 + 1974856X + 2340984,
22930325761X 2 − 27749440252X − 8453612204,
288979986761465X + 142143002707719.
La suite des sous-résultants de cet exemple est donc primitive : les facteurs prédits
par l’algorithme du sous-résultant ont suffi à éliminer tout facteur commun entre
les coefficients des pseudo-restes.
Comme le résultant, les sous-résultants sont liés à la matrice de Sylvester et à
l’algorithme d’Euclide. Une formule de Cramer sur une sous-matrice de la matrice
de Sylvester donne le résultat suivant.
Proposition 5. Toutes les divisions effectuées au cours de l’algorithme des
sous-résultants sont exactes.

La preuve de ce résultat est technique et omise ici.


En corollaire, on remarque en outre qu’il est assez facile de déduire de ce ré-
sultat des estimations sur la « taille » des coefficients qui apparaissent au cours
3. ALGORITHME D’EUCLIDE RAPIDE 109

de l’algorithme. Un cas particulier intéressant est celui où A est l’anneau de poly-


nômes K[Y ]. Alors, si A et B ont des degrés totaux m et n, tous les sous-résultants
ont des degrés bornés par mn. Ces bornes permettent un calcul du résultant par
évaluation-interpolation dès que l’on dispose d’un algorithme efficace dans le cas
univarié.

Calcul de la paramétrisation. Les sous-résultants permettent de finir la « réso-


lution » (commencée en page 102) des systèmes de deux polynômes bivariés.
Pour simplifier, nous faisons l’hypothèse que pour tout x racine du résultant
R = ResY (A, B), il n’y a qu’un seul y tel que A(x, y) = B(x, y) = 0. Dans ce
cas, on peut montrer que le sous-résultant S1 (de degré 1 en Y ) est non nul ;
écrivons-le sous la forme S1 = P0 (X)Y + Q0 (X). Comme pour le résultant, il existe
des polynômes U et V dans K[X, Y ] tels qu’on ait l’égalité
AU + BV = P0 (X)Y + Q0 (X).
On en déduit donc que toutes les solutions (x, y) du système A = B = 0 satis-
font l’équation P0 (x)y = Q0 . Autrement dit, en écartant les solutions dégénérées
où P0 (x) = 0, on obtient l’ordonnée des points solutions en évaluant la fraction
rationnelle −Q0 /P0 sur les racines du résultant R. Autrement dit, cette procédure
permet de décrire les solutions du système sous la forme

y = Q(x)
R(x) = 0
Géométriquement, ce polynôme Q permet de retrouver y à partir de x, il permet
donc d’effectuer l’opération symbolisée sur la Figure 7, la paramétrisation des so-
lutions du système par les racines de R.

Figure 7. Paramétrisation des solutions d’un système algébrique


par les racines d’un résultant.

Exemple 16. Sur les mêmes polynômes qu’à l’exemple 8, le sous-résultant


redonne la paramétrisation calculée à partir de l’algorithme d’Euclide, mais en
étant plus économe dans les opérations sur les coefficients.

3. Algorithme d’Euclide rapide


Le point central de cette section est la présentation d’un algorithme rapide pour
le pgcd, qui est un algorithme récursif à base de multiplications et de divisions eu-
clidiennes rapides. Historiquement, c’est d’abord un algorithme rapide pour le pgcd
d’entiers (le « demi-pgcd ») qui est apparu, il a ensuite été étendu aux polynômes.
Nous décrivons maintenant l’algorithme dit du « demi-pgcd ». Pour simplifier, nous
nous plaçons dans le cas du pgcd de polynômes, mais cette approche s’étend au cas
des entiers.
110 7. PGCD ET RÉSULTANT

Soient donc A et B dans K[X], avec n = deg A et deg B < n (ce qui n’est pas une
forte restriction). Posons comme précédemment R0 = A, R1 = B. Soient ensuite Ri
les restes successifs de l’algorithme d’Euclide et soit en particulier RN = pgcd(A, B)
le dernier non nul d’entre eux. D’après les égalités en page 100, il existe une matrice
2 × 2 MA,B de cofacteurs telle que :
      
R0 UN VN R0 RN
MA,B = = .
R1 UN +1 VN +1 R1 0
L’algorithme de pgcd rapide calcule d’abord cette matrice ; à partir de là, on en
déduit aisément le pgcd, pour O(M(n)) opérations supplémentaires.
Notons qu’une étape de l’algorithme d’Euclide classique peut elle aussi s’écrire
sous une forme matricielle. En effet, si Qi est le quotient de la division de Ri−1 par
Ri , on peut écrire :     
0 1 Ri−1 Ri
= .
1 −Qi Ri Ri+1
Ainsi, la matrice MA,B est un produit de matrices élémentaires de ce type. Elle est
inversible.
3.1. Demi-pgcd : définition. Comme étape intermédiaire pour obtenir une
division euclidienne rapide, on utilise l’algorithme dit du « demi-pgcd » (half-gcd
en anglais, d’où la notation HGCD), qui permet de faire des « pas de géant » dans
la liste des restes successifs.
Le demi-pgcd est défini comme suit. Les degrés des restes successifs Ri dé-
croissent strictement, donc il existe un unique indice j tel que :
– deg Rj ≥ n2 ;
– deg Rj+1 < n2 .
On a vu en page 100 qu’il existe Uj , Vj , Uj+1 , Vj+1 tels que :
Uj R0 + Vj R1 = Rj et Uj+1 R0 + Vj+1 R1 = Rj+1 ,
ces polynômes étant en outre uniques si on rajoute les conditions de degré voulues
sur la relation de Bézout. Ceci peut se réécrire sous la forme matricielle suivante :
    
Uj Vj R0 Rj
= .
Uj+1 Vj+1 R1 Rj+1
Pour fixer les idées, en première approximation, on peut estimer que les polynômes
Uj , Vj , Uj+1 , Vj+1 ont des degrés de l’ordre de n2 (attention, ce n’est qu’une estima-
tion, pas une égalité).
Notons Mhgcd la matrice ci-dessus donnant les restes Rj et Rj+1 . L’algorithme
du demi-pgcd (noté HGCD ci-dessous) a pour vocation de calculer cette matrice.
Avant d’en étudier le fonctionnement, voyons comment il permet d’obtenir le calcul
du pgcd étendu. L’idée est qu’un appel à HGCD en degré n permet d’obtenir les
restes de degré approximativement n2 ; alors, un appel en degré n2 permet d’obtenir
les restes de degré approximativement n4 , et ainsi de suite jusqu’à trouver le pgcd.
L’algorithme est détaillé en Figure 8.
À l’étape 4, Rj et Rj+1 ont par définition des degrés qui encadrent n2 , mais
on n’a pas de borne supérieure sur le degré de Rj , qui peut être proche de n.
Aussi, pour obtenir deux polynômes de degré au plus n2 pour l’appel récursif, il est
nécessaire d’effectuer une étape de division euclidienne.
Soit H(n) la complexité de l’algorithme de demi-pgcd sur des entrées de degré
au plus n. Pour estimer la complexité de l’algorithme de pgcd rapide, on fait l’hy-
pothèse que H(n + n0 ) ≥ H(n) + H(n0 ) et que M(n) est négligeable devant H(n). Ces
hypothèses sont vérifiées pour l’algorithme proposé en Section 3.2.
Proposition 6. L’algorithme ci-dessus calcule MA,B en O(H(n)) opérations.
3. ALGORITHME D’EUCLIDE RAPIDE 111

Euclide via HGCD


Entrée : R0 = A et R1 = B dans K[X] avec deg B < deg A = n.
Sortie : La matrice MA,B .
1. Soit Mhgcd = HGCD(A, B).
2. Calculer Rj et Rj+1 .
3. Si Rj+1 = 0, renvoyer Mhgcd .
4. Soit M la matrice de la division euclidienne de Rj par
Rj+1 , et Rj+2 le reste correspondant.
5. Si Rj+2 = 0, renvoyer M Mhgcd .
6. Calculer MRj+1 ,Rj+2 par un appel récursif, et renvoyer
MRj+1 ,Rj+2 M Mhgcd .

Figure 8. Algorithme d’Euclide rapide via le demi-pgcd rapide.

Démonstration. La validité de l’algorithme est immédiate, puisque toutes les


matrices calculées ne sont au fond que des matrices qui font la transition de deux
restes successifs à deux autres restes successifs. Multiplier ces matrices permet de
composer ces opérations de transition.
Estimons la complexité. Le coût de l’appel à HGCD est H(n). Ensuite, toutes les
opérations des étapes 2 à 5 ont une complexité en O(M(n)), en utilisant pour l’étape
4 une division euclidienne rapide (cf. Théorème 1 en page 76). On effectue ensuite
un appel récursif, puis de nouveau des opérations dont le coût est en O(M(n)).
Ainsi, la complexité B(n) de l’algorithme de pgcd rapide satisfait à la récurrence :
B(n) ≤ B(n/2) + H(n) + CM(n),
C étant une constante. Le théorème « diviser pour régner » permet de conclure. 

Autrement dit, le coût du pgcd est, à une constante près, le même que celui du
demi-pgcd. Il devient donc légitime de se consacrer uniquement à ce dernier.

3.2. Demi-pgcd : algorithme. Pour mettre en place une stratégie « diviser


pour régner » pour le demi-pgcd, on utilise un moyen de « couper les polynômes »
en deux. L’idée est de ne garder que les coefficients de poids forts des polynômes
d’entrée et d’utiliser le fait que le quotient de la division euclidienne de deux po-
lynômes ne dépend que de leurs coefficients de poids fort, d’une façon tout à fait
quantifiée par la suite.
Remarquons qu’on accède aux coefficients de poids fort d’un polynôme en pre-
nant son quotient par un polynôme de la forme X k : par exemple, si A est
X 10 + 2X 9 + 5X 8 + 3X 7 + 11X 6 + · · · ,
le quotient de A par X 6 est
X 4 + 2X 3 + 5X 2 + 3X + 11.
Voyons comment cette idée permet d’obtenir notre algorithme. Étant donnés
deux polynômes A et B de degrés de l’ordre de n, on leur associe f et g de de-
gré approximativement n2 , en nommant f et g les quotients respectifs de A et B
n
par X 2 : on a jeté les coefficients de petits degrés.
On calcule la matrice M du demi-pgcd de f et g (moralement, les éléments de
cette matrice ont degré n4 ). La remarque ci-dessus permet de montrer qu’on obtient
ainsi une matrice de transition vers les restes de A et B eux-mêmes.
112 7. PGCD ET RÉSULTANT

HGCD
Entrée : A et B dans K[X], avec deg B < deg A = n.
Sortie : La matrice Mhgcd de A et B.
1. Soit m = d n2 e. Si deg B < m, renvoyer la matrice identité.
C’est terminé.
2. Soient f et g les quotients respectifs de A et B par X m .
f et g ont des degrés approximativement n/2.
3. Soient M = HGCD(f, g), et A0 , B 0 définis par
   0
A A
M = .
B B0
4. Si deg B 0 < m, renvoyer M .
C’est terminé.
5. Soient C 0 = A0 mod B 0 , et M 0 la matrice de la division euclidienne
correspondante.
Moralement, B 0 a un degré de l’ordre au pire de 3n
4 . Par contre, A
0

peut avoir un degré plus grand. L’étape de division euclidienne permet


de se ramener à des polynômes de degrés de l’ordre de 3n 4 .
6. Soient ` = 2m−deg B 0 , b et c les quotients respectifs de B 0 et C 0 par X ` .
` est de l’ordre de n4 , de sorte de b et c on des degrés de l’ordre n2 .
7. Soit M 00 = HGCD(b, c). Renvoyer la matrice M 00 M 0 M .

Figure 9. Algorithme du demi-pgcd rapide.

On applique donc cette matrice aux polynômes initiaux ; on obtient des restes
B 0 et C 0 dont les degrés sont de l’ordre de 3n
4 . On effectue alors une seconde fois le
même type d’opération, avec un appel récursif en degré n2 , pour gagner à nouveau n4 ,
et finalement arriver en degré n2 .
Les choix exacts des degrés de troncature sont subtils, et on admettra que les
valeurs données en Figure 9 permettent d’assurer la correction de l’algorithme.
Proposition 7. L’algorithme ci-dessus calcule la matrice du demi-pgcd de A
et B en O(M(n) log(n)) opérations dans K.
Démonstration. Comme indiqué plus haut, on admet que les choix des degrés
de troncature permettent d’assurer la validité de l’algorithme. Il est plus facile d’en
effectuer l’analyse de complexité. Le coût H(n) peut être majoré par deux fois le
coût en degré au plus n2 (les deux appels ont lieu aux lignes 3 et 7), plus un certain
nombre de multiplications de polynômes et une division euclidienne. En remarquant
que tous les produits se font en degré au pire n, on en déduit la récurrence
H(n) ≤ 2H(n/2) + CM(n),
où C est une constante. La conclusion découle comme d’habitude du lemme « diviser
pour régner ». 

3.3. Complément : calcul d’un reste choisi. On peut en tirer un raffi-


nement fort utile de l’algorithme de demi-pgcd : le calcul d’un reste particulier
(sélectionné par une condition de degré), ainsi que des cofacteurs associés.
Théorème 3. Soient R0 = A et R1 = B, avec deg A = n et deg B < deg A, et
soient Ri les restes successifs de l’algorithme d’Euclide appliqué à A et B.
EXERCICES 113

Soit ` < n, et Rj le premier reste de degré inférieur à `. On peut calculer Rj


et les cofacteurs associés Uj et Vj en O(M(n) log(n)) opérations de K.

Démonstration (succinte). Si ` est plus petit que n2 , on fait un appel à


HGCD pour se ramener en degré n2 , et on effectue un appel récursif. Si ` est plus
grand que n2 , on fait un appel à HGCD sur les polynômes divisés par X n−2` . 

3.4. Le cas des entiers. Les mêmes idées algorithmiques s’étendent au calcul
sur les entiers, mais il est beaucoup plus difficile d’écrire un algorithme correct dans
ce cas. On se contentera d’énoncer les résultats de complexité suivants :

Théorème 4. Soient R0 = A ∈ N, R1 = B ∈ N, avec B ≤ A et Ri les restes


de l’algorithme d’Euclide appliqué à A et B. On peut calculer :
– le pgcd de A et B,
– le premier reste inférieur à un entier ` < A,
ainsi que les cofacteurs associés en O(MZ (log A) log(log(A))) opérations binaires.

Exercices
Exercice 6 (Factorisation sans carré). Soit K unQcorps de caractéristique
nulle.
Q Si F ∈ K[X] se factorise en irréductibles comme i fiαi , le polynôme F =
i fi est appelé la partie sans carré de F . Si n = deg(F ), montrer qu’on peut
calculer les coefficients de la partie sans carré de F à partir des coefficients de F en
O(M(n) log n) opérations dans K.

Exercice 7. Soient f, g ∈ K[X] des polynômes unitaires.


1. Soit N ∈ N \ {0}. Montrer que l’unique polynôme unitaire de K[X] dont
les racines sont les puissances N -ièmes des racines de f peut être obtenu
par un calcul de résultant.
2. Si f est le polynôme minimal d’un nombre algébrique α, montrer qu’on
peut déterminer un polynôme annulateur de g(α) à l’aide d’un résultant.
√ √
3. Calculer le polynôme minimal sur Q de α = 3 4 + 3 2 + 1.

Exercice 8. Soit f ∈ K[X] un polynôme unitaire de degré d ≥ 1. Pour N ≥ 1,


on note GN (f ) l’unique polynôme unitaire de degré d dont les racines sont les
puissances N -ièmes des racines de f .
(a) Exprimer GN (f ) à l’aide d’un résultant de polynômes à deux variables.
(b) Justifier l’appartenance à K[X] du polynôme GN (f ).
(c) Utiliser (a) pour donner un algorithme pour le calcul de GN (f ) ; estimer
sa complexité.
(d) Montrer que G2 (f ) peut se calculer en O(M(d)) opérations dans K.
(e) Si N est une puissance entière de 2, montrer qu’on peut calculer GN (f ) en
O(M(d) log(N )) opérations dans K.

Exercice 9 (Résultants bivariés). Soient F, G ∈ K[X, Y ] ayant des degrés en X


et en Y bornés par un entier D ≥ 1. Montrer que le polynôme R(Y ) := ResX (F, G)
est de degré au plus 2D2 . Donner un algorithme de type évaluation-interpolation
pour le calcul des coefficients de R et estimer son coût en opérations dans K.
114 7. PGCD ET RÉSULTANT

Notes
L’introduction du résultant et des sous-résultants remonte à Bézout et Sylves-
ter [2, 32, 33]. Ces notions ont été revisitées en calcul formel dans les années 1965
par Collins [7, 8, 9], Brown et Traub [4, 5]. L’article de synthèse [35] retrace
leur histoire. De nombreuses propriétés des résultants et de l’algorithme d’Euclide
sont établies de manière élémentaire à l’aide des fonctions symétriques dans [18].
On peut consulter les livres [34, 10, 16], ou [17] pour une approche un peu plus
complète.
L’idée de base l’algorithme de demi-pgcd (le quotient de la division euclidienne
de deux entiers ne dépend que de leurs chiffres de poids fort) est due à Lehmer [19].
Knuth [15] en a fait le premier algorithme sous-quadratique, qui calcule le pgcd de
deux entiers de taille binaire n en complexité binaire O(MZ (n) log4 (n)). Schön-
hage [26] a montré comment abaisser cette complexité à O(MZ (n) log(n)). L’algo-
rithme de [26] a été adapté au cas polynomial par Moenck [23], mais seulement pour
le cas où la suite des restes est normale. Brent, Gustavson et Yun [12, 3] ont donné
un algorithme de type LKS (Lehmer-Knuth-Schönhage) pour le cas polynomial gé-
néral, de complexité arithmétique O(M(n) log(n)) en degré n. Cet algorithme utilise
O(n log n) opérations non scalaires. Strassen [30, 31] a montré que Ω(n log n) opé-
rations non scalaires sont aussi nécessaires, du moins pour une entrée générique,
donc l’algorithme LKS est optimal de ce point de vue.
Schwartz [28] a montré que le résultant de deux polynômes peut se calculer
également en O(M(n) log(n)) opérations arithmétiques. Dans [27], Schönhage a
donné un algorithme (probabiliste) pour le calcul rapide du pgcd de deux polynômes
de Z[X]. Pour deux polynômes de degré borné par n et coefficients d’au plus `
chiffres, l’algorithme a une complexité binaire Õ(n(n+`)), il est donc quasi-optimal
(en la taille binaire de l’entrée) lorsque ` > n.
L’exercice 6 est inspiré par [37], qui montre qu’il est possible de déterminer
toute la factorisation sans carré en la même complexité. L’article [38] prouve que
les problèmes du calcul du pgcd et de la factorisation sans carré sont équivalents
du points de vue de la complexité.
Il est très difficile de trouver une référence complète, lisible et sans erreur sur
les algorithmes de pgcd rapide. Le Chapitre 11 de [34] fournit une bonne partie
des résultats techniques implicitement utilisés dans la Section 3, mais l’algorithme
qu’il propose est erroné. Les notes du livre [36] nous ont beaucoup inspirés, mais
elles contiennent des erreurs pour le pgcd entier. On pourra également consulter
des articles plus récents [25, 29, 24].
Ces algorithmes de pgcd rapide sont aussi assez délicats à implanter de ma-
nière efficace. Par exemple, pour le pgcd de polynômes, une bonne implantation
doit prendre en compte les algorithmes de multiplication utilisés. Si on utilise la
FFT, il est possible d’économiser des transformées de Fourier directes et inverses ;
il faut alors régler le nombre de points d’évaluation en fonction des degrés du ré-
sultat final, et pas des résultats intermédiaires, etc. Si l’on travaille sur un corps
fini « raisonnable » (les coefficients faisant de quelques bits jusqu’à quelques di-
zaines voire centaines de bits), on peut estimer que le seuil au-delà duquel utiliser
l’algorithme rapide se situe autour des degrés 200 ou 300. Il faut noter que très
peu de systèmes disposent de telles implantations (c’est le cas pour Magma et la
bibliothèque NTL). En ce qui concerne le pgcd des entiers, la situation est sensi-
blement plus délicate, toujours à cause du problème des retenues (une bonne partie
des algorithmes présentés dans les ouvrages de référence sont incorrects, à cause de
ce problème). Pour donner une idée, dans les systèmes Magma, Mathematica, ou
des bibliothèques telles que GMP (code toujours en développement et utilisé entre
Bibliographie 115

autres par les entiers de Maple), le seuil se situe autour de nombres de 30 000 bits
(10 000 chiffres décimaux).
Le pgcd et le pgcd étendu peuvent aussi être définis dans un contexte non-
commutatif. Ils sont alors utiles au calcul avec des opérateurs différentiels ou de
récurrence. Le résultant différentiel de deux équations différentielles a été défini par
Berkovich et Tsirulik dans [1]. Chardin [6] a défini les sous-résultants de deux équa-
tions différentielles. Li [21, 22] a étendu la définition aux polynômes de Ore. On
trouve dans [11, 20] des algorithmes efficaces pour le calcul du pgcd de deux opéra-
teurs différentiels ; ces algorithmes ont été étendus aux sous-résultants dans [21, 22].
Dans [6], Chardin a donné une expression du résultant de deux équations différen-
tielles en termes de leurs solutions. Cela a été généralisé au cadre des polynômes
de Ore par Hong [13, 14].

Bibliographie
[1] Berkovich (L. M.) and Tsirulik (V. G.). – Differential resultants and some of their applications.
Differentsial0 nye Uravneniya, vol. 22, n‌5, , pp. 750–757, 914. – English translation in :
Differential Equations, Plenum Publ. Corp., Vol. 22, no. 5, pp. 530–536. NY Plenum 1986.
[2] Bézout (É.). – Recherches sur le degré des équations résultantes de l’évanouissement des
inconnues. Histoire de l’académie royale des science, , pp. 288–338.
[3] Brent (Richard P.), Gustavson (Fred G.), and Yun (David Y. Y.). – Fast solution of Toeplitz
systems of equations and computation of Padé approximants. J. Algorithms, vol. 1, n‌3, ,
pp. 259–295.
[4] Brown (W. S.). – On Euclid’s algorithm and the computation of polynomial greatest common
divisors. In SYMSAC ’71 : Proceedings of the second ACM symposium on Symbolic and
algebraic manipulation. pp. 195–211. – ACM, New York, NY, USA, .
[5] Brown (W. S.) and Traub (J. F.). – On Euclid’s algorithm and the theory of subresultants.
J. Assoc. Comput. Mach., vol. 18, , pp. 505–514.
[6] Chardin (Marc). – Differential resultants and subresultants. In Fundamentals of computation
theory (Gosen, 1991), pp. 180–189. – Springer, Berlin, .
[7] Collins (G. E.). – Polynomial remainder sequences and determinants. Amer. Math. Monthly,
vol. 73, , pp. 708–712.
[8] Collins (George E.). – Subresultants and reduced polynomial remainder sequences. J. Assoc.
Comput. Mach., vol. 14, , pp. 128–142.
[9] Collins (George E.). – The calculation of multivariate polynomial resultants. J. Assoc. Com-
put. Mach., vol. 18, , pp. 515–532.
[10] Geddes (Keith O.), Czapor (Stephen R.), and Labahn (George). – Algorithms for Computer
Algebra. – Kluwer Academic Publishers, .
[11] Grigoriev (D. Yu.). – Complexity of factoring and calculating the GCD of linear ordinary
differential operators. J. Symbolic Comput., vol. 10, n‌1, , pp. 7–37.
[12] Gustavson (Fred G.) and Yun (David Y. Y.). – Fast algorithms for rational Hermite approxi-
mation and solution of Toeplitz systems. IEEE Trans. Circuits and Systems, vol. 26, n‌9, ,
pp. 750–755.
[13] Hong (Hoon). – Ore principal subresultant coefficients in solutions. Appl. Algebra Engrg.
Comm. Comput., vol. 11, n‌3, , pp. 227–237.
[14] Hong (Hoon). – Ore subresultant coefficients in solutions. Appl. Algebra Engrg. Comm. Com-
put., vol. 12, n‌5, , pp. 421–428.
[15] Knuth (Donald E.). – The analysis of algorithms. In Actes du Congrès International des
Mathématiciens (Nice, 1970), Tome 3, pp. 269–274. – Gauthier-Villars, Paris, .
[16] Knuth (Donald E.). – The Art of Computer Programming. – Addison-Wesley Publishing Co.,
Reading, Mass., , 3rd edition, Computer Science and Information Processing, vol. 2 :
Seminumerical Algorithms, xiv+762p.
[17] Lang (Serge). – Algebra. – Springer-Verlag, New York, , third edition, Graduate Texts in
Mathematics, vol. 211, xvi+914p.
[18] Lascoux (Alain). – Symmetric functions and combinatorial operators on polynomials. – Publi-
shed for the Conference Board of the Mathematical Sciences, Washington, DC, , CBMS
Regional Conference Series in Mathematics, vol. 99, xii+268p.
116 7. PGCD ET RÉSULTANT

[19] Lehmer (D. H.). – Euclid’s Algorithm for Large Numbers. Amer. Math. Monthly, vol. 45, n‌4,
, pp. 227–233.
[20] Li (Z.) and Nemes (I.). – A modular algorithm for computing greatest common right divisors
of Ore polynomials. In ISSAC’97. pp. 282–289. – ACM, New York, .
[21] Li (Ziming). – A subresultant theory for Ore polynomials with applications. In ISSAC’98.
pp. 132–139. – ACM, New York, .
[22] Li (Ziming). – Greatest common right divisors, least common left multiples, and subresultants
of Ore polynomials. In Mathematics mechanization and applications, pp. 297–324. – Academic
Press, San Diego, CA, .
[23] Moenck (R. T.). – Fast computation of GCDs. In Fifth Annual ACM Symposium on Theory
of Computing (Austin, Tex., 1973), pp. 142–151. – Assoc. Comput. Mach., New York, .
[24] Möller (Niels). – On Schönhage’s algorithm and subquadratic integer GCD computation.
‌ 61, , pp. 589–607.
Mathematics of Computation, vol. 77, n2
[25] Pan (V. Y.) and Wang (X.). – Acceleration of Euclidean algorithm and extensions. In Mora
(Teo) (editor), ISSAC’02. pp. 207–213. – ACM, New York, .
[26] Schönhage (A.). – Schnelle Berechnung von Kettenbruchentwicklugen. Acta Inform., vol. 1,
, pp. 139–144.
[27] Schönhage (A.). – Probabilistic computation of integer polynomial GCDs. J. Algorithms,
vol. 9, n‌3, , pp. 365–371.
[28] Schwartz (J. T.). – Fast probabilistic algorithms for verification of polynomial identities. J.
Assoc. Comput. Mach., vol. 27, n‌4, , pp. 701–717.
[29] Stehlé (D.) and Zimmermann (P.). – A binary recursive Gcd algorithm. In ANTS-VI. Lecture
Notes in Computer Science, vol. 3076, pp. 411–425. – Springer, .
[30] Strassen (V.). – The computational complexity of continued fractions. In SYMSAC’81.
pp. 51–67. – ACM, New York, NY, USA, .
[31] Strassen (V.). – The computational complexity of continued fractions. SIAM J. Comput.,
vol. 12, n‌1, , pp. 1–27.
[32] Sylvester (James Joseph). – On rational derivation from equations of coexistence, that is
to say, a new and extended theory of elimination, 1839–40. In The Collected mathematical
papers of James Joseph Sylvester, pp. 40–53. – Baker, H. F., New York, .
[33] Sylvester (James Joseph). – A method of determining by mere inspection the derivatives from
two equations of any degree. Philos. Mag., vol. 16, n‌101, , pp. 132—135.
[34] von zur Gathen (Joachim) and Gerhard (Jürgen). – Modern computer algebra. – Cambridge
University Press, New York, , 2nd edition, xiv+785p.
[35] von zur Gathen (Joachim) and Lücking (Thomas). – Subresultants revisited. Theoret. Com-
‌ -3, , pp. 199–239.
put. Sci., vol. 297, n1
[36] Yap (Chee). – Fundamental Problems in Algorithmic Algebra. – Oxford Univ. Press, .
[37] Yun (David Y.Y.). – On square-free decomposition algorithms. In SYMSAC’76. pp. 26–35. –
ACM, New York, NY, USA, .
[38] Yun (David Y.Y.). – On the equivalence of polynomial GCD and squarefree factorization
problems. In Proc. of the MACSYMA Users’ Conference, pp. 65–70. – .
CHAPITRE 8

Algorithmique des séries D-finies

Résumé
Les séries D-finies se manipulent plus rapidement que les séries arbi-
traires. L’équation différentielle linéaire les définissant fournit une struc-
ture de données adaptée sur laquelle plusieurs opérations utiles sont al-
gorithmiques. En particulier, la multiplication de deux séries D-finies
s’effectue en temps linéaire.

Les séries D-finies (c’est-à-dire solutions d’équations différentielles linéaires à


coefficients polynomiaux) ont des coefficients qui satisfont une récurrence linéaire,
ce qui permet d’en calculer les N premiers en O(N ) opérations, donc plus vite que
la plupart des autres séries. Il est de ce fait crucial de reconnaître les séries qui
sont D-finies et de disposer des équations différentielles les définissant. De plus,
les coefficients des séries D-finies forment des suites qui sont appelées P-récursives,
dont l’algorithmique est évidemment étroitement liée à celle des séries D-finies.
L’importance de ces séries et suites provient en grande partie de leur omnipré-
sence dans les applications. Ainsi, le Handbook of Mathematical Functions, référence
importante en physique, chimie et mathématiques appliquées, comporte environ
60% de fonctions solutions d’équations différentielles linéaires ; de même, les suites
P-récursives forment environ un quart des plus de 100 000 suites référencées dans
la version en ligne de l’Encyclopedia of Integer Sequences de N. Sloane.
Enfin, l’algorithmique de ces séries permet la preuve automatique d’identités,
présentée dans ce chapitre dans le cas univarié. La généralisation au cadre multivarié
est traitée dans les chapitres de la troisième partie.

1. Équations différentielles et récurrences


1.1. Définitions. Si K désigne un corps, l’anneau des séries formelles à co-
efficients dans K est noté K[[X]]. Ses principales propriétés ont été présentées au
Chapitre 4. Son corps des fractions, noté K((X)), est égal à K[[X]][1/X]. Ses élé-
ments sont appelés des séries de Laurent formelles. C’est une algèbre non seulement
sur K, mais aussi sur le corps des fractions rationnelles K(X).
Definition 1. Une série formelle A(X) à coefficients dans un corps K est
dite différentiellement finie (ou D-finie) lorsque ses dérivées successives A, A0 , . . .,
engendrent un espace vectoriel de dimension finie sur le corps K(X) des fractions
rationnelles.
De manière équivalente, cette série est solution d’une équation différentielle li-
néaire à coefficients dans K(X) : si c’est le cas, alors l’équation différentielle permet
de récrire toute dérivée d’ordre supérieur à celui de l’équation en termes des déri-
vées d’ordre moindre (en nombre borné par l’ordre). À l’inverse, si l’espace est de
dimension finie, alors pour m suffisamment grand, A, A0 , . . . , A(m) sont liées, et une
relation de liaison entre ces dérivées est une équation différentielle linéaire.
Definition 2. Une suite (an )n≥0 d’éléments d’un corps K est appelée suite
polynomialement récursive (ou P-récursive) si elle satisfait à une récurrence de la
117
118 8. ALGORITHMIQUE DES SÉRIES D-FINIES

forme
(1) pd (n)an+d + pd−1 (n)an+d−1 + · · · + p0 (n)an = 0, n ≥ 0,
où les pi sont des polynômes de K[X].
Dans la suite, K aura toujours caractéristique nulle. On peut donc penser sans
rien perdre aux idées à K = Q.
Exemple 1. Le cas particulier des récurrences d’ordre 1 (d = 1) donne lieu
aux suites hypergéométriques, qui jouent un rôle important dans les algorithmes de
sommation symbolique, abordés aux Chapitres 24 et 25.
1.2. Conversion. Le résultat qu’il s’agit de considérer d’un point de vue al-
gorithmique est le suivant. Il s’agit d’un analogue du Lemme 2 au Chapitre 5.
Théorème 1. Une série formelle est D-finie si et seulement si la suite de ses
coefficients est P-récursive.
Démonstration. Soit A(X) = a0 + a1 X + · · · une série D-finie et
(2) q0 (X)A(m) (X) + · · · + qm (X)A(X) = 0
une équation différentielle qui l’annule. En notant [X n ]f (X) le coefficient de X n
dans la série f (X) avec la convention que ce coefficient est nul pour n < 0, on a
pour n ≥ 0
(3) [X n ]f 0 (X) = (n + 1)[X n+1 ]f (X), [X n ]X k f (X) = [X n−k ]f (X).
Par conséquent, l’extraction du coefficient de X n de (2) fournit une récurrence
linéaire sur les an valide pour tout n ≥ 0 avec la convention ak = 0 pour
k < 0. Pour obtenir une récurrence de la forme (1) il faut décaler les indices
de n0 := max0≤i≤m (deg qi +i−m) s’il est strictement positif. Les équations obtenues
alors pour les indices moindres fournissent des contraintes linéaires sur les premiers
coefficients an pour qu’ils correspondent aux coefficients d’une série solution de (2).
À l’inverse, soit (an ) une suite vérifiant la récurrence (1). Les identités analogues
à (3) sont maintenant
 k
X
k n d X
n an X = X A(X), an+k X n = (A(X)−a0 −· · ·−ak−1 X k−1 )/X k ,
dX
n≥0 n≥0
d k
où A est la série génératrice des coefficients an et la notation ( dX ) signifie que
d n
l’opérateur dX est appliqué k fois. En multipliant (1) par X et en sommant pour
n allant de 0 à ∞, puis en multipliant par une puissance de X on obtient donc une
équation différentielle linéaire de la forme
q0 (X)A(d) (X) + · · · + qd (X)A(X) = p(X),
où le membre droit provient des conditions initiales. Il est alors possible, quitte à
augmenter l’ordre de l’équation de 1, de faire disparaître ce membre droit, par une
dérivation et une combinaison linéaire. 
Exemple 2. L’équation A0 − X k A = 0 (k ∈ N) donne la récurrence linéaire
(n + 1)an+1 − an−k = 0 valide pour tout n ≥ 0, avec la convention que les an
d’indice négatif sont nuls. On en déduit que a0 est libre, puis les contraintes a1 =
· · · = ak = 0, et les coefficients suivants sont fournis par la récurrence décalée
(n + k + 1)an+k+1 − an = 0, valide pour n ≥ 0. On reconnaît ainsi les coefficients
de a0 exp(X k+1 /(k + 1)).
Exercice 1. Retrouver la récurrence satisfaite par la suite 1/n! à partir de
l’équation A0 = A, et réciproquement.
1. ÉQUATIONS DIFFÉRENTIELLES ET RÉCURRENCES 119

Exercice 2. Calculer une équation différentielle linéaire satisfaite par la série


génératrice des nombres de Fibonacci.
Exercice 3. Estimer la complexité d’un algorithme direct utilisant cette idée
en nombre d’opérations dans K.
Un algorithme plus efficace pour passer d’une équation différentielle d’ordre
élevé à la récurrence linéaire satisfaite par les coefficients des solutions est donnée
en §1.4.

1.3. Exemples d’applications.


Exemple 3. Pour calculer le coefficient de X 1000 dans
(1 + X)1000 (1 + X + X 2 )500 ,
une méthode efficace part de l’observation que ce polynôme vérifie l’équation diffé-
rentielle linéaire du premier ordre
y0 1 2X + 1
= 1000 + 500 .
y 1+X 1 + X + X2
Il s’ensuit que les coefficients de ce polynôme vérifient une récurrence d’ordre 3 à
coefficients de degré 1. La méthode de scindage binaire présentée au Chapitre 13
permet alors un calcul très rapide.
Exemple 4. Pour calculer une racine du polynôme PN (X) défini par la série
génératrice
X
Zn

X 1+Z
Pn (X) = ,
n! 1 + Z2
n≥0

lorsque N est grand, il n’est pas nécessaire de calculer ce polynôme. Il suffit d’ob-
server que cette série vérifie une équation différentielle linéaire d’ordre 1 (avec X en
paramètre), ainsi que la série génératrice des dérivées des Pn , et d’utiliser les récur-
rences que l’on en déduit sur ces polynômes pour en calculer des valeurs. Ces valeurs
permettent alors d’appliquer la méthode de Newton, par exemple pour résoudre le
polynôme. Cette idée peut aussi être combinée avec la méthode de scindage binaire
du Chapitre 13.
1.4. ? Algorithme rapide pour la conversion ?. Vue l’efficacité obtenue
grâce au passage de l’équation différentielle à la récurrence, il est souhaitable de
maîtriser le coût de cette conversion. Il est possible d’obtenir la récurrence plus
efficacement que par la méthode naïve, en mettant en œuvre des techniques qui
exploitent la multiplication rapide.
d
1.4.1. Cas d’un opérateur donné en θ = X dX . Si l’équation différentielle li-
néaire de départ est donnée non pas comme un polynôme en X et d/dX, mais
d
comme un polynôme en X et θ = X dX (θ est parfois appelé l’opérateur d’Eu-
ler ), alors la conversion en récurrence est assez facile : l’application de l’opérateur
différentiel X
pi,j X j θi ,
0≤j≤m
0≤i≤d

à une série A(X) suivie de l’extraction du coefficient de X n donne au vu des rela-


tions (3) la récurrence
X
pi,j (n − j)i an−j = 0.
De cette conversion découle le résultat de complexité suivant.
120 8. ALGORITHMIQUE DES SÉRIES D-FINIES

Proposition 1. La récurrence satisfaite par les coefficients des séries solutions


d
d’une équation différentielle linéaire de degré d en θ = X dX et m en X se calcule
en O(m M(d)) opérations sur les coefficients.
Par rapport au nombre dm de coefficients du résultat, cette complexité est
quasi-optimale.
La preuve utilise la formule ci-dessus et l’observation que calculer les coefficients
du polynôme P (X − j) connaissant ceux du polynôme P (X) de degré d ne requiert
que O(M(d)) opérations, par exemple en utilisant la somme composée (Chapitre 4).
1.4.2. Cas général. Quitte à le multiplier au préalable par une puissance de
X égale au plus à son degré en ∂ = d/dX, il est toujours possible de récrire un
polynôme en X et ∂ en un polynôme en X et θ. Cette récriture peut elle-même être
effectuée assez rapidement.
Une première observation est que de la commutation
(θ − i)X i = X i θ
se déduit par multiplication à droite par ∂ i la relation
X i+1 ∂ i+1 = (θ − i)X i ∂ i = (θ − i)(θ − i + 1) · · · θ.
Étant donnés des polynômes pi (X) de degré au plus m+d, il s’agit donc maintenant
de calculer des polynômes qi (X) tels que
d
X d
X d
X
pi (X)X i ∂ i = pi (X)(θ − i + 1) · · · θ = qi (X)θi .
i=0 i=0 i=0

Récrire le polynôme sous la forme


m+d
X d
X
Xj pi,j X i ∂ i
j=0 i=0

s’effectue en nombre linéaire d’opérations et montre qu’il suffit de savoir traiter


efficacement le cas où les pi (et donc aussi les qi ) sont constants. La transition des
uns vers les autres se calcule alors par évaluation-interpolation sur θ = 0, 1, 2, . . . .
Soit P le polynôme à calculer. Les premières identités obtenues par évaluation sont
X X
p0 = q0 , p0 + p1 = qi , p0 + 2p1 + 2p2 = 2i qi ,

et plus généralement
X X P (i)
eX pi X i = X i,
i!
ce qui montre que les valeurs de P en 0, . . . , d peuvent être obtenues en O(M(d))
opérations à partir des coefficients pi , et donc les coefficients de P en O(M(d) log d)
opérations, par interpolation rapide, en utilisant les techniques du Chapitre 6.
Théorème 2. Le calcul des N premiers termes d’une série solution d’une
équation différentielle linéaire d’ordre d à coefficients des polynômes de degré au
plus m requiert un nombre d’opérations arithmétiques borné par
  
N
O (m + d) M(d) log d + .
d
La première partie de l’estimation provient des estimations ci-dessus, la seconde
de la complexité du calcul des N premiers termes d’une suite solution d’une récur-
rence linéaire d’ordre au plus m + d avec des coefficients de degré au plus d, vue au
Chapitre 13.
2. PROPRIÉTÉS DE CLÔTURE 121

2. Propriétés de clôture
Les séries D-finies jouissent de propriétés de clôture. En ce sens, elles sont un
analogue différentiel des nombres algébriques. Ces propriétés de clôture généralisent
celles sur les suites récurrentes linéaires à coefficients constants (srlcc) évoquées en
Section 5.2 du Chapitre 5.

2.1. Somme et produit.

Théorème 3. L’ensemble des séries D-finies à coefficients dans un corps K


est une algèbre sur K. L’ensemble des suites P-récursives d’éléments de K est aussi
une algèbre sur K.

Une conséquence algorithmique fondamentale de ce théorème est le fait que les


séries D-finies peuvent être multipliées plus rapidement que les séries arbitraires,
en complexité linéaire.

Corollaire 1. Soient A, B ∈ K[[X]] deux séries D-finies, solutions d’équa-


tions différentielles d’ordre O(1) à coefficients polynomiaux de degré O(1). On peut
calculer le produit AB mod X N en O(N ) opérations dans K.

Démonstration. Les preuves pour les suites et les séries sont similaires. Les
preuves pour les sommes sont plus faciles que pour les produits, mais dans le même
esprit. Nous ne donnons donc que la preuve pour le produit C = AB de deux séries
D-finies A et B. Par la formule de Leibniz, toutes les dérivées de C s’écrivent comme
combinaisons linéaires de produits entre une dérivée A(i) de A et une dérivée B (j)
de B. Les dérivées de A et de B étant engendrées par un nombre fini d’entre elles,
il en va de même pour les produits A(i) B (j) , ce qui prouve la D-finitude de C. 

Exercice 4. Faire la preuve pour le cas du produit de suites P-récursives.

Cette preuve donne également un algorithme pour trouver l’équation diffé-


rentielle (resp. la récurrence) cherchée : il suffit de calculer les dérivées (resp. les
décalées) successives en les récrivant sur un ensemble fini de générateurs. Une fois
leur nombre suffisant (c’est-à-dire au pire égal à la dimension plus 1), il existe une
relation linéaire entre elles. À partir de la matrice dont les lignes contiennent les
coordonnées des dérivées successives (resp. des décalés successifs) sur cet ensemble
fini de générateurs, la détermination de cette relation se réduit alors à celle du
noyau de la transposée. Le calcul se ramène donc ultimement à la résolution d’un
système linéaire à coefficients dans K[X], ce qui peut se faire efficacement grâce à
l’algorithme de Storjohann (Chapitre 14).

Exemple 5. Voici comment prouver (et même découvrir) l’identité


X k! X 2k+2
arcsin(X)2 = 1
 1 2k + 2 .

k≥0 2 ··· k + 2

Le calcul consiste à partir d’une équation satisfaite par arcsin(X), en déduire une
équation satisfaite par son carré, traduire cette équation en récurrence sur les coeffi-
cients, et conclure en constatant que cette récurrence est satisfaite par les coefficients
de la série. √
Le point de départ est la propriété (arcsin(X))0 = 1/ 1 − X 2 , qui permet
de représenter arcsin par l’équation différentielle (1 − X 2 )y 00 − Xy 0 = 0 avec les
conditions initiales y(0) = 0, y 0 (0) = 1.
122 8. ALGORITHMIQUE DES SÉRIES D-FINIES

Ensuite, en posant h = y 2 , les dérivations et réductions successives donnent


h0 = 2yy 0 ,
2X
h00 = 2y 02 + 2yy 00 = 2y 02 + yy 0 ,
1 − X2
4X 2
 
2X 2
h000 = 4y 0 y 00 + (y 02
+ yy 00
) + + yy 0 ,
1 − X2 1 − X2 (1 − X 2 )2
2X 2 4X 2
 
4X 2 2X
= + + + yy 0 + y 02 .
1 − X2 (1 − X 2 )2 1 − X2 (1 − X 2 )2 1 − X2
Les quatre vecteurs h, h0 , h00 , h000 sont combinaisons linéaires des trois vecteurs y 2 ,
yy 0 , y 02 . Ils sont donc liés et une relation de liaison s’obtient en calculant le noyau
de la matrice 3 × 4 qui découle de ce système. Le résultat est
(1 − X 2 )h000 − 3Xh00 − h0 = 0.
La récurrence qui s’en déduit est
(n + 1)(n + 2)(n + 3)an+3 − (n + 1)3 an+1 = 0.
Comme le facteur (n + 1) ne s’annule pas sur N, il est possible de simplifier pour
obtenir la récurrence équivalente
(n + 2)(n + 3)an+3 − (n + 1)2 an+1 = 0.
Si le membre droit de l’identité n’était pas connu, il serait possible de le déterminer
grâce à cette récurrence à deux termes. Lorsque le membre droit est donné, la
vérification que les coefficients de la série ci-dessus vérifient cette identité est facile.
En outre, la preuve du théorème 2 permet de borner l’ordre des équations :
l’ordre de l’équation satisfaite par une somme est borné par la somme des ordres
des équations satisfaites par les sommants, et l’ordre de l’équation satisfaite par
un produit est borné par le produit des ordres. On en déduit alors un algorithme
simple de preuve d’identités.
Exemple 6. L’identité de Cassini sur les nombres de Fibonacci s’écrit
2
Fn+2 Fn − Fn+1 = (−1)n .
Pour prouver cette égalité, le point de départ est simplement la récurrence définis-
sant les nombres de Fibonacci :
Fn+2 = Fn+1 + Fn ,
qui exprime que tous les décalés de Fn sont des combinaisons linéaires de Fn et
Fn+1 . Les produits qui interviennent dans l’identité de Cassini s’expriment donc a
priori comme combinaison linéaire de Fn2 , Fn Fn+1 et Fn+1 2
et donc le membre de
gauche vérifie une récurrence d’ordre borné par 4. Le membre droit vérifiant une
récurrence d’ordre 1, leur différence vérifie une récurrence d’ordre au plus 5. Il n’est
pas nécessaire de calculer cette récurrence. Il suffit de vérifier que ses 5 conditions
initiales sont nulles. Autrement dit, vérifier l’identité pour n = 0, . . . , 4 la prouve !
Si le membre droit n’est pas donné, on calcule la récurrence satisfaite par le
membre gauche en récrivant ses décalés sur les générateurs Fn+1 Fn , Fn2 , Fn+1 2
:
2
un = Fn+2 Fn − Fn+1 = Fn+1 Fn + Fn2 − Fn+1
2
,
2 2 2
un+1 = Fn+2 Fn+1 + Fn+1 − Fn+2 = Fn+1 − Fn2 − Fn Fn+1
= −un .
et on conclut en observant que u0 = 1.
Exercice 5. De la même manière, montrer que sin2 X + cos2 X = 1, avec et
sans calcul.
3. SÉRIES ALGÉBRIQUES 123

2.2. Produit d’Hadamard.


n n
P P
Corollaire 2. Si A = n≥0 an X et B = n≥0 bn X sont deux séries
D-finies, alors leur produit d’Hadamard
X
A B= an bn X n
n≥0

l’est aussi.
La preuve est également un algorithme : des deux équations différentielles se
déduisent deux récurrences satisfaites par les suites (an ) et (bn ) ; d’après la section
précédente, le produit (an bn ) vérifie alors une récurrence linéaire, dont se déduit
enfin l’équation différentielle satisfaite par sa série génératrice.
Exemple 7. Les polynômes orthogonaux de Hermite ont pour série génératrice
X Zn
Hn (X) = exp(Z(2X − Z)).
n!
n≥0

À partir de là, la détermination du membre droit de l’identité suivante due à Mehler


est entièrement algorithmique :
 
4Z(XY −Z(X 2 +Y 2 ))
X Z n exp 1−4Z 2
Hn (X)Hn (Y ) = √ .
n! 1 − 4Z 2
n≥0

Exemple 8. Si l’intégrale
Z ∞
2
I(t) = e−xt f (x) dx,
−∞
peut être calculée à partir du développement de Taylor de f en intervertissant
sommation et intégration, alors I(t) est D-finie si f l’est. Il en va de même pour la
transformée de Laplace ou la transformée de Fourier.
Exercice 6. Montrer que dans les mêmes conditions, f est D-finie si I l’est,
et donner un algorithme pour calculer une équation différentielle linéaire satisfaite
par f à partir d’une équation satisfaite par I.

3. Séries algébriques
Definition 3. Une série formelle F (X) ∈ K[[X]] est une série algébrique lors-
qu’il existe un polynôme non nul P (X, Y ) ∈ K[X, Y ] tel que P (X, F (X)) = 0.
Théorème 4. Si la série F (X) annule un polynôme P (X, Y ) de degré d en Y ,
alors elle est solution d’une équation différentielle linéaire d’ordre au plus d.
Démonstration. La preuve est algorithmique. Quitte à diviser d’abord P par
son pgcd avec sa dérivée PY par rapport à Y , il est possible de le supposer premier
avec PY (car la caractéristique est nulle !). En dérivant P (X, Y ) = 0 et en isolant
Y 0 , il vient
PX
Y0 =− .
PY
Par inversion modulaire de PY (voir le Chapitre 7), cette identité se récrit via un
calcul de pgcd étendu en
Y 0 = R1 (Y ) mod P,
où R1 est un polynôme en Y de degré au plus d et à coefficients dans K(X). Ceci si-
gnifie que Y 0 s’écrit comme combinaison linéaire de 1, Y, Y 2 , . . . , Y d−1 à coefficients
dans K(X). Dériver à nouveau cette équation, puis récrire Y 0 et prendre le reste de la
124 8. ALGORITHMIQUE DES SÉRIES D-FINIES

division par P mène à nouveau à une telle combinaison linéaire pour Y 00 et plus gé-
néralement pour les dérivées successives de Y . Les d+1 vecteurs Y, Y 0 , . . . , Y (d) sont
donc linéairement dépendants et la relation de liaison est l’équation cherchée. 
Exemple 9. Les dénombrements d’arbres mènent naturellement à des équa-
tions algébriques sur les séries génératrices. Ainsi, la série génératrice C(X) des
nombres de Catalan (nombre d’arbres binaires à n sommets internes) vérifie
C = 1 + XC 2 ;
la série génératrice M (X) des nombres de Motzkin (nombre d’arbres unaires-
binaires à n sommets internes) vérifie
M = 1 + XM + XM 2 .
Dans les deux cas, il est aisé d’obtenir d’abord une équation différentielle puis une
récurrence qui permet de calculer efficacement ces nombres par scindage binaire.
Dans le cas des nombres de Catalan, la récurrence est d’ordre 1, la suite est donc
hypergéométrique et s’exprime aisément.
Exercice 7. Trouver une formule explicite des nombres de Catalan. Récrire
les fonctions Γ qui pourraient apparaître dans le résultat en termes de factorielles,
puis de coefficient binomial.
Exercice 8. À l’aide d’un système de calcul formel, calculer une récurrence
linéaire satisfaite par les coefficients de la série Y (X) solution de
Y = 1 + XY + XY 7 .
Les mêmes arguments que ci-dessus mènent à une autre propriété de clôture
des séries D-finies.
Corollaire 3. Si F est une série D-finie et A une série algébrique sans terme
constant, alors F ◦ A est D-finie.
La preuve consiste à observer que les dérivées successives de F ◦ A s’expriment
comme combinaisons linéaires des F (i) (A)Aj pour un nombre fini de dérivées de F
(par D-finitude) et de puissances de A (par la même preuve que pour le théorème 4).
Cette preuve fournit encore un algorithme.
Exemple 10. À l’aide d’un système de calcul formel, calculer une récurrence
linéaire satisfaite par les coefficients du développement en série de Taylor de
 √ 
1 − 1 − 4X
exp .
2
R
Corollaire 4. Si A est une série algébrique, alors exp A est D-finie.
Exercice 9. Faire la preuve.

4. ? Au-delà ?
En général, la composition de deux séries D-finies n’est pas D-finie. Voici trois
résultats plus forts, dont la preuve repose sur la théorie de Galois différentielle et
dépasse le cadre de ce cours.
Théorème 5. Soient A et F deux séries de K[[X]].
1. Les séries F et 1/F sont simultanément D-finies si et seulement si F 0 /F
est algébrique.
R
2. Les séries F et exp( F ) sont simultanément D-finies si et seulement si F
est algébrique.
EXERCICES 125

3. Soit A algébrique de genre supérieur ou égal à 1, alors F et A ◦ F sont


D-finies si et seulement si F est algébrique.
Exercice 10. Prouver le sens « si » de ces trois propriétés.

Exercices
Exercice 11. Parmi les suites données par les termes généraux suivants, in-
diquer celles qui sont P-récursives et celles qui ne le sont pas :
1 n 1 1
2n ,
 cos n, 22 , Hn = 1 + + · · · + , blog nc.
n
2 n
Parmi les fonctions dont la valeur en x est donnée par les termes suivants,
indiquer celles qui sont D-finies et celles qui ne le sont pas :
√ 1 n
3 X
 Y X i X
2
exp 3 1 − X , , X , F n , tan(X).
1 − Xi n!
i≥1 i≥0 n≥0

(Fn désigne le n-ième nombre de Fibonacci, dont la suite vérifie Fn+2 = Fn+1 + Fn
et F1 = F0 = 1.)
Exercice 12.
1. Soit (an )n≥0 une suite P-récursive d’éléments d’un corps de caractéris-
tique 0. Montrer que les suites extraites (a2n )n≥0 et (a2n+1 )n≥0 sont éga-
lement P-récursives.
2. Soit (gn )n≥0 une suite dont la série génératrice exponentielle est
X Xn exp(−X/2 − X 2 /4)
gn = √ .
n! 1−X
n≥0

Montrer que la suite (gn )n≥0 satisfait à une récurrence linéaire homogène,
d’ordre au plus 3 et à coefficients polynomiaux de degrés au plus 2. La
récurrence n’est pas demandée explicitement.
3. Si N > 0, quel est le coût binaire, en fonction de N , du calcul de gN ?
Exercice 13 (Opérations de clôture pour les équations différentielles linéaires
à coefficients constants). Soient f (X) et g(X) solutions des équations différentielles
linéaires homogènes
am f (m) (X) + · · · + a0 f (X) = 0, bn g (n) (X) + · · · + b0 g(X) = 0,
avec a0 , . . . , am , b0 , . . . , bn des coefficients rationnels.
1. Montrer que f (X)g(X) et f (X) + g(X) sont solutions d’équations différen-
tielles du même type.
Si le polynôme am X m + · · · + a0 se factorise sur C en
am (X − α1 )d1 · · · (X − αk )dk ,
on rappelle qu’une base de l’espace des solutions de
am f (m) (X) + · · · + a0 f (X) = 0
est donnée par e 1 , Xeα1 X , . . . , X d1 −1 eα1 X , . . . , eαk X , Xeαk X , . . . , X dk −1 eαk X .
 αX

2. Montrer qu’une équation satisfaite par f (X) + g(X) peut être calculée à
l’aide de l’algorithme d’Euclide.
3. Montrer qu’une équation satisfaite par f (X)g(X) peut être obtenue par un
calcul de résultant.
126 8. ALGORITHMIQUE DES SÉRIES D-FINIES

Exercice 14 (Puissance symétrique d’équation différentielle). Soient m et d


deux entiers naturels et soient a(X), b(X) deux polynômes dans Q[X] de degrés au
plus d.
1. Montrer qu’il existe une équation différentielle Em linéaire homogène
d’ordre m + 1, à coefficients dans Q[X], qui admet φ(X)m comme solu-
tion, quelle que soit la solution φ(X) de l’équation différentielle
(E1 ) y 00 (X) + a(X)y 0 (X) + b(X)y(X) = 0.
On admettra que pour toute base (φ1 , φ2 ) de solutions de E1 , les fonctions
φi1 φm−i
2 , i = 0, . . . , m sont linéairement indépendantes.
2. Montrer que si a = 0, alors E2 : y 000 (X) + 4b(X)y 0 (X) + 2b0 (X)y(X) = 0.
3. Expliciter un algorithme pour calculer Em , en ramenant le calcul final à un
calcul sur des matrices de polynômes.
4. Estimer la complexité de cet algorithme en nombres d’opérations dans Q
en fonction de m et d.
5. Pour m fixé, on associe à une fonction y de X des fonctions Lk par les
valeurs initiales
L0 (X) = y(X), L1 (X) = y 0 (X)
et la relation de récurrence
Lk+1 (X) = L0k (X) + ka(X)Lk (X) + k(m − k + 1)b(X)Lk−1 (X).
(a) Montrer que lorsque y = φm , pour 0 ≤ k ≤ m,
Lk (X) = m(m − 1) . . . (m − k + 1)φm−k (X)φ0 (X)k ,
et Lm+1 (X) = 0.
(b) Montrer que Lm+1 (X) = 0 n’est autre que l’équation Em .
(c) En déduire des bornes sur les degrés des coefficients de Em et un
algorithme de complexité O(m3 M(d)) pour le calcul de Em .
?
6. Montrer que si a, b ∈ Q, alors Em est à coefficients constants et qu’on
peut calculer Em en O(M(m) log m) opérations dans Q.

Notes
Les propriétés de clôture des séries D-finies ont été décrites avec leurs applica-
tions par Stanley dans [12] ainsi que dans son livre [13], et par Lipshitz dans [8].
L’utilisation des séries D-finies pour les séries algébriques en combinatoire est
exploitée à de nombreuses reprises par Comtet dans son livre [5], où il utilise l’al-
gorithme décrit dans la preuve du Théorème 4. L’histoire de cet algorithme est
compliquée. Il était connu d’Abel qui l’avait rédigé dans un manuscrit de 1827
qui n’a pas été publié. Ce manuscrit est décrit (p. 287) dans les œuvres complètes
d’Abel [1]. Ensuite, ce résultat a été retrouvé par Sir James Cockle en 1860 et po-
pularisé par le révérend Harley en 1862 [6]. Quelques années plus tard, il est encore
retrouvé par Tannery [14] dans sa thèse, dont le manuscrit est remarquablement
clair et disponible sur le web (à l’url http://gallica.bnf.fr). Pour le calcul du
développement de séries algébriques, il faut tenir compte de l’ordre assez élevé des
équations obtenues [4], ce qui rend cet algorithme utile pour des très grandes pré-
cisions, l’itération de Newton du Chapitre 4 étant préférable pour des précisions
modérées.
Les limitations de la dernière section ne sont pas très connues. Elles sont dues
à Harris et Sibuya pour la première [7] et à Singer pour les deux autres [10].
Bibliographie 127

En ce qui concerne les algorithmes et les implantations, la plupart des algo-


rithmes présentés dans ce chapitre sont implantés dans le package gfun de Maple [9].
L’algorithme rapide de la Section 1.4 provient essentiellement de [3], qui donne une
variante légèrement plus efficace (d’un facteur constant).

Bibliographie
[1] Abel (Niels Henrik). – Œuvres complètes. Tome II. – Éditions Jacques Gabay, Sceaux, ,
vi+716p. Edited and with notes by L. Sylow and S. Lie, Reprint of the second (1881) edition.
Disponible en ligne à http://gallica.bnf.fr.
[2] Abramowitz (Milton) and Stegun (Irene A.) (editors). – Handbook of mathematical functions
with formulas, graphs, and mathematical tables. – Dover Publications Inc., New York, ,
xiv+1046p. Reprint of the 1972 edition.
[3] Bostan (Alin). – Algorithmique efficace pour des opérations de base en Calcul formel. – PhD
thesis, École polytechnique, December .
[4] Bostan (Alin), Chyzak (Frédéric), Lecerf (Grégoire), Salvy (Bruno), and Schost (Éric). –
Differential equations for algebraic functions. In ISSAC’07. pp. 25–32. – ACM Press, .
[5] Comtet (L.). – Analyse Combinatoire. – PUF, Paris, . 2 volumes.
[6] Harley (Rev. Robert). – On the theory of the transcendental solution of algebraic equations.
Quarterly Journal of Pure and Applied Mathematics, vol. 5, , pp. 337–360.
[7] Harris (William A.) and Sibuya (Yasutaka). – The reciprocals of solutions of linear ordinary
differential equations. Advances in Mathematics, vol. 58, n‌2, , pp. 119–132.
[8] Lipshitz (L.). – D-finite power series. Journal of Algebra, vol. 122, n2
‌ , , pp. 353–373.
[9] Salvy (Bruno) and Zimmermann (Paul). – Gfun : a Maple package for the manipulation
of generating and holonomic functions in one variable. ACM Transactions on Mathematical
Software, vol. 20, n‌2, , pp. 163–177.
[10] Singer (Michael F.). – Algebraic relations among solutions of linear differential equations.
Transactions of the American Mathematical Society, vol. 295, n‌2, , pp. 753–763.
[11] Sloane (N. J. A.). – The On-Line Encyclopedia of Integer Sequences. – . Published
electronically at http://www.research.att.com/˜njas/sequences/.
[12] Stanley (R. P.). – Differentiably finite power series. European Journal of Combinatorics,
vol. 1, n‌2, , pp. 175–188.
[13] Stanley (Richard P.). – Enumerative combinatorics. – Cambridge University Press, ,
vol. 2, xii+581p.
[14] Tannery (Jules). – Propriétés des intégrales des équations différentielles linéaires à coeffi-
cients variables. – Thèse de doctorat ès sciences mathématiques, Faculté des Sciences de
Paris, . Disponible en ligne à http://gallica.bnf.fr.
CHAPITRE 9

Approximants de Padé et de Padé-Hermite

Résumé
L’algorithme d’Euclide étendu permet le calcul d’approximants de Padé.
Plus généralement, il permet la reconstruction des fractions rationnelles.
Les approximants de Padé-Hermite sont une généralisation des approxi-
mants de Padé. Leur calcul peut s’effectuer grâce à un algorithme
qui peut être vu comme une généralisation de l’algorithme d’Euclide
étendu. L’approximation de Padé-Hermite rend possible la reconstruc-
tion d’équations linéaires à coefficients polynomiaux reliant des séries
formelles.

Un premier problème abordé dans ce chapitre est le calcul d’approximants


de Padé. Plus généralement, on s’intéresse à la reconstruction rationnelle, dont un
autre cas particulier important est l’interpolation des fractions rationnelles. En Sec-
tion 1, nous ramenons la reconstruction rationnelle à l’algorithme d’Euclide étendu,
et l’appliquons à la reconnaissance d’une suite récurrente linéaire à partir de ses
premiers termes (algorithme de Berlekamp-Massey). Les applications en sont nom-
breuses : pour la résolution de systèmes différentiels à coefficients constants (Cha-
pitre 15), pour le calcul de polynômes minimaux de matrices creuses (Chapitre 10),
pour la résolution de systèmes linéaires à coefficients polynomiaux (Chapitre 14).
Un second problème, traité en Section 2, est le calcul d’approximants de Padé-
Hermite. Il peut s’effectuer grâce à un algorithme qui généralise celui pour le calcul
des approximants de Padé. L’approximation de Padé-Hermite permet d’effectuer la
reconstruction de polynômes annulant une série algébrique, et d’opérateurs diffé-
rentiels annulant une série D-finie. Il permet également de deviner une récurrence à
coefficients polynomiaux d’ordre arbitraire à partir des premiers termes de la suite.

1. Reconstruction rationnelle
Definition 1. Soit K un corps, A ∈ K[X] un polynôme de degré n > 0 et
B ∈ K[X] de degré < n. Pour un k ∈ {1, . . . , n} fixé, la reconstruction rationnelle
de B modulo A est la recherche d’un couple de polynômes (R, V ) ∈ K[X]2 vérifiant :
R
(RR) pgcd(V, A) = 1, deg(R) < k, deg(V ) ≤ n − k et ≡ B mod A.
V
On parle d’approximation
Q de Padé lorsque A = X n , et d’interpolation de Cauchy
lorsque A = i (X − ui ) avec u1 , . . . , un ∈ K deux à deux distincts.
Remarque. Si k = n, alors clairement (R, V ) = (B, 1) est une solution du
problème (RR).
Si k < n, il est possible que (RR) n’admette aucune solution. C’est le cas par
exemple en prenant n = 3, k = 2 et A = X 3 , B = X 2 + 1 ∈ K[X]. En effet, si
V (X) = aX + b avec b 6= 0, alors R ≡ (aX + b)(X 2 + 1) = bX 2 + aX + b mod X 3 ,
ce qui est incompatible avec deg(R) ≤ 1.
Par ailleurs, si (RR) admet une solution (R, V ), alors la fraction rationnelle R/V
est forcément unique. En effet, si (R1 , V1 ) ∈ K[X]2 est une autre solution de (RR),
alors R1 /V1 ≡ R/V mod A, donc A divise R1 V − V1 R. Or, le polynôme R1 V − V1 R
129
130 9. APPROXIMANTS DE PADÉ ET DE PADÉ-HERMITE

ayant un degré strictement inférieur à celui de A, il doit être identiquement nul.


Donc les fractions R/V et R1 /V1 coïncident.

Un problème plus simple. Si R, V ∈ K[X] sont tels que (R, V ) est solution du
problème (RR), alors (R, V ) vérifie aussi le problème plus simple
(RRS) deg(R) < k, deg(V ) ≤ n − k et R ≡ V B mod A,
où, à la différence de (RR), on a mis de côté la contrainte sur le pgcd de A et de V .
Remarquons tout de suite que le problème (RRS) admet toujours une solution
non triviale (R, V ) 6= (0, 0) : en effet, il se traduit en termes d’algèbre linéaire en un
système linéaire homogène ayant k + (n − k + 1) = n + 1 inconnues (les coefficients
de R et de V ) et n équations. Par ailleurs, la solution R/V du problème (RRS)
est encore unique (même idée de preuve que pour (RR) : si A divise à la fois
R − V B et R1 − V1 B, alors il divise également la combinaison linéaire RV1 − R1 V =
(R − V B)V1 − (R1 − V1 B)V ).
Lien avec le pgcd étendu. Nous allons prouver en §1.1 que le problème (RRS)
peut être résolu en utilisant l’algorithme d’Euclide étendu AEE en page 101. Nous
allons en déduire ensuite une procédure de décision et calcul pour (RR).
L’intuition du lien entre le problème (RRS) et le calcul du pgcd étendu s’ap-
puie sur la remarque simple suivante : la congruence R ≡ V B mod A équivaut à
l’existence d’un polynôme U tel que R = U A + V B ; or, cette dernière égalité est
une relation de type Bézout.
Pour préciser un peu cette remarque, traitons brièvement le problème (RRS)
dans le cas particulier k = 1. Si A et B sont premiers entre eux, alors on prend
R = 1 et la relation de Bézout R = U A + V B avec deg(V ) < deg(A) = n fournit la
réponse. Sinon, on prend R = 0, et comme le ppcm de A et B a un degré < m+n, le
polynôme V = ppcm(A, B)/B est de degré au plus n − 1 et vérifie V B = 0 mod A.

1.1. Calcul de la reconstruction rationnelle. Rappelons que l’algorithme


d’Euclide étendu (AEE, page 101) calcule une suite de restes successifs dont le degré
décroît, ainsi qu’une suite de cofacteurs (Ui , Vi ). Les éléments de la i-ième itération
vérifient l’identité de Bézout Ui A + Vi B = Ri . L’écriture matricielle de l’itération
     
Ui Vi 0 1 Ui−1 Vi−1
= ×
Ui+1 Vi+1 1 −Qi Ui Vi
permet de déduire aisément que Ui Vi+1 − Vi Ui+1 = (−1)i quel que soit i, et en
particulier que Ui et Vi sont premiers entre eux. Cela entraîne également que
pgcd(Ri , Vi ) = pgcd(A, Vi ).
La clé du résultat principal de cette section (Théorème 1 ci-dessous) est le
lemme suivant, qui montre que les cofacteurs Vi dans l’algorithme AEE ont des
degrés modérés et bien maîtrisés.
Lemme 1. Soient n0 := deg(A) > n1 := deg(B) > n2 > . . . > n` les degrés des
restes Ri dans AEE(A, B). Alors :
(1) deg(Vi ) = n − ni−1 pour 1 ≤ i ≤ ` + 1.
Démonstration. On procède par récurrence complète sur i. L’initialisation
est claire, puisque deg(V1 ) = 0. Prouvons maintenant que si l’égalité (1) est vérifiée
pour 1 ≤ i ≤ k, alors elle l’est aussi pour i = k + 1.
On part de l’observation que deg(Vk−1 ) = n − nk−2 < n − nk−1 = deg(Vk ), qui
implique que le degré de Vk+1 = Vk−1 − Qk Vk est égal à deg(Qk Vk ) = deg(Qk ) +
deg(Vk ) = (nk−1 − nk ) + (n − nk−1 ) = n − nk . 
1. RECONSTRUCTION RATIONNELLE 131

Remarque. Dans une situation « générique », les quotients successifs Qi ont


tous degré 1, et donc ni+1 = ni − 1 (la suite des restes est appelée normale), si bien
que le lemme précédent implique l’égalité deg(Vi ) = i − 1.
Nous sommes en mesure de prouver que le problème de reconstruction ration-
nelle (RR) peut être résolu à l’aide de l’algorithme AEE.
Théorème 1. Soit A ∈ K[X] de degré n > 0 et soit B ∈ K[X] de degré < n.
Soit k ∈ {1, 2, . . . , n} et soit (Rj , Uj , Vj ) la j-ième ligne dans AEE(A, B), où j est
choisi minimal tel que deg(Rj ) < k.
1. Il existe une solution (R, V ) 6= (0, 0) de (RRS), à savoir (R, V ) = (Rj , Vj ).
Si, de plus, pgcd(Rj , Vj ) = 1, alors (R, V ) est aussi solution de (RR).
2. Si (RR) admet une solution et si R/V ∈ K(X) en est une forme irréductible,
alors il existe une constante α ∈ K \ {0} telle que R = αRj et V = αVj .
Le problème (RR) admet donc une solution si et seulement si pgcd(A, Vj ) = 1.
Démonstration. Par construction, Rj vaut bien Uj A+Vj B ≡ Vj B modulo A.
Par ailleurs, le Lemme 1 montre que le degré de Vj vaut n − deg(Rj−1 ) et est donc
borné par n − k (par la minimalité de j). Donc (R, V ) = (Rj , Vj ) vérifie bien (RRS).
De plus, le pgcd(A, Vj ) est égal au pgcd(Rj , Vj ). Par conséquent, si ce dernier
vaut 1, alors Vj est inversible modulo A et donc (R, V ) = (Rj , Vj ) vérifie aussi (RR).
L’unicité (à une constante près) est plus délicate à prouver. Supposons que
(R, V ) est une solution de (RR). Alors R s’écrit U A+V B pour un certain U ∈ K[X].
Nous allons prouver que (R, V ) = (αRj , αVj ) pour un certain α ∈ K[X] \ {0}.
Commençons par montrer l’égalité Uj V = U Vj . Supposons le contraire et consi-
dérons le système linéaire
     
Uj Vj A Rj
× = .
U V B R
Le système étant supposé de Cramer, A s’écrit comme quotient de deux détermi-
nants
Rj Vj  Uj Vj
A= .
R V U V
L’hypothèse deg(Rj ) < k ≤ deg(Rj−1 ) et le Lemme 1 entraînent que le degré du
membre droit de l’égalité précédente est majoré par
deg(Rj V − RVj ) ≤ max{k − 1 + deg(V ), deg(R) + n − deg(Rj−1 )}
≤ max{n − 1, (k − 1) + n − deg(Rj−1 )} = n − 1,
ce qui contredit deg(A) = n. Nous avons donc bien l’égalité Uj V = U Vj . Celle-ci
implique que Vj divise Uj V , et puisque Uj et Vj sont premiers entre eux, il s’ensuit
que Vj divise V . En écrivant V = αVj , avec α ∈ K[X], on obtient U Vj = V Uj =
αUj Vj , et donc U = αUj . Enfin, R = U A + V B = α(Uj A + Vj B) = αRj .
Les polynômes R et V étant premiers entre eux, il s’ensuit que α est une
constante de K \ {0}, et que donc pgcd(Rj , Vj ) = 1. 
L’algorithme qui s’ensuit est donné en Figure 1 ; à noter la ressemblance avec
l’algorithme AEE.
1.2. Approximants de Padé. On rappelle que si n > 0, k ∈ {1, 2, . . . , n}
et si B ∈ K[X] est de degré < n, alors un approximant de Padé pour B de type
(k − 1, n − k) est une fraction rationnelle R/V ∈ K[X] telle que
R
(2) X 6 | V, deg(R) < k, deg(V ) ≤ n − k et ≡ B mod X n .
V
Le Théorème 1 (pour A = X n ) entraîne la conséquence suivante.
132 9. APPROXIMANTS DE PADÉ ET DE PADÉ-HERMITE

ARR(A, B, k)
Entrée : A, B ∈ K[X] avec n = deg(A) > deg(B), et k ∈ {1, . . . , n}.
Sortie : Une solution (R, V ) de (RR), ou 0 si une telle solution n’existe pas.
1. R0 := A ; U0 := 1 ; V0 := 0 ; R1 := B ; U1 := 0 ; V1 := 1 ; i := 1.
2. Tant que deg(Ri ) ≥ k, faire :
(Qi , Ri+1 ) := QuotRem(Ri−1 , Ri ) ; # la division euclidienne
Ui+1 := Ui−1 − Qi Ui ; Vi+1 := Vi−1 − Qi Vi ;
i := i + 1
3. Si pgcd(A, Vi ) = 1, renvoyer (Ri , Vi ) ; sinon renvoyer 0.

Figure 1. Algorithme de reconstruction rationnelle.

Berlekamp-Massey
Entrée : Une borne N ∈ N sur le degré du polynôme minimal de la
suite (an )n≥0 et les 2N premiers termes a0 , . . . , a2N −1 ∈ K.
Sortie : Le polynôme générateur minimal de (an )n≥0 .
1. A := a0 + a1 X + · · · + a2N −1 X 2N −1 .
2. Calculer R, V ∈ K[X] la solution de (3) telle que V (0) = 1.
3. d := max{1 + deg(R), deg(V )}. Renvoyer V̄ := V (1/X)X d .

Figure 2. L’algorithme de Berlekamp-Massey.

Corollaire 1. Soit B ∈ K[X] de degré < n. Soit (Rj , Uj , Vj ) la j-ième ligne


dans AEE(X n , B), où j est choisi minimal tel que deg(Rj ) < k. Alors :
1. L’équation (2) admet une solution si et seulement si pgcd(Rj , Vj ) = 1.
2. Si pgcd(Rj , Vj ) = 1, alors Rj /Vj est l’unique approximant de Padé pour B
de type (k − 1, n − k).

L’algorithme qui s’en déduit est un cas particulier de l’algorithme ARR, en prenant
A = X n et en remplaçant le test pgcd(A, Vi ) = 1 de l’étape (3) par Vi (0) 6= 0.

1.3. Algorithme de Berlekamp-Massey. L’algorithme décrit dans cette


section permet de deviner des récurrences à coefficients constants d’ordre arbitraire
à partir de termes consécutifs de la suite.
On se donne dans un corps K les 2N premiers éléments d’une suite récurrente
linéaire (an )n≥0 pour laquelle on sait qu’il existe un polynôme caractéristique de
degré d ≤ N , c’est-à-dire un polynôme
f (X) = fd X d + · · · + f0 , tel que fd an+d + · · · + f0 an = 0, pour tous n ≥ 0.
Le problème est de calculer le polynôme minimal (i.e. le polynôme caractéristique
de degré minimal) de (an )n≥0 . Le Lemme 2 (page 80) montre que ce calcul équivaut
à la résolution du problème de Padé
R
(3) ≡ A mod X 2N , X 6 | V, deg(R) < N, deg(V ) ≤ N et pgcd(R, V ) = 1.
V
En effet, il implique que (R, V ) = (N0 , P̄ ) est solution de (3). L’algorithme qui s’en
déduit est donné en Figure 2.
1. RECONSTRUCTION RATIONNELLE 133

1.4. Interpolation rationnelle de Cauchy. L’interpolation des fractions


rationnelles, appelée aussi interpolation de Cauchy, est une généralisation naturelle
de l’interpolation polynomiale (de Lagrange).
Soient k ∈ {1, . . . , n}, v0 , . . . , vn−1 ∈ K et soient u0 , . . . , un−1 des points dis-
tincts de K. On cherche une fraction rationnelle R/V ∈ K(X) avec R, V ∈ K[X]
satisfaisant aux contraintes
R(ui )
(4) V (ui ) 6= 0, = vi pour 0 ≤ i < n, deg(R) < k, deg(V ) ≤ n − k.
V (ui )

Le problème (4) est un cas particulier de reconstruction rationnelle. En effet,


si l’on note B ∈ K[X] l’unique polynôme de degré < n tel que B(ui ) = vi , alors (4)
équivaut à la reconstruction rationnelle de B modulo A := (X − u0 ) · · · (X − un−1 ).
Le Théorème 1 implique la procédure de décision et de calcul suivante : on
calcule le polynôme interpolant B et le polynôme A = (X − u0 ) · · · (X − un−1 ). On
calcule les éléments (Rj , Vj ) de la j-ième ligne de AEE(A, B) avec j minimal tel que
deg(Rj ) < k. Si pgcd(A, Vj ) = 1, alors Rj /Vj est l’unique forme canonique de la
fraction rationnelle cherchée. Sinon, le problème (4) n’a pas de solution.
Une application importante de l’interpolation rationnelle est la reconnaissance
de récurrences linéaires d’ordre 1 à coefficients polynomiaux.
Corollaire 2 (Devinette de récurrences hypergéométriques). Soit (an ) une
suite d’éléments non nuls de K vérifiant la récurrence p1 (n)an+1 +p0 (n)pn = 0, dont
les coefficients (inconnus) p0 (X) et p1 (X) sont des polynômes de K[X], premiers
entre eux. Si l’on connaît une borne d sur le degré de p0 et de p1 telle que p0 (j) 6= 0
pour 0 ≤ j ≤ 2d + 1, alors on peut déterminer p0 et p1 par un calcul d’interpolation
rationnelle, à partir des 2d + 1 premiers termes de la suite (an ).
1.5. Algorithmes rapides. En combinant les résultats du Théorème 1 ci-
dessus, du Théorème 3 en page 112, et du Chapitre 6 pour le calcul rapide des
polynômes A et B définis en Section 1.4, on déduit le résultat de complexité suivant.
Théorème 2. Soient A ∈ K[X] de degré n > 0, B ∈ K[X] de degré < n
et k ∈ {1, 2, . . . , n}. Soient v0 , . . . , vn−1 ∈ K, et soient u0 , . . . , un−1 des points
distincts de K. Il est possible de calculer en O(M(n) log n) opérations dans K :
1. une solution du problème reconstruction rationnelle (RR) ;
2. un approximant de Padé pour B de type (k − 1, n − k) ;
3. une fraction rationnelle F = R/V ∈ K(X) telle que deg(V ) ≤ n − k,
deg(R) < k, et F (ui ) = vi pour 0 ≤ i < n.

Le cas entier. L’analogue pour les entiers de la reconstruction rationnelle est


également calculable en complexité quasi-optimale. Si n et B sont deux entiers,
0 ≤ B < n, et étant donné k ≤ n, il s’agit de calculer des entiers R et V tels que
R n
(5) pgcd(n, V ) = 1 et B= mod n, |R| < k, 0≤V ≤ .
V k
Théorème 3. À partir de k, n et B, on peut calculer R et V satisfaisant à (5)
en O(MZ (log n) log log n) opérations binaires.

Le cas des récurrences. Une conséquence utile du Théorème 2 à la reconnaissance


rapide des suites est contenue dans le corollaire suivant. Sa généralisation aux cas
des suites P-récursives arbitraires sera traitée en Section 2.
Corollaire 3. Soit (an ) une suite d’éléments de K vérifiant
– soit une récurrence linéaire à coefficients constants d’ordre au plus N ;
134 9. APPROXIMANTS DE PADÉ ET DE PADÉ-HERMITE

– soit une récurrence linéaire d’ordre 1 à coefficients polynomiaux de degré au


plus N .
À partir des premiers 2N + 1 termes de la suite, on peut retrouver les coefficients
de la récurrence en O(M(N ) log N ) opérations dans K.

2. Approximants de Padé-Hermite
Definition 2. Soit F = t (f1 , . . . , fn ) un vecteur de n ≥ 1 séries formelles
de K[[X]], et soit d = (d1 , . . . , dn ) ∈ Nn . Un vecteur non nul P = (P1 , . . . , Pn ) de
polynômes de K[X] est appelé approximant de Padé-Hermite de type d de F si :
Pn
1. La valuation
P val(P · F) de la série P · F = i=1 Pi fi est au moins égale à
σ := (di + 1) − 1 ;
2. deg(Pi ) ≤ di pour tout 1 ≤ i ≤ n.
L’entier σ est alors appelé l’ordre de l’approximant.
Exemple 1. Dans la terminologie de la section précédente, si R/V ∈ K(X)
est un approximant de Padé de type (k, n − k) de B ∈ K[[X]], alors (R, V ) est un
approximant de Padé-Hermite pour (−1, B), de type (k, n − k).
Exercice 1. Soient A, B deux polynômes de K[X], avec n = deg(A) > deg(B).
Montrer que (R, V ) est solution du problème de reconstruction rationnelle (RRS)
défini en page 130 si et seulement s’il existe un polynôme U ∈ K[X] tel que (R, V, U )
soit un approximant de Padé-Hermite de (−1, B, A) de type (k − 1, n − k, n − 1).
Le premier résultat de cette section montre l’existence des approximants de
Padé-Hermite et fournit également un premier algorithme pour leur calcul.
Théorème 4. Tout vecteur de séries formelles F = (f1 , . . . , fn ) ∈ K[[X]]n
admet un approximant de Padé-Hermite de type d = (d1 , . . . , dn ) ∈ Nn donné.
Démonstration. On procède par coefficients indéterminés : en écrivant Pi =
Pdi j
P
j=0 pi,j X , on obtient un système linéaire homogène à σ = i (di + 1) − 1 équa-
tions en les σ + 1 inconnues pi,j . Puisqu’il a moins d’équations que d’inconnues, ce
système admet forcément une solution non triviale. 
L’algorithme qui découle de la preuve du Théorème 4 repose sur la recherche
d’un élément non trivial dans le noyau d’une matrice à coefficients dans K, de taille
σ ×(σ +1). En utilisant les résultats du Chapitre 3, on aboutit donc à un algorithme
de complexité O(MM(σ)) = O(σ θ ) pour 2 ≤ θ ≤ 3.
Le but de la suite de ce chapitre est de présenter un algorithme plus efficace,
dû à Derksen, de complexité seulement quadratique en σ. En anticipant un peu,
cet algorithme revient à effectuer une sorte de pivot de Gauss sur une matrice à
coefficients dans K[X], mais de taille bien plus petite que σ (seulement linéaire en
max(d)). Dans le cas particulier n = 2, l’algorithme de Derksen a essentiellement la
même complexité que le calcul d’approximants de Padé via l’algorithme d’Euclide
étendu vu en Section 1.
2.1. Algorithme de Derksen : idées et résultats préliminaires. Pour
simplifier la présentation, on se restreint dans la suite au cas où le type de l’ap-
proximant cherché est de la forme d = (d, . . . , d) ∈ Nn , pour un certain d ∈ N.
L’idée de l’algorithme de Derksen est de construire non pas un seul approximant
de Padé-Hermite, mais toute une famille de tels approximants, et cela de manière
incrémentale. Plus exactement, pour s = 0, 1, . . ., il construit une base d’une forme
spéciale, appelée « base minimale », du K[X]-module
Vs := {P ∈ K[X]n | val(P · F) ≥ s}.
2. APPROXIMANTS DE PADÉ-HERMITE 135

Comme nous le verrons plus loin, une telle base de Vσ pour σ = nd+n−1 contiendra
alors nécessairement un approximant de Padé-Hermite de type d = (d, . . . , d) de F.
Observons que, grâce aux inclusions X s K[X]n ⊆ Vs ⊆ K[X]n , le module Vs est
libre de rang n. Précisons ce que l’on entend par « base minimale ». Pour ce faire,
introduisons d’abord une notion de degré et de type d’un vecteur de polynômes.
Definition 3 (degré et type d’un vecteur de polynômes). Pour un vecteur de
polynômes P = (P1 , . . . , Pn ) ∈ K[X]n , son degré deg(P) et son type type(P) sont
donnés par :
deg(P) = max{deg(P1 ), . . . , deg(Pn )} et type(P) = max{i | deg(P) = deg(Pi )}.
Definition 4 (base minimale). Soit V ⊆ K[X]n un sous-module libre de
rang n. Une suite Q1 , . . . , Qn est appelée « base minimale » de V si, pour tout i, le
vecteur Qi est non nul, de type i, et de degré minimal parmi les éléments de V \ {0}
de type i.
Le résultat suivant précise le lien entre une base minimale et l’approximation
de Padé-Hermite.
Lemme 2. Soit d ≥ 1. Supposons que Q1 , . . . , Qn est une base minimale de
Vnd+n−1 . Soit ` tel que deg(Q` ) est minimal. Alors Q` est un approximant de
Padé-Hermite de type (d, . . . , d) pour F.
Démonstration. Le Théorème 4 montre l’existence d’un vecteur non nul P
de Vnd+n−1 tel que deg(P) ≤ d. Soit i le type de P. La suite d’inégalités
deg(Q` ) ≤ deg(Qi ) ≤ deg(P) ≤ d,
prouve que Q` est un approximant de Padé-Hermite de type (d, . . . , d) de F. 
Le résultat suivant montre qu’une base minimale est nécessairement une base
du K[X]-module V au sens usuel.
Théorème 5. Soit V ⊆ K[X]n un sous-module libre de rang n. Toute base
minimale de V est une base du K[X]-module V .
Démonstration. Montrons d’abord qu’il s’agit d’un système de générateurs.
Soit W := K[X]Q1 + · · · + K[X]Qn ⊆ V . On suppose par l’absurde que V 6= W.
Soit P ∈ V \ W un élément minimal dans V \ W pour l’ordre P < Q défini par
deg(P) < deg(Q), ou
(6)
deg(P) = deg(Q) et type(P) < type(Q).
Autrement dit, P est de type minimal parmi les éléments de degré minimal de
V \ W.
Soit i le type de P. Les relations type(P) = type(Qi ) et deg(P) ≥ deg(Qi )
entraînent l’existence d’un monôme q ∈ K[X] de degré deg(q) = deg(P) − deg(Qi )
tel que type(P − qQi ) < type(P). Puisque deg(P − qQi ) ≤ deg(P), on obtient que
P − qQi < P.
Par la minimalité de P, il s’ensuit que P − qQi appartient à W , donc P ∈ W , ce
qui contredit le choix de P.
P Pour conclure la preuve, montrons que les Qi forment une famille libre. Si
i ai Qi = 0 est une combinaison polynomiale nulle des Qi , on a que pour tout i,
le vecteur ai Qi est de type i. L’assertion découle du lemme suivant. 
Lemme 3. Si P, Q ont types distincts, alors type(P+Q) ∈ {type(P), type(Q)}.
Démonstration. Supposons j = type(P) > i = type(Q). Si deg(P) ≥
deg(Q), alors type(P + Q) = j et si deg(P) < deg(Q), alors type(P + Q) = i. 
136 9. APPROXIMANTS DE PADÉ ET DE PADÉ-HERMITE

2.2. Algorithme de Derksen : fonctionnement. L’idée de l’algorithme


est de construire de proche en proche une base minimale de Vs , partant de la base
minimale des Qk = (0, 0, . . . , 0, 1, 0, . . . , 0) (avec 1 en position k) de V0 . D’après le
Lemme 2, l’élément de degré minimal dans une base minimale de Vnd+n−1 fournit
un approximant de Padé-Hermite de type (d, . . . , d) de F.
Le résultat suivant montre comment construire une base minimale de Vs+1 à
partir d’une base minimale de Vs , et il constituera le cœur de l’itération.
Théorème 6. Soit Q1 , . . . , Qn une base minimale de
Vs = {P ∈ K[X]n | val(P · F) ≥ s}.
1. Si val(Qi · F) ≥ s + 1 quel que soit i, alors Vs+1 et Vs coïncident, et
{Q1 , . . . , Qn } est une base minimale de Vs+1 .
2. Supposons que 1 ≤ i ≤ n est tel que les deux conditions suivantes soient
réunies :
– val(Qi · F) = s ;
– si val(Q` · F) = s pour un ` 6= i, alors Qi < Q` , où < est l’ordre (6).
Alors :
(a) pour ` 6= i, il existe un scalaire λ` ∈ K tel que Q̃` := Q` − λ` Qi vérifie
val(Q̃` · F) > s ;
(b) en posant Q̃i = XQi , la suite Q̃1 , . . . , Q̃n forme une base minimale
de Vs+1 .
Démonstration. (1) L’inclusion Vs+1 ⊆ Vs est évidente, et inversement, P le
Théorème 5 montreP que tout P ∈ V s s’écrit comme combinaison linéaire a Q
i i i.
Ainsi P · F = i ai (Qi · F) est de valuation au moins s + 1, donc P ∈ Vs+1 .
(2a) Si val(Q` ·F) > s, on pose λ` = 0 ; si val(Q` ·F) = s, alors Q` ·F = c` X s +· · ·
et Qi · F = ci X s + · · · , avec ci 6= 0, et alors λ` := c` /ci convient.
Pour (2b), commençons par montrer que Q̃1 , . . . , Q̃i−1 , Qi , Q̃i+1 , . . . , Q̃n reste
une base minimale de Vs . Il suffit pour cela de montrer que pour ` 6= i, le vecteur Q̃`
a même type et même degré que Q` . Si val(Q` · F) > s, cela est évident, car λ` = 0
et donc Q̃` = Q` . Sinon, le choix de i assure que Q` > Qi , et donc Q` et Q` − λ` Qi
ont même degré et même type.
Montrons maintenant que (Q̃1 , . . . , Q̃n ) est une base minimale de Vs+1 . Comme
la multiplication par un polynôme ne change pas le type, celui de Q̃i = XQi est
bien i. Il suffit donc de montrer que si P ∈ Vs+1 est de type ` ∈ {1, 2, . . . , n}, alors
deg(P) ≥ deg(Q` ). Si ` 6= i, ceci est une évidence : comme P appartient à Vs+1 ⊆ Vs ,
et comme la suite Q̃1 , . . . , Q̃i−1 , Qi , Q̃i+1 , . . . , Q̃n forme une base minimale de Vs ,
le degré de P est nécessairement au moins égal à deg(Q̃` ) = deg(Q` ).
Dans la suite de la preuve, on peut donc supposer que P ∈ Vs+1 est de type i,
le but étant de montrer que deg(P) ≥ deg(XQi ). Le Théorème 5 montre que P
P
s’écrit P = j6=i aj Q̃j + ai Qi . Puisque type(P) = i, le Lemme 3 entraîne ai 6= 0.
De plus, le degré de P est égal à celui de ai Qi , d’après le Lemme 4 ci-dessous.
Comme val(P·F) > s et comme pour k 6= i, val(Qk ·F) > s, on a nécessairement
que val(ai ) > 0. En particulier deg(ai ) > 0 et donc deg(P) ≥ 1 + deg(Qi ). 
Lemme 4. Si type(P) = type(Q) = i et type(P+Q) < i, alors deg(P) = deg(Q).
Démonstration. Soient P = (P1 , . . . , Pn ) et Q = (Q1 , . . . , Qn ). L’hypothèse
entraîne les égalités deg(Pi ) = deg(P) et deg(Qi ) = deg(Q). Cela implique que Pi
et Qi ont le même degré ; sinon, le type de P + Q serait égal à i. 
L’algorithme qui se déduit de la conjonction du Lemme 2 et du Théorème 6 est
donné en Figure 3. Il est de complexité seulement quadratique en σ. En résumé,
nous avons le résultat suivant.
2. APPROXIMANTS DE PADÉ-HERMITE 137

Derksen
Entrée : F = (f1 , . . . , fn ) ∈ K[[X]]n et d ≥ 1.
Sortie : Un approximant de Padé-Hermite de F, de type (d, . . . , d).
pour k de 1 à n définir
Qk := (0, 0, . . . , 0, 1, 0, . . . , 0), avec 1 en position k.
pour j de 0 à nd + n − 2 faire
i := 0
pour k de 1 à n faire
ck := coeff(Qk · F, j)
si ck 6= 0 et (Qk < Qi ou i = 0), alors i := k
si i 6= 0 alors
Qi := c−1i Qi
pour k de 1 à n faire
si k 6= i alors
Qk := Qk − ck Qi
Qi := XQi
p := 1
pour k de 2 à n faire
si deg(Qk ) < deg(Qp ), alors p := k
Renvoyer Qp .

Figure 3. L’algorithme de Derksen pour les approximants de


Padé-Hermite.

Théorème 7. Soit F = (f1 , . . . , fn ) ∈ K[[X]]n . Il est possible de calculer


un approximant de Padé-Hermite de type (d, . . . , d) de F en O(nσ 2 ) = O(n3 d2 )
opérations dans K.
Exercice 2. Écrire les détails de la preuve du Théorème 7.
Remarque. Dans le cas « générique » (dit normal ), la sortie Q = Q1 , . . . , Qn
de l’algorithme de Derksen est de degré
 
d+1 d ··· d d
 d + 1 d + 1 ··· d d 
 
 .. . .. . .. .
.. ..  .
 . . 
 
 d + 1 d + 1 ··· d + 1 d 
d d ··· d d
C’est la dernière ligne Qn qui fournit l’approximant désiré.
2.3. Approximants de Padé-Hermite de type arbitraire. Pour calculer
un approximant de Padé-Hermite de type d = (d1 , . . . , dn ), il suffit de remplacer,
dans l’algorithme donné en Figure 3, deg par degd et type par typed , où :
degd (P) = max {deg(Pi ) − di }, typed (P) = max{i | deg(Pi ) − di = degd (P)}.
1≤i≤n

2.4. Applications. Si une série est connue comme rationnelle de degré au


plus d, l’approximation de Padé de type (d, d) suffit pour reconstruire la fraction
rationnelle. Une question naturelle est comment se généralise cette observation dans
le cadre de l’approximation de Padé-Hermite. Les réponses sont partielles, mais
entièrement satisfaisantes dans la pratique.
Recherche de relations à coeffcients polynomiaux
Pn entre séries formelles.
Supposons qu’il existe une combinaison linéaire i=1 Pi fi = 0, à coefficients des
138 9. APPROXIMANTS DE PADÉ ET DE PADÉ-HERMITE

polynômes Pi (X) ∈ K[X] de degrés au plus d. Par ailleurs, supposons calculé un


approximant de Padé-Hermite Q := (Q1 , . . . , Qn ) de F = (f1 , . . . , fn ) de type
d = (d, . . . , d), via l’algorithme de Derksen. La question est donc : quel lien y a-t-il
entre P = (P1 , . . . , Pn ) et Q ?
D’abord, dans le cas générique, la réponse est très simple : P et Q sont iden-
tiques, à un coefficient scalaire près. En effet, Q = Qn et Q1 , . . . , Qn est une base
de Vnd+n−1 dont les degrés sont décrits en page 137. En particulier, P doit être une
combinaison linéaire des Qi . Des considérations sur les degrés, utilisant la forme
bien particulière des degrés des Qi , mènent à la conclusion désirée.
En effet, si (c1 (X), . . . , cn (X))· t (Q1 , . . . , Qn ) = P, alors c1 Q11 +· · ·+cn Qn1 =
P1 , et comme deg(Q11 ) = d + 1 et deg(Qj1 ) = d pour j > 1 et deg(P1 ) ≤ d, on
obtient que c1 = 0. De même, c2 = · · · = cn−1 = 0 et cn doit être une constante
c ∈ K telle que P = cQ.
Dans le cas général, un argument de nothérianité permet de prouver que pour
D  0, VnD+n−1 contient la relation P, qui sera trouvée par l’algorithme de Derk-
sen. Seulement, on ne dispose pas de borne a priori en fonction de d, sur le D
minimal avec cette propriété. En effet, si on note
Wj := {Q ∈ K[[X]]n | val(Q · F) ≥ j et deg(Q) ≤ deg(P)},
et W∞ = ∩j≥0 Wj , alors W∞ contient toutes les relations de F en degré d, et en
particulier P. Puisque W0 ⊇ W1 ⊇ W2 ⊇ · · · est une suite décroissante d’espaces
vectoriels de dimension finie, elle est stationnaire, donc il existe un N tel que W∞ =
WN = WN +1 = · · · . Le cas normal correspond à la situation où dim(Wk+1 ) =
dim(Wk ) − 1 pour chaque k (noter la ressemblance avec la normalité de la suite des
restes dans l’algorithme d’Euclide).
Reconstruction d’équations algébriques et différentielles. Deux cas particu-
liers importants, pour lesquels on peut être encore plus précis, sont les approximants
algébriques et différentiels.
Soit A ∈ K[[X]] une série formelle algébrique. Le problème d’approximation
algébrique consiste à retrouver, à partir des premiers termes de f un polynôme
P (X, Y ) ∈ K[X, Y ] tel que P (X, A(X)) = 0. Si un tel P , de degré d en X et n
en Y , existe, alors les coefficients des puissances de Y formeront un approximant
de Padé-Hermite de type (d, . . . , d) du vecteur de séries (1, A, . . . , An ). La difficulté
vient de ce que un calcul d’approximation de Padé-Hermite ne trouve, a priori,
qu’un polynôme Q ∈ K[X, Y ] tel que Q(X, A(X)) = 0 mod X σ , où σ = (n+1)d−1.
On dit alors qu’on a deviné un polynôme annulateur Q de A. Pour les approximants
différentiels, la problématique est la même, la seule différence étant qu’on calcule un
approximant de Padé-Hermite du vecteur des dérivées successives (A, A0 , . . . , A(n) ).
Certification d’identités algébriques. Pour un approximant algébrique, il se
pose la question de la certification a posteriori . Pour un polynôme annulateur deviné
Q, cela veut dire qu’on souhaiterait déduire que non seulement Q(X, A(X)) est nul
modulo X σ , mais aussi que Q(X, A(X)) = 0.
Le résultat suivant apporte une réponse partielle à la question de la certifica-
tion. Son avantage est qu’il ne dépend pas de l’algorithme utilisé pour produire
l’approximant de Padé-Hermite.
Théorème 8. Supposons que A ∈ K[[X]] est racine d’un polynôme irréductible
de K[X, Y ] de degré au plus d en X et au plus n en Y . Soit Q = (Q0 , Q1 , . . . , Qn )
un approximant de Padé-Hermite de type (d, . . . , d) de F = (1, A, . . . , An ).
Pval(Q
Si · F) ≥ 2dn, alors Q · F = 0, c’est-à-dire que A est racine du polynôme
n
Q = i=0 Qi Y i .
NOTES 139

Démonstration. Soit P ∈ K[X, Y ] un polynôme irréductible de degré au


plus d en X et au plus n en Y tel que P (X, A) = 0. Le polynôme ResY (P, Q) ∈ K[X]
est de degré borné par degX (P ) degY (Q) + degY (P ) degX (Q) ≤ 2dn. Comme il est
de la forme uP + vQ pour u et v deux polynômes, avec degY (v) < degY (P ), et qu’il
ne change pas lorsqu’on remplace la variable Y par la série A, c’est un O(X 2dn ).
Par conséquent uP + vQ = 0, donc P divise vQ et, étant irréductible, il divise v ou
Q. Or degY (v) < degY (P ), donc finalement Q | P et Q(X, A) est la série nulle. 

Reconstruction de récurrences. Soit (an )n ∈ KN une suite vérifiant une récur-


rence linéaire à coefficients polynomiaux. Comment, à partir des premiers termes
de la suite, retrouver les coefficients de cette récurrence ?
Une idée consiste à utiliser la dualité montrée au Théorème 1 en page 118,
et à chercher une équation différentielle, à coefficients polynomiaux, portant sur
la série génératrice de la suite. Cette équation peut être devinée comme expliqué
précédemment, grâce à une approximation de Padé-Hermite. Il suffit ensuite de
passer de l’équation différentielle à l’expression de la récurrence, ce qui n’est pas
trivial mais purement formel et a été décrit au Chapitre 8.
2.5. Calcul quasi-optimal. Il se trouve que pour le calcul d’approximants de
Padé-Hermite, on dispose d’un algorithme quasi-optimal, dont l’efficacité est utilisée
en calcul formel comme la base de nombreux autres algorithmes. Cet algorithme
peut être vu comme une alternative à l’approche par matrices structurées, de même
complexité, décrite au Chapitre 11.
Théorème 9. Soient F = (f1 , . . . , fn ) ∈ K[[X]]n , d = (d1 , . . . , dn ) ∈ Nn et
σ = d1 +· · ·+dn +n−1. Il est possible de calculer un approximant de Padé-Hermite
de type d de F en O(MM(n, σ) log σ) = O(nθ M(σ) log(σ)) opérations dans K.
Démonstration. [Esquisse] Comme pour l’algorithme quadratique de Derk-
sen, une première idée est de calculer non pas un vecteur, mais toute une matrice
d’approximants. Une seconde idée est d’utiliser un « diviser pour régner » tout
en exploitant la multiplication rapide de matrices polynomiales. Voici l’esquisse de
l’algorithme dans le cas où d = (d, . . . , d) :
1. Si N = 1, renvoyer une base de l’orthogonal à F(0).
2. Sinon :
(a) calculer récursivement une matrice polynomiale d’approximants P1
telle que P1 · F = O(X σ/2 ) et deg(P1 ) ∼ d/2 ;

(b) calculer le reste R tel que P1 · F = X σ/2 · R + O(X σ/2 ) ;
(c) calculer récursivement une matrice polynomiale P2 d’approximants du
reste : P2 · R = O(X σ/2 ), avec deg(P2 ) ∼ d/2 ;
(d) renvoyer P := P2 · P1 .
Le choix précis des degrés des approximants P1 et P2 est une question délicate et
ne sera pas détaillé. En admettant ces choix, la correction de l’algorithme et son
analyse de complexité se déduisent aisément. 

Notes
La présentation de la Section 1 est fortement inspirée par l’article [25], celle
de la Section 2 par l’article [12]. Les approximants de Padé sont des objets très
classiques en analyse numérique ; on pourra par exemple consulter le livre [1] qui
leur est entièrement dédié.
L’algorithme de Berlekamp-Massey a été initialement conçu pour décoder des
codes BCH, puis étendu par Zierler [38] et Massey [24], qui ont mis en évidence le
140 9. APPROXIMANTS DE PADÉ ET DE PADÉ-HERMITE

lien avec les suites récurrentes linéaires à coefficients constants. Les liens forts entre
l’algorithme d’Euclide, l’algorithme de Berlekamp-Massey, l’approximation de Padé
et le calcul de fractions continues ont été étudiés dans [26, 37, 9, 14].
Les premiers algorithmes rapides pour la reconstruction rationnelle sont dus
à [17]. Ces algorithmes ont été améliorés dans [5, 16, 8]. La problématique de la
reconstruction rationnelle pour les entiers est classique en théorie des nombres [18] ;
en calcul formel, elle a été très étudiée en lien avec les algorithmes modulaires, par
exemple pour la résolution de systèmes linéaires par remontées p-adiques [13]. Des
algorithmes rapides ont été récemment proposés dans [36, 29].
Les approximants de Padé et de Padé-Hermite ont été introduits et étudiés par
Hermite et Padé dans [19, 21, 27, 28]. Une exposition plus moderne se trouve
dans [23]. Le problème d’approximation de Padé-Hermite a été utilisé par Hermite
en 1873 dans sa preuve [20] de la transcendance de e, qui utilise le choix très
particulier F = (1, eX , e2X , . . .). Deux autres cas particuliers importants sont : les
« approximants algébriques » [32, 33] avec F = (1, f, f 2 , . . .) et les « approximants
différentiels » [22] avec F = (f, f 0 , f 00 , . . .), où f est une série de K[[X]] donnée.
En calcul formel, les approximants de Padé-Hermite ont été introduits par Della
Dora et Dicrescenzo [10, 11]. Un premier algorithme de complexité quadratique a
été donné par Sergeyev [31]. Cet article est resté méconnu, et d’autres algorithmes
quadratiques ont été proposés dans [30, 6, 35, 7]. L’algorithme de complexité
quasi-optimale esquissé en Section 2.5 a été proposé dans [2].
Il existe diverses généralisations utiles du problème d’approximation de Padé-
Hermite, par exemple les « approximants de Padé-Hermite simultanés et ma-
triciels », Pou encore des approximants modulo un polynôme arbitraire de de-
σ
gré σ = i (di + 1) − 1 au lieu de X . Des algorithmes rapides existent pour
toutes ces généralisations [3, 34, 2, 4, 15].

Bibliographie
[1] Baker, Jr. (George A.) and Graves-Morris (Peter). – Padé approximants. – Cambridge Uni-
versity Press, Cambridge, , second edition, Encyclopedia of Mathematics and its Appli-
cations, vol. 59, xiv+746p.
[2] Beckermann (B.) and Labahn (G.). – A uniform approach for the fast computation of matrix-
‌ , , pp. 804–823.
type Padé approximants. SIAM J. Matrix Anal. Appl., vol. 15, n3
[3] Beckermann (Bernhard). – A reliable method for computing M -Padé approximants on arbi-
trary staircases. J. Comput. Appl. Math., vol. 40, n‌1, , pp. 19–42.
[4] Beckermann (Bernhard) and Labahn (George). – Fraction-free computation of matrix rational
interpolants and matrix GCDs. SIAM J. Matrix Anal. Appl., vol. 22, n‌1, , pp. 114–144.
[5] Brent (Richard P.), Gustavson (Fred G.), and Yun (David Y. Y.). – Fast solution of Toeplitz
systems of equations and computation of Padé approximants. J. Algorithms, vol. 1, n‌3, ,
pp. 259–295.
[6] Cabay (S.) and Labahn (G.). – A fast, reliable algorithm for calculating Padé-Hermite forms.
In ISSAC’89. pp. 95–100. – ACM, New York, NY, USA, .
[7] Cabay (S.), Labahn (G.), and Beckermann (B.). – On the theory and computation of non-
‌ , , pp. 295–313.
perfect Padé-Hermite approximants. J. Comput. Appl. Math., vol. 39, n3
[8] Cabay (Stanley) and Choi (Dong Koo). – Algebraic computations of scaled Padé fractions.
SIAM J. Comput., vol. 15, n‌1, , pp. 243–270.
[9] Cheng (Unjeng). – On the continued fraction and Berlekamp’s algorithm. IEEE Trans. In-
form. Theory, vol. 30, n‌3, , pp. 541–544.
[10] Della Dora (J.) and Dicrescenzo (C.). – Approximants de Padé-Hermite. I. Théorie. Numer.
‌ , , pp. 23–39.
Math., vol. 43, n1
[11] Della Dora (J.) and Dicrescenzo (C.). – Approximants de Padé-Hermite. II. Programmation.
‌ , , pp. 41–57.
Numer. Math., vol. 43, n1
[12] Derksen (Harm). – An algorithm to compute generalized Padé-Hermite forms. – Report n‌9403,
Dept. of Math., Catholic University Nijmegen, .
Bibliographie 141

[13] Dixon (John D.). – Exact solution of linear equations using p-adic expansions. Numer. Math.,
vol. 40, n‌1, , pp. 137–141.
[14] Dornstetter (Jean-Louis). – On the equivalence between Berlekamp’s and Euclid’s algorithms.
IEEE Trans. Inform. Theory, vol. 33, n3‌ , , pp. 428–431.
[15] Giorgi (Pascal), Jeannerod (Claude-Pierre), and Villard (Gilles). – On the complexity of
polynomial matrix computations. In ISSAC’03. pp. 135–142. – ACM, New York, .
[16] Gragg (William B.), Gustavson (Fred G.), Warner (Daniel D.), and Yun (David Y. Y.). –
On fast computation of superdiagonal Padé fractions. Math. Programming Stud., n‌18, ,
pp. 39–42. – Algorithms and theory in filtering and control (Lexington, Ky., 1980).
[17] Gustavson (Fred G.) and Yun (David Y. Y.). – Fast algorithms for rational Hermite approxi-
mation and solution of Toeplitz systems. IEEE Trans. Circuits and Systems, vol. 26, n‌9, ,
pp. 750–755.
[18] Hardy (G. H.) and Wright (E. M.). – An introduction to the theory of numbers. – Oxford
University Press, Oxford, , sixth edition, xxii+621p.
[19] Hermite (C.). – Extrait d’une lettre de Monsieur Ch. Hermite à Monsieur Paul Gordan.
Journal für die Reine und Angewandte Mathematik, vol. 78, , pp. 303—311.
[20] Hermite (C.). – Sur la fonction exponentielle. C. R. Math. Acad. Sci. Paris, vol. 77, ,
pp. 18–24.
[21] Hermite (C.). – Sur la généralisation des fractions continues algébriques. Ann. Math., vol. 21,
n‌2, , pp. 289–308.
[22] Khan (M. A. H.). – High-order differential approximants. J. Comput. Appl. Math., vol. 149,
n‌2, , pp. 457–468.
[23] Mahler (K.). – Perfect systems. Compositio Math., vol. 19, , pp. 95–166 (1968).
[24] Massey (James L.). – Shift-register synthesis and BCH decoding. IEEE Trans. Information
Theory, vol. IT-15, , pp. 122–127.
[25] McEliece (Robert J.) and Shearer (James B.). – A property of Euclid’s algorithm and an
application to Padé approximation. SIAM J. Appl. Math., vol. 34, n‌4, , pp. 611–615.
[26] Mills (W. H.). – Continued fractions and linear recurrences. Math. Comp., vol. 29, ,
pp. 173–180.
[27] Padé (H.). – Sur la représentation approchée d’une fonction par des fractions rationelles. Ann.
Sci. École Norm. Sup., vol. 9, , pp. 3–93.
[28] Padé (H.). – Sur la généralisation des fractions continues algébriques. J. Math. Pures Appl.,
vol. 10, n‌4, , pp. 291–330.
[29] Pan (Victor Y.) and Wang (Xinmao). – On rational number reconstruction and approxima-
tion. SIAM J. Comput., vol. 33, n‌2, , pp. 502–503.
[30] Paszkowski (Stefan). – Recurrence relations in Padé-Hermite approximation. J. Comput.
Appl. Math., vol. 19, n‌1, , pp. 99–107.
[31] Sergeyev (A. V.). – A recursive algorithm for Padé-Hermite approximations. USSR Comput.
Maths Math. Phys, vol. 26, n‌2, , pp. 17–22.
[32] Shafer (R. E.). – On quadratic approximation. SIAM J. Numer. Anal., vol. 11, , pp. 447–
460.
[33] Tourigny (Y.) and Drazin (Ph. G.). – The asymptotic behaviour of algebraic approximants.
R. Soc. Lond. Proc. Ser. A Math. Phys. Eng. Sci., vol. 456, n‌1997, , pp. 1117–1137.
[34] Van Barel (M.) and Bultheel (A.). – A general module-theoretic framework for vector M-Padé
and matrix rational interpolation. Numer. Algorithms, vol. 3, n‌1-4, , pp. 451–461.
[35] Van Barel (Marc) and Bultheel (Adhemar). – The computation of nonperfect Padé-Hermite
approximants. Numer. Algorithms, vol. 1, n‌3, , pp. 285–304.
[36] Wang (Xinmao) and Pan (Victor Y.). – Acceleration of Euclidean algorithm and rational
number reconstruction. SIAM J. Comput., vol. 32, n‌2, , pp. 548–556.
[37] Welch (L. R.) and Scholtz (R. A.). – Continued fractions and Berlekamp’s algorithm. IEEE
Trans. Inform. Theory, vol. 25, n‌1, , pp. 19—27.
[38] Zierler (N.). – Linear recurring sequences and error-correcting codes. In Error Correcting
Codes (Proc. Sympos. Math. Res. Center, Madison, Wis., 1968), pp. 47–59. – Wiley, .
CHAPITRE 10

Algèbre linéaire creuse : algorithme de


Wiedemann

Résumé
Les matrices creuses sont les matrices contenant beaucoup d’éléments
nuls. L’algorithme de Wiedemann est une méthode itérative pour ré-
soudre des systèmes linéaires représentés par des matrices creuses. Il
ramène la résolution au calcul du polynôme minimal, lui-même reposant
sur la reconnaissance d’une suite récurrente à coefficients constants.

1. Introduction
Dans ce chapitre, on aborde des questions radicalement différentes de celles du
Chapitre 3 : on ne cherche plus à effectuer les produits, inversions, . . . de matrices
quelconques, mais à manipuler des matrices creuses.
On ne commencera pas par définir précisément ce qu’est une matrice creuse.
L’approche consiste à donner des algorithmes dont la complexité s’exprime en fonc-
tion du nombre d’éléments non nuls des matrices en entrée. De la complexité des
algorithmes « creux » va découler une borne, typiquement de l’ordre O(n) pour
des matrices de taille n × n, sur le nombre de coefficients non nuls pour que le
changement de modèle soit pertinent.
Dans tout ce qui suit, on considère donc une matrice A de taille n × n à
coefficients dans un corps K et vérifiant les hypothèses suivantes :
– A est inversible,
– A contient s éléments non nuls.
Le produit de A par un vecteur peut donc s’effectuer en O(s) opérations dans K.
On va décrire un algorithme dû à Wiedemann qui permet de calculer l’unique
solution du système Ax = y avec une complexité en O(ns) ; l’algorithme original
est plus général que celui présenté ici, en ce qu’il permet de traiter les matrices
rectangulaires ou carrées et non inversibles, mais il se ramène au cas carré inversible.
Remarquons que si s est de l’ordre de n2 , caractérisant donc des matrices plutôt
denses, on retombe dans une complexité de l’ordre de O(n3 ). Le cas intéressant est
celui où s est de l’ordre de n, auquel cas l’algorithme est quadratique en n : pour
simplifier, on retiendra que l’exposant de l’algèbre linéaire creuse est 2 dans les bons
cas.

2. Polynôme minimal et résolution de systèmes


L’algorithme de Wiedemann passe par le calcul du polynôme minimal de A.
Rappelons sa définition.
i
P
Il est possible d’associer
P à tout polynôme en une variable P = i pi X de
i
K[X] la matrice P (A) = i pi A . Le théorème de Cayley-Hamilton affirme que le
polynôme caractéristique χA de A annule la matrice A, c’est-à-dire que χA (A) = 0.
Definition 1. Le polynôme minimal de A est le polynôme unitaire de plus
petit degré annulant A.
143
144 10. ALGÈBRE LINÉAIRE CREUSE : ALGORITHME DE WIEDEMANN

Algorithme de Wiedemann
Entrée : Une matrice creuse A ∈ Mn (K).
Sortie : Son polynôme minimal µA (X).
1. Choisir des vecteurs u et v aléatoires dans Kn .
2. Pour 0 ≤ i ≤ 2n, calculer les vecteurs vi = Ai v, puis les
scalaires Ni = t u vi .
3. Renvoyer le polynôme minimal de la suite (Ni ).

Figure 1. Algorithme de Wiedemann pour calculer le polynôme


minimal d’une matrice creuse.

Soit µA (X) le polynôme minimal de A, supposé connu. Puisqu’on a supposé A


inversible, le terme constant de µA (X) n’est pas nul : il divise le terme constant du
polynôme caractéristique, qui n’est lui-même pas nul.
L’égalité µA (A) = 0 se réécrit sous la forme
−1 m−1
A−1 = + pm−1 Am−2 + · · · + p1 In .

A
p0
Pour résoudre le système Ax = b, (b ∈ Kn ), on va calculer x = A−1 b, c’est-à-dire
−1 m−1
b + pm−1 Am−2 b + · · · + p1 b .

A
p0
Ainsi, il suffit de calculer les itérés b, Ab, . . . , Am−1 b, puis d’additionner les
vecteurs p1 b, p2 Ab, . . . , Am−1 b, pour retrouver x. L’analyse de complexité est im-
médiate :
– Chacun des Ai b s’obtient à partir de Ai−1 b en O(s) opérations.
– Chacun des produits par pi , et chaque addition, se fait en O(n) opérations.
Remarquer que n ≤ s (hypothèse d’inversibilité de A).
Au total, on a donc O(ns) opérations à faire pour résoudre le système, si on
connaît le polynôme minimal de A.

3. Calcul du polynôme minimal


Écrivons le polynôme minimal de A sous la forme
µA (X) = X m + pm−1 X m−1 + · · · + p0 .
Alors la suite des puissances de A vérifie la récurrence linéaire
Ak+m + pm−1 Ak+m−1 + · · · + p0 Ak = 0,
et ne vérifie aucune récurrence d’ordre plus petit.
Pour tous vecteurs u et v, la suite (de nombres) Ni := t uAi v vérifie donc
Nk+m + pm−1 Nk+m−1 + · · · + p0 Nk = 0.
Si u et v sont mal choisis (nuls, par exemple), la suite Ni vérifie une récurrence
d’ordre plus petit que m. La proposition suivante montre qu’en choisissant u et v
au hasard, on tombe vraisemblablement sur une suite Ni qui ne satisfait pas de
récurrence d’ordre plus petit.
Proposition 1. Il existe un polynôme D ∈ K[U1 , . . . , Un , V1 , . . . , Vn ], non nul
et de degré au plus 2n, tel que si D(u, v) est non nul, la suite Ni associée à u et v
ne satisfait pas de récurrence d’ordre plus petit que m.
EXERCICES 145

L’idée est de choisir u et v au hasard. Si on n’a pas de chance, D(u, v) est


nul ; sinon, la suite des Ni associée à u et v permet de retrouver µA (X) grâce à
l’algorithme de Berlekamp-Massey décrit en page 132 (attention, on ne connaît pas
explicitement le polynôme D, mais son existence assure que la plupart des choix de
u et v sont « chanceux »).
L’algorithme est donné en Figure 3. Il est probabiliste randomisé. L’analyse de
probabilité est facile à faire en utilisant les résultats de l’exercice 1 ci-dessous.
La complexité de l’étape 2 est de O(n) produits matrice-vecteur ou vecteur-
vecteur, chacun prenant au pire O(s) opérations ; au total on obtient donc O(ns)
opérations pour cette phase. L’algorithme d’approximants de Padé est négligeable,
puisqu’il ne demande que O(n2 ) ⊆ O(sn) opérations.

4. Calcul du déterminant
L’algorithme en Figure 3 permet de détecter en cours de route l’inversibilité
de la matrice A. En effet, si l’approximant de Padé calculé par l’algorithme de
Berlekamp-Massey (page 132) a un dénominateur divisible par X, cela veut dire
que det(A) = 0.
Il est possible de calculer en bonne complexité le déterminant de la matrice
creuse A, en exploitant le résultat suivant d’algèbre linéaire.
Lemme 1. Si tous les mineurs principaux de A ∈ Mn (K) sont non nuls, alors
les polynômes minimal et caractéristique de la matrice B = A · Diag(X1 , . . . , Xn )
coïncident.
L’algorithme qui s’en déduit est le suivant :
– Choisir une matrice de permutations aléatoire P , pour assurer que tous les
mineurs principaux de la matrice AP sont inversibles ;
– choisir des éléments x1 , . . . , xn aléatoirement dans K ;
– calculer le polynôme minimal µB de B = A · P · Diag(x1 , . . . , xn ) ;
– renvoyer µB (0)/(x1 · · · xn ) · sgn(P ).
À nouveau, la complexité de cet algorithme est quadratique en la taille n de A.

5. Calcul du rang
Le rang maximal de la matrice creuse A est détecté par les algorithmes précé-
dents. Quitte à multiplier A par une matrice de permutations aléatoires, on peut
donc supposer que son rang r est strictement inférieur à n, et que ses mineurs
principaux Ai , pour 1 ≤ i ≤ r, sont tous non nuls.
Sous ces hypothèses, il est possible de montrer que, pour un choix aléatoire
d’éléments x1 , . . . , xn dans K, le rang r est égal à deg(µAD ) − 1, où D est la matrice
diagonale D = Diag(x1 , . . . , xn ). L’algorithme qui s’ensuit calcule le polynôme mini-
mal de la matrice creuse AD, et en déduit le rang de A, le tout pour une complexité
quadratique en n.

Exercices
Exercice 1. Soit A une matrice dans Mn (K), soit b un vecteur de Kn \ {0}
et soit f le polynôme minimal de la suite (Ai · b)i≥0 .
Le but de l’exercice est d’estimer la probabilité P que f coïncide avec le polynôme
minimal de la suite (t u·Ai ·b)i≥0 lorsque u est un vecteur de Kn dont les coordonnées
sont choisies aléatoirement au hasard dans un sous-ensemble fini U de K.
1. Montrer qu’il existe une application ψ : Kn → A = K[X]/(f ), K-linéaire et
surjective, telle que pour tout u ∈ Kn on ait
f est le polynôme minimal de (t u · Ai · b)i≥0 ⇐⇒ ψ(u) est inversible dans A.
146 10. ALGÈBRE LINÉAIRE CREUSE : ALGORITHME DE WIEDEMANN

[Indication : l’application φ : Kn → KN définie par φ(u) = (t u · Ai · b)i≥0


induit une application linéaire surjective Kn → Mf , où Mf est l’espace
vectoriel des suites de KN admettant f comme polynôme annulateur. Par
ailleurs, A et Mf sont isomorphes en tant qu’espaces vectoriels.]
2. Soit d le degré de f . Montrer qu’il existe un polynôme non identiquement
nul R ∈ K[X1 , . . . , Xn ] de degré total au plus d tel que pour tout vecteur
u = (u1 , . . . , un ) ∈ Kn on ait
ψ(u) est inversible dans A si et seulement si R(u1 , . . . , un ) 6= 0.
[Indication : utiliser un résultant.]
3. Montrer que R admet au plus d · |U |n−1 racines dans U n . En déduire que
la probabilité qu’un élément de U n dont les coordonnées sont choisies aléa-
toirement au hasard dans U soit racine de R est bornée par d/|U |.
4. Conclure que la probabilité P vérifie
d
P ≥1− .
|U |
Notes
L’algorithme de Wiedemann a été proposé dans [11]. Cet article contient
également l’algorithme esquissé en Section 4. L’algorithme en Section 5 provient
de [5]. Des versions « par blocs » de l’algorithme de Wiedemann ont été proposées
dans [1, 10, 8, 9]. D’autres généralisations sont traités dans [3, 4, 6].
Les questions (2) et (3) de l’exercice 1 forment le cœur du « lemme de Zippel-
Schwartz » [2, 12, 7].

Bibliographie
[1] Coppersmith (Don). – Solving homogeneous linear equations over GF(2) via block Wiede-
‌ 05, , pp. 333–350.
mann algorithm. Math. Comp., vol. 62, n2
[2] DeMillo (Richard A.) and Lipton (Richard J.). – A probabilistic remark on algebraic program
testing. Inform. Process. Lett., vol. 7, n‌4, , pp. 193–195.
[3] Giesbrecht (M.), Lobo (A.), and Saunders (B. D.). – Certifying inconsistency of sparse linear
systems. In Proceedings of the 1998 International Symposium on Symbolic and Algebraic
Computation (Rostock). pp. 113–119 (electronic). – ACM, New York, .
[4] Giesbrecht (Mark). – Fast computation of the Smith form of a sparse integer matrix. Comput.
Complexity, vol. 10, n‌1, , pp. 41–69.
[5] Kaltofen (Erich) and Saunders (B. David). – On Wiedemann’s method of solving sparse linear
systems. In Applied algebra, algebraic algorithms and error-correcting codes (New Orleans,
LA, 1991), pp. 29–38. – Springer, Berlin, .
[6] Mulders (Thom). – Certified sparse linear system solving. J. Symbolic Comput., vol. 38, n‌5,
, pp. 1343–1373.
[7] Schwartz (J. T.). – Fast probabilistic algorithms for verification of polynomial identities. J.
Assoc. Comput. Mach., vol. 27, n4‌ , , pp. 701–717.
[8] Thomé (E.). – Subquadratic computation of vector generating polynomials and improvement
of the block Wiedemann algorithm. J. Symbolic Comput., vol. 33, n‌5, , pp. 757–775.
[9] Turner (William J.). – A block Wiedemann rank algorithm. In ISSAC’06, pp. 332–339. –
ACM, New York, .
[10] Villard (G.). – Further analysis of Coppersmith’s block Wiedemann algorithm for the solution
of sparse linear systems (extended abstract). In ISSAC’97. pp. 32–39. – ACM, New York,
NY, USA, .
[11] Wiedemann (D.). – Solving sparse linear equations over finite fields. IEEE Transactions on
Information Theory, vol. IT-32, , pp. 54–62.
[12] Zippel (Richard). – Probabilistic algorithms for sparse polynomials. In EUROSAM’79,
pp. 216–226. – Springer, Berlin, .
CHAPITRE 11

Algèbre linéaire structurée

Résumé

Les matrices possédant une structure spéciale sont omniprésentes en


calcul formel. Ce sont des matrices dont les éléments jouissent d’une
certaine répétition, ou satisfont à certaines relations. Plus formellement,
une matrice structurée est typiquement définie par O(n) éléments, au
lieu de n2 pour une matrice dense, et peut être multipliée par un vecteur
en Õ(n) opérations arithmétiques, au lieu de O(n2 ) opérations pour une
matrice dense. Ce chapitre présente une algorithmique unifiée pour ma-
nipuler des matrices structurées denses, comme les matrices de Toeplitz,
Hankel, Vandermonde et Sylvester. Les calculs avec les matrices de ces
classes sont liés aux calculs avec les polynômes, ce qui permet l’emploi
des techniques de multiplication polynomiale rapide pour accélérer leur
manipulation. Par exemple, on peut résoudre un système linéaire défini
par une matrice structurée inversible en n × n en Õ(n) opérations.

1. Introduction
Nous avons vu au Chapitre 3 qu’il est possible de manipuler les matrices denses
de taille n × n à coefficients dans un corps K en O(nθ ) opérations dans K, où θ
est un réel compris entre 2 et 3. Ici, par manipuler, on entend multiplier, inverser,
calculer le déterminant, ou encore résoudre un système linéaire.
Dans certaines situations, les matrices qu’on est amené à manipuler présentent
une structure que ces algorithmes généraux ne savent pas capturer et exploiter.
Voici quelques exemples de matrices qui possèdent une structure.

Definition 1. Une matrice A ∈ Mn (K) est dite de Toeplitz si elle est inva-
riante le long des diagonales, c’est-à-dire si ses éléments ai,j vérifient ai,j = ai+k,j+k
pour tout k.

Une telle matrice est complètement définie par sa première ligne et sa première
colonne.

Definition 2. Une matrice A ∈ Mn (K) est dite de Hankel si elle est invariante
le long des anti-diagonales, c’est-à-dire si ses éléments ai,j vérifient ai,j = ai−k,j+k
pour tout k.

Une telle matrice est complètement définie par sa première ligne et sa dernière
colonne.

Exemple 1. La matrice de la multiplication polynomiale en degré fixé (dans


les bases canoniques) par un polynôme fixé est de Toeplitz. Par exemple, la multi-
plication d’un polynôme de degré au plus 2 par le polynôme fixé a0 + a1 X + a2 X 2
147
148 11. ALGÈBRE LINÉAIRE STRUCTURÉE

de K[X] se traduit matriciellement par l’égalité


   
a0 0 0   a0 b0
 a1 a0 0  b0  a0 1 + a1 b0
b 
   
 a2 a1 a0  ×  b1  =   0 2 + a1 b1 + a2 b0
a b .
  
 0 a2 a1  b2  a1 b2 + a2 b1 
0 0 a2 a2 b2
Dans cet exemple, la matrice Toeplitz est d’une forme particulière, appelée
bande. En fait, toute matrice de Toeplitz peut être vue comme sous-matrice d’une
matrice de Toeplitz bande, et cela entraîne le résultat suivant.
Lemme 1. Le produit d’une matrice de Toeplitz (ou de Hankel) de Mn (K) par
un vecteur de Kn peut s’effectuer en O(M(n)) opérations.
Démonstration. Pour tout 0 ≤ i ≤ n − 1, l’élément ci du produit matrice-
vecteur      
an−1 · · · a0 b0 c0
..   ..   .. 
× . = . 

 .
a2n−2 · · · an−1 bn−1 cn−1
n−1+i
est le coefficient de X dans le produit de polynômes
(1) (b0 + · · · + bn−1 X n−1 )(a0 + · · · + a2n−2 X 2n−2 ).
La preuve est tout à fait similaire pour une matrice de Hankel. 
Remarque. La preuve précédente montre que 2 M(n) + O(n) opérations suf-
fisent pour multiplier une matrice Toeplitz ou Hankel de taille n par un vecteur.
Cette borne peut être améliorée à M(n) + O(n), en observant que l’extraction de la
partie médiane du produit (1) est suffisante, et en employant des algorithmes pour
le produit médian, évoqués au Chapitre 12.
Exemple 2. Une matrice de Sylvester est la concaténation de deux matrices
Toeplitz bande.
Definition 3. Une matrice A = (ai,j )n−1
i,j=0 de Mn (K) est dite de Vandermonde
j
si ses éléments s’écrivent ai,j = ai pour a0 , . . . , an−1 ∈ K avec ai 6= aj pour i 6= j.
Definition 4. Une matrice A = (ai,j )n−1 i,j=0 de Mn (K) est dite de Cauchy si
ses éléments s’écrivent ai,j = 1/(ai − bj ) pour ai , bj ∈ K avec ai 6= bj pour tous i, j.
Il y a un certain nombre de points en commun entre ces exemples : la matrice
est représentable par O(n) éléments ; le produit matrice-vecteur peut s’effectuer
plus rapidement que dans le cas générique, en O(M(n) log n) opérations au lieu
de O(n2 ) ; le produit par une matrice quelconque peut s’effectuer en complexité
O(n M(n) log n) —quasi-optimale en la taille de la sortie pour une multiplication
polynomiale à base de FFT. En effet, dans chaque cas, le produit matrice-vecteur
Av admet une interprétation analytique :
– multiplication polynomiale dans les cas Toeplitz, Hankel et Sylvester ;
– évaluation polynomiale multipoint dans le cas d’une matrice de Vandermonde
(Chapitre 6) ;
Pn−1
– évaluation multipoint de fractions rationnelles de la forme j=1 cj /(X − bj ).
Exercice 1. Montrer que le produit d’une matrice de Cauchy par un vecteur
peut s’effectuer en O(M(n) log n) opérations dans K.
Au vu de ces exemples, on pourrait donc être tenté de définir comme structurée
une matrice telle que son produit par un vecteur peut s’effectuer en Õ(n) opérations.
La question qui se pose naturellement est : peut-on exploiter cette définition de la
1. INTRODUCTION 149

structure de A pour résoudre le système Ax = b ? Un premier constat positif est que,


dans chacun des exemples précédents, la résolution admet aussi une interprétation
analytique :
(i) devinette de récurrences à coefficients constants, si A est de Toeplitz ou de
Hankel ;
(ii) interpolation polynomiale, si A est de Vandermonde ;
(iii) interpolation de fractions rationnelles, si A est de Cauchy.
En effet, si la suite (an ) d’éléments de K vérifie une récurrence (inconnue) à coeffi-
cients constants de la forme
an+d = pd−1 an+d−1 + · · · + p0 an , n ≥ 0,
alors trouver les coefficients pi de cette récurrence revient à résoudre le système de
Hankel   
a0 a1 · · · ad−1 p0
 
ad

.
a2 . . p1    ad+1 
  
 a1 ad 
 
 × . = . .
 . . . ..   .  
   ..
 .. .. .. .  . 
ad−1 ad · · · a2d−2 pd−1 a2d−1
Un autre point encourageant est que, pour ces trois opérations, on dispose
d’algorithmes de complexité quasi-optimale O(M(n) log n), présentés au Chapitre 6
pour (ii), et au Chapitre 9 pour (i) et (iii).
Il y a cependant quelques points négatifs : un premier est que si A est une
matrice inversible telle que l’application linéaire v 7→ Av se calcule en L opérations,
cela n’implique pas l’existence d’un algorithme de complexité O(L) pour l’applica-
tion v 7→ A−1 v. En d’autres termes, on manque d’un principe d’inversion analogue
au principe de transposition présenté au Chapitre 12. Par exemple, pour les matrices
creuses, le meilleur algorithme de résolution, dû à Wiedemann, est de complexité
quadratique en n (Chapitre 10). Un second point négatif est que les classes vues
plus haut ne sont pas stables par inversion : l’inverse d’une matrice de Toeplitz
(resp. de Vandermonde) n’est pas de Toeplitz (resp. de Vandermonde).
On a donc besoin de rajouter des hypothèses dans la définition de la bonne
notion de matrice structurée. Cette définition exploite la généralisation du caractère
invariant par diagonale d’une matrice de Toeplitz, et vient de l’observation simple
suivante : si A est de Toeplitz, alors la matrice
φ(A) = A − (A décalée de 1 vers le bas et de 1 vers la droite)
admet une ligne et une colonne non nulles ; elle est donc de rang borné par 2. On
dit que φ est un opérateur de déplacement et que le rang de φ-déplacement de A est
au plus 2. On peut donc représenter φ(A) sous forme compacte, comme un produit
G · t H, avec G et H des matrices rectangulaires de taille n × 2.
Exemple 3. Si A est la matrice 3 × 3
 
c d e
A =  b c d ,
a b c
avec d 6= 0, alors φ(A) s’écrit
   
c d e c d  
1 0 0
φ(A) =  b 0 0  =  b 0 × .
0 1 e/d
a 0 0 a 0
Definition 5. Les matrices (G, H) de Mn,2 (K) telles que φ(A) = G · t H sont
appelées générateurs de déplacement pour la matrice de Toeplitz A.
150 11. ALGÈBRE LINÉAIRE STRUCTURÉE

Ces définitions s’étendent, et permettent d’introduire le concept de matrice


quasi-Toeplitz.
Definition 6. On appelle opérateur de déplacement φ+ l’application A 7→
A − Z · A · t Z, où la matrice Z définie par
 
0 0 ... 0
 1 0 ... 0 
Z= . .
 
. . .. 
 . . ··· . 
0 ··· 1 0
est telle que ZA est la matrice A décalée de 1 ligne vers le bas, et A · t Z est la ma-
trice A décalée de 1 colonne vers la droite. Le rang de déplacement de A est l’entier
α+ (A) = rang(φ+ (A)). On appelle générateurs de déplacement pour l’opérateur φ+
un couple (G, H) de matrices de taille n × α vérifiant l’égalité φ+ (A) = G · t H. Si
α+ (A)  n, on dit que A est quasi-Toeplitz.
Intuitivement, le rang de déplacement mesure à quel point la matrice A est loin
d’être de Toeplitz.
Exemple 4. Les matrices de Toeplitz, Hankel, Sylvester sont toutes quasi-
Toeplitz, de rang de déplacement borné par 2.
Ces définitions s’étendent et permettent également de définir des matrices quasi-
Vandermonde et quasi-Cauchy, mais pour des opérateurs de déplacement différents :
• Va 7→ Va − Diaga · Va · t Z pour le cas Vandermonde ;
• Ca,b 7→ Ca,b − Diaga −1 · Ca,b · Diaga pour le cas Cauchy.
Ici, pour deux vecteurs a = (a0 , . . . , an−1 ) et b = (b0 , . . . , bn−1 ), on désigne par
Va la matrice de Vandermonde (aji )n−1 i,i=0 , par Diaga la matrice diagonale, dont la
diagonale porte le vecteur a, et par Ca,b la matrice de Cauchy (1/(ai − bj ))n−1 i,j=0 .

Dans tous ces cas, φM,N est définie par φM,N (A) = A − M AN , avec M et N
bien choisies (en fonction de la structure visée), et le rang de déplacement de A est
défini comme étant le rang de la matrice φM,N (A).
Exercice 2. Estimer les rangs de déplacement des matrices de Vandermonde
et de Cauchy, pour les opérateurs de déplacement définis ci-dessus.

Résultat principal. L’idée-clé derrière les algorithmes rapides pour les matrices
structurées de rang de déplacement α est l’utilisation des générateurs de déplace-
ment comme structure de données compacte, de taille O(αn), donc proportionnelle
à la taille n de la matrice, dans le cas où α  n. L’énoncé suivant contient le
résultat principal de ce chapitre.
Théorème 1. Soit φ(·) l’un des opérateurs Toeplitz, Vandermonde, Cauchy
définis ci-dessus. Soit A une matrice de Mn (K) donnée par des générateurs de
déplacement de taille n × α, et soit b un vecteur de Kn . Alors, il est possible de :
1. calculer le déterminant de A ;
2. calculer le rang de A ;
3. calculer une solution du système Ax = b, ou prouver qu’il n’y en a aucune
en Õ(α2 n) opérations dans K. Plus exactement, cette complexité s’exprime en
termes de la fonction de multiplication polynomiale, et vaut :
1. O(α2 M(n) log n) dans le cas quasi-Toeplitz ;
2. O(α2 M(n) log2 (n)) dans les cas quasi-Vandermonde et quasi-Cauchy.
2. LE CAS QUASI-TOEPLITZ 151

Comme conséquence du Théorème 1 nous obtenons une algorithmique unifiée


pour résoudre en complexité quasi-optimale différents problèmes sur les polynômes
et les séries.
Corollaire 1. On peut calculer en O(M(n) log(n)) opérations arithmétiques :
1. le pgcd étendu et le résultant de deux polynômes de degré borné par n ;
2. un approximant de Padé de type (n, n) d’une série tronquée donnée à pré-
cision 2n ;
Démonstration. [Esquisse] Le résultant de deux polynômes A, B ∈ K[X]
s’obtient comme le déterminant de leur matrice de Sylvester Syl(A, B), qui a un rang
de déplacement au plus 2. Le degré du pgcd G = pgcd(A, B) s’obtient par un calcul
de rang de la matrice de Sylvester : deg(G) = deg(A) + deg(B) − rang(Syl(A, B)).
Une fois connu le degré du pgcd, la relation de Bézout U A + V B = G, avec les
contraintes deg(U ) < deg(B) − deg(G) et deg(V ) < deg(A) − deg(G), se traduit
en un système linéaire en les coefficients de U et de V , dont la matrice est quasi-
Toeplitz, de rang de déplacement au plus 3. Des considérations similaires s’ap-
pliquent pour le calcul d’approximants de Padé. 
Corollaire
P 2. Étant données n series f1 , . . . , fn de K[[X]] connues à précision
σ = i (di + 1) − 1, il est possible d’en calculer un approximant de Padé-Hermite
(p1 , . . . , pn ) de type (d1 , . . . , dn ) en O(n2 M(σ) log(σ)) opérations dans K.
Démonstration. [Esquisse] Il s’agit d’un problème linéaire en les coefficients
de l’approximant cherché. La matrice du système linéaire est quasi-Toeplitz, de rang
de déplacement borné par n. 
Dans la suite, nous allons esquisser les grandes lignes de la preuve du Théo-
rème 1 dans le cas particulier où la matrice A est inversible et « suffisamment
générique » (tous les mineurs non nuls), et uniquement dans le cas quasi-Toeplitz.

2. Le cas quasi-Toeplitz
Dans le reste du chapitre, nous allons nous concentrer uniquement sur le cas
quasi-Toeplitz, car il contient les principales idées algorithmiques, et il couvre beau-
coup d’applications ; les cas quasi-Vandermonde et quasi-Cauchy s’y ramènent et
sont plus techniques.
Nous allons montrer que la notion de matrice quasi-Toeplitz est une bonne
notion de structure, car elle répond aux propriétés suivantes :
(P1) on peut effectuer quasi-optimalement le produit d’une matrice quasi-
Toeplitz par un vecteur ;
(P2) la somme et le produit de deux matrices quasi-Toeplitz restent quasi-
Toeplitz ;
(P3) l’inverse aussi.
Or, ces propriétés forment le minimum nécessaire pour concevoir un algorithme
de type inversion de Strassen (page 47) dans la représentation compacte par géné-
rateurs de déplacement.
2.1. Produit matrice-vecteur, cas quasi-Toeplitz. Pour montrer la pro-
priété (P1) ci-dessus, le point clé est le résultat suivant.
Proposition 1. (formule ΣLU ) L’opérateur φ+ : A 7→ A − Z · A · t Z est
inversible. Plus exactement, on a la formule suivante, appelée la formule ΣLU :
Xα Xα
A − Z · A · tZ = xi · t yi si et seulement si A = L(xi ) · U (yi ),
i=1 i=1
152 11. ALGÈBRE LINÉAIRE STRUCTURÉE

où les xi (resp. yi ) sont les colonnes du générateur G (resp. H), et où, pour un
vecteur colonne v = t [v0 · · · vn−1 ], on note L(v) la matrice Toeplitz inférieure
 
v0 0 ... 0
 v1 v0 . . . 0 
 
 .. . . . · · · ... 
 . 
vn−1 · · · v1 v0
et U (v) la matrice Toeplitz supérieure t L(v).
Démonstration. Par linéarité, il suffit de traiter le cas α = 1. Si C =
L(a)U (b), alors un calcul immédiat montre que ci+1,j+1 = ai bj + ai−1 bj−1 + · · · , et
donc ci+1,j+1 − ci,j = ai bj et φ+ (C) = (ai bj )n−1 t
i,j=0 = a · b.
L’implication inverse découle de l’injectivité de φ+ et est laissée en exercice. 
La Proposition 1 permet de donner une définition équivalente pour le rang de
déplacement.
Definition 7. α+ (A) est le plus petit entier α tel qu’il existe une décompo-
sition de la forme
α
X
A= Li Ui
i=1
pour des matrices Li de Toeplitz inférieures, et Ui de Toeplitz supérieures.
Exemple 5. Si A est de Toeplitz, alors elle admet la décomposition A =
Ainf · In + In · Asup , donc α+ (A) ≤ 2.
La définition 7 permet de prouver la propriété (P1) en page 151.
Corollaire 3. Si A est donnée en représentation compacte par une paire
de générateurs (G, H) de taille n × α, alors le produit matrice-vecteur Av peut
s’effectuer en O(αM(n)) opérations arithmétiques.
Démonstration. Le produit Av s’écrit comme la somme des α termes de
la forme L(xi )(U (yi )v). Or, chacun de ces termes peut être calculé en O(M(n))
opérations, grâce au lemme 1. 
2.2. Addition et produit en représentation compacte par généra-
teurs. Pour justifier la propriété (P2) en page 151, on va montrer plus, à savoir que
la représentation par générateurs permet un calcul efficace (en temps quasi-linéaire)
des opérations d’additions et de multiplication de deux matrices quasi-Toeplitz.
Proposition 2 (opérations matricielles en représentation compacte). Soient
(T, U ) générateurs de déplacement de taille n × α pour A, et (G, H) générateurs de
déplacement de taille n × β pour B. Alors
1. ([T | G], [U | H]) sont des générateurs de déplacement pour A + B de lon-
gueur α + β ;
2. ([T | W | a], [V | H | − b]) sont des générateurs de déplacement pour AB, de
longueur α + β + 1,
où V := t B · U , W := Z · A · t Z · G, et où le vecteur a (resp. b) est la dernière
colonne de Z · A (resp. de Z · t B).
La preuve, basée sur une vérification immédiate, est laissée en exercice.
Corollaire 4. En représentation compacte par générateurs de déplacement,
de longueurs au plus α pour A et B, on peut calculer
1. la somme A + B en O(αn) opérations dans K ;
2. LE CAS QUASI-TOEPLITZ 153

2. le produit AB en Mul(n, α) = O(α2 M(n)) opérations dans K.


Démonstration. Le seul point non trivial est le calcul des matrices V, W, a

et b. Tout repose sur la formule ΣLU . Si B s’écrit i=1 L(xi )U (yi ), alors sa trans-
β
posée s’écrit t B = i=1 L(yi )U (xi ), et le calcul de V = t B · U se ramène à αβ
P
multiplications polynomiales, chacune pouvant s’effectuer en O(M(n)). Le même
raisonnement s’applique au calcul de W . Enfin, le calcul de a revient à multi-
plier A par la colonne t [0, . . . , 0, 1] et une observation similaire pour b permet de
conclure. 
2.3. Inversion en représentation compacte par générateurs. Pour
prouver la propriété (P3) en page 151, il est commode d’introduire un opérateur
dual de déplacement.
Definition 8. L’opérateur de φ− déplacement d’une matrice A de Mn (K) est
défini par l’égalité
φ− (A) = A − t Z · A · Z = A − (A décalée de 1 vers le haut et vers la gauche).
Le (−) rang de déplacement α− est défini par la formule
α− (A) = rang(A − t Z · A · Z).
On peut montrer (de la même façon que pour φ+ ) qu’on dispose d’une définition
équivalente pour φ− , et que φ+ et φ− sont liés.
Lemme 2.
1. α
P−α(A) est le plus petit entier α tel que A puisse s’écrire sous la forme
=1 Ui Li , avec Li Toeplitz inférieures, et Ui Toeplitz supérieures.
2. On a la formule ΣU L :
X α Xα
A − tZ · A · Z = xi · t yi si et seulement si A = U (rev(xi )) · L(rev(yi )).
i=1 i=1
t t
Ici, pour v = [v0 , . . . , vn−1 ], on note rev(v) = [vn−1 , . . . , v0 ].
3. Une matrice de Toeplitz pour φ+ est une matrice de Toeplitz pour φ− .
La preuve de ce résultat découle de la proposition suivante.
Proposition 3 (conversion ΣLU ↔ ΣU L). Pour toute matrice A, l’inégalité
|α+ (A) − α− (A)|
P≤ 2 est satisfaite. De plus, P
on peut effectuer les conversions d’une
représentation LU à une représentation U L, et inversement, en O(α M(n))
opérations dans K.
Démonstration. Il suffit de prouver l’identité :
L(x) · U (y) = In · L(y 0 ) + U (x0 ) · In − U (x00 ) · L(y 00 ),
avec : x00 = Z · rev(x), y 00 = Z · rev(y), y 0 = rev(t U (y) · t L(x) · f ), x0 = rev(L(x) ·
U (y) · f ), où f = t [0, . . . , 0, 1]. 
Théorème 2. Soit A ∈ Mn (K) une matrice quasi-Toeplitz inversible. Alors
son inverse est aussi quasi-Toeplitz et α+ (A−1 ) = α− (A).
Démonstration. On a la suite d’égalités
α− (A) = rang(A − t Z · A · Z) = rang(In − A−1 · t Z · A · Z)
= rang(In − Z · A−1 · t Z · A) = rang(A−1 − Z · A−1 · t Z)
= α+ (A−1 ),
dans laquelle nous avons utilisé un fait d’algèbre linéaire élémentaire : si A, B sont
deux matrices quelconques, alors rang(In − A · B) = rang(In − B · A). 
154 11. ALGÈBRE LINÉAIRE STRUCTURÉE

Inversion rapide de matrices quasi-Toeplitz


Entrée : Une matrice « générique » A ∈ Mn (K), de taille n = 2k , repré-
sentée par des générateurs (pour l’opérateur de déplacement φ+ ).
Sortie : Son inverse A−1 , représentée par des générateurs (pour l’opérateur
de déplacement φ− ).
1. Si n = 1, renvoyer A−1 .
 
a b
2. Calculer des φ+ -générateurs pour a, b, c, d ∈ Mn/2 (K), où A = .
c d
3. Calculer récursivement des φ− -générateurs pour e := a−1 .
4. Calculer des φ+ -générateurs pour Z := d − ceb.
5. Calculer récursivement des φ− -générateurs pour t := Z −1 .
 
x y
6. Renvoyer des φ− -générateurs de A−1 = via les formules de
z t
Strassen y := −ebt, z := −tce et x := e + ebtce.

Figure 1. Algorithme de type Strassen pour inverser une matrice


quasi-Toeplitz.

2.4. Résolution rapide de systèmes quasi-Toeplitz. Le Théorème 2 ne


nous dit pas comment calculer des générateurs pour A−1 . Cela est fait dans le
dernier résultat de ce chapitre.

Théorème 3. Soit A ∈ Mn (K) une matrice quasi-Toeplitz inversible, de rang


de déplacement α, donnée par des générateurs G et H de taille n × α. On peut
calculer des générateurs de taille n × α pour A−1 en O(α2 M(n) log(n)) opérations
dans K.
À partir de cette représentation de l’inverse, le système Ax = b (b ∈ Kn ) peut
se résoudre pour un supplément de O(α M(n)) opérations dans K.

Démonstration. L’idée est d’adapter au cas structuré l’algorithme d’inver-


sion de Strassen présenté au Chapitre 3 (page 47). La différence réside dans le choix
de la structure de données utilisée pour représenter et calculer avec les matrices
quasi-Toeplitz. Pour ce faire, on utilise comme structure de données compacte les
générateurs de déplacement pour les opérateurs φ+ et φ− (ou, de façon équivalente,
les représentations ΣLU et ΣU L).
L’algorithme, de type « diviser pour régner », est décrit en Figure 1. Sa correc-
tion est héritée de celle de l’algorithme d’inversion de Strassen ; l’hypothèse sur la
généricité de A est utilisée pour garantir que tous les mineurs qu’on doit inverser
au cours de l’algorithme sont bien inversibles.
Sa complexité arithmétique C(n) obéit à la récurrence

C(n) ≤ 2 C(n/2) + O(Mul(n, α)) + O(α2 n + α M(n)),

où le coût en O(α2 n + α M(n)) provient des conversions entre les représentations


φ+ et φ− et des calculs de minimisation de longueurs de générateurs, et la notation
Mul(n, α) désigne la complexité du produit matriciel pour des matrices n×n données
par générateurs de taille n × α. La preuve se conclut en utilisant l’estimation

Mul(n, α) = O(α2 M(n)),

qui entraîne C(n) = O(α2 M(n) log(n)). 


NOTES 155

Exercices
Exercice 3. Soit A ∈ Mn (K) une matrice quasi-Toeplitz de rang de déplace-
ment α  n, représentée de façon compacte par des générateurs (G, H) de taille
n × α, i.e., tels que φ+ (A) = G · t H.
1. Soient v1 , . . . , vα des vecteurs quelconques de Kn . Montrer que le calcul de
tous les produits A · v` , 1 ≤ ` ≤ α, se ramène, grâce à la formule ΣLU , au
problème suivant :

(P) Étant donnés des polynômes Gj , Hj , Vj ∈ K[X] (j ≤ α) de degrés au plus


n − 1, calculer

A` = Gj (Hj V` mod X n ), 1 ≤ ` ≤ α.
j=1

2. Donner un premier algorithme qui résout le problème (P) et estimer sa


complexité.
3. Montrer que le problème (P) admet la reformulation matricielle suivante :

(MP) Étant données des matrices polynomiales G, V dans Mα×1 (K[X]) et H


dans M1×α (K[X]), toutes de degrés au plus n − 1, calculer (VH mod X n ) G.

4. Soient A, B et C des matrices polynomiales de tailles (n × p), (p × n) et


(n×p) et de degré au plus d. Montrer que le produit ABC peut être calculé
en O( np MM(p, d)) opérations dans K.
5. Proposer un algorithme de type « diviser pour régner » (par rapport à n)
résolvant le problème (MP) en complexité O( α1 MM(α, n)).
6. Conclure qu’on peut multiplier, dans la représentation par générateurs de
déplacement, deux matrices quasi-Toeplitz de Mn (K) de rang de dépla-
cement au plus α en O( α1 MM(α, n)) opérations dans K.

Notes
Levinson [13] a donné le premier algorithme de complexité quadratique pour
la résolution d’un système linéaire dont la matrice est de Toeplitz, symétrique et
définie positive. Trench [18] a par la suite montré que toute l’inverse d’une telle
matrice peut se calculer en la même complexité. Ces deux algorithmes sont décrits
dans [7, §4.7].
L’algorithme de Trench [18] repose sur une formule, reprise et améliorée par
Gohberg et Semencul [6], qui fournit une représentation explicite ΣLU à deux
termes de l’inverse d’une matrice de Toeplitz A, les sommands étant construits à
partir de la première ligne et de la première colonne de A−1 . Brent, Gustavson et
Yun [8, 3] montrent comment ramener le calcul des premières ligne et colonne de
A−1 à un calcul d’approximation de Padé. L’article [3] met en évidence les liens
profonds entre la résolution des systèmes de Toeplitz, l’algorithme d’Euclide étendu
et l’approximation de Padé, et propose le premier algorithme pour la résolution
d’un système défini par une matrice de Toeplitz inversible quelconque de taille n
en O(M(n) log n) opérations arithmétiques.
Parallèlement, la notion de rang de déplacement a été introduite par Kailath,
Kung et Morf dans [10] et utilisée par les mêmes auteurs dans [9] pour donner
un algorithme de complexité quadratique pour la résolution d’un système quasi-
Toeplitz inversible. Plus exactement, l’algorithme de [9] calcule la solution d’un
système défini par une matrice quasi-Toeplitz inversible de rang de déplacement α
156 11. ALGÈBRE LINÉAIRE STRUCTURÉE

en O(αn2 ) opérations. Une version rapide, de complexité O(αd M(n) log n) a été
obtenue indépendamment par Bitmead et Anderson [1] (avec d = 4) et Morf [14]
(avec d = 2). Les algorithmes de [1, 14] fonctionnent seulement sous une hypothèse
de forte régularité de l’entrée. Ils ont été adaptés dans [11, 12] au cas où la matrice
du système est quelconque. Ces algorithmes ont été étendus au cas quasi-Cauchy
dans [4, 17] et au cas quasi-Vandermonde dans [15, 5]. La meilleure complexité
asymptotique vis-à-vis simultanément de la taille de la matrice et de son rang de
déplacement est due à l’article [2], qui montre comment introduire du produit rapide
de matrices denses dans l’algorithmique pour les matrices structurées, et réduit le
coût à Õ(αθ−1 n) pour la résolution des systèmes quasi-Toeplitz, quasi-Vandermonde
et quasi-Cauchy.
Une bonne référence sur les matrices structurées est le livre [16].

Bibliographie
[1] Bitmead (Robert R.) and Anderson (Brian D. O.). – Asymptotically fast solution of Toeplitz
and related systems of linear equations. Linear Algebra Appl., vol. 34, , pp. 103–116.
[2] Bostan (Alin), Jeannerod (Claude-Pierre), and Schost (Éric). – Solving structured linear
‌ -3, , pp. 155–
systems with large displacement rank. Theoret. Comput. Sci., vol. 407, n1
181.
[3] Brent (Richard P.), Gustavson (Fred G.), and Yun (David Y. Y.). – Fast solution of Toeplitz
systems of equations and computation of Padé approximants. J. Algorithms, vol. 1, n‌3, ,
pp. 259–295.
[4] Cardinal (Jean-Paul). – On a property of Cauchy-like matrices. C. R. Acad. Sci. Paris Sér.
I Math., vol. 328, n‌11, , pp. 1089–1093.
[5] Gohberg (I.) and Olshevsky (V.). – Complexity of multiplication with vectors for structured
matrices. Linear Algebra Appl., vol. 202, , pp. 163–192.
[6] Gohberg (I. C.) and Semencul (A. A.). – On the inversion of finite Toeplitz matrices and
their continuous analogues (in russian). Mat. Issled., vol. 7, n‌2, , pp. 201–223.
[7] Golub (Gene H.) and Van Loan (Charles F.). – Matrix computations. – Johns Hopkins Uni-
versity Press, Baltimore, MD, , third edition, Johns Hopkins Studies in the Mathematical
Sciences, xxx+698p.
[8] Gustavson (Fred G.) and Yun (David Y. Y.). – Fast algorithms for rational Hermite approxi-
mation and solution of Toeplitz systems. IEEE Trans. Circuits and Systems, vol. 26, n‌9, ,
pp. 750–755.
[9] Kailath (T.), Kung (S. Y.), and Morf (M.). – Displacement ranks of a matrix. Bull. Amer.
‌ , , pp. 769–773.
Math. Soc. (N.S.), vol. 1, n5
[10] Kailath (Thomas), Kung (Sun Yuan), and Morf (Martin). – Displacement ranks of matrices
and linear equations. J. Math. Anal. Appl., vol. 68, n‌2, , pp. 395–407.
[11] Kaltofen (Erich). – Asymptotically fast solution of Toeplitz-like singular linear systems. In
ISSAC’94. pp. 297–304. – ACM, New York, NY, USA, .
[12] Kaltofen (Erich). – Analysis of Coppersmith’s block Wiedemann algorithm for the parallel
solution of sparse linear systems. Math. Comp., vol. 64, n‌210, , pp. 777–806.
[13] Levinson (Norman). – The Wiener RMS (root mean square) error criterion in filter design
and prediction. J. Math. Phys. Mass. Inst. Tech., vol. 25, , pp. 261–278.
[14] Morf (M.). – Doubling algorithms for Toeplitz and related equations. In IEEE Conference
on Acoustics, Speech, and Signal Processing, pp. 954–959. – .
[15] Pan (Victor). – On computations with dense structured matrices. Math. Comp., vol. 55, n‌191,
, pp. 179–190.
[16] Pan (Victor Y.). – Structured matrices and polynomials. – Birkhäuser Boston Inc., Boston,
MA, , xxvi+278p. Unified superfast algorithms.
[17] Pan (Victor Y.) and Zheng (Ailong). – Superfast algorithms for Cauchy-like matrix compu-
‌ -3, , pp. 83–108.
tations and extensions. Linear Algebra Appl., vol. 310, n1
[18] Trench (William F.). – An algorithm for the inversion of finite Toeplitz matrices. J. Soc.
Indust. Appl. Math., vol. 12, , pp. 515–522.
CHAPITRE 12

Principe de transposition de Tellegen

Résumé

Le principe de transposition est un ensemble de règles de transformation


pour les algorithmes calculant des applications linéaires. Pour tout algo-
rithme qui calcule des produits matrice-vecteur par une matrice fixée M,
ces règles de transformation permettent d’obtenir un algorithme dual qui
calcule des produits matrice-vecteur par la matrice transposée de M.
En outre, la complexité arithmétique de l’algorithme dual est essentiel-
lement égale à celle de l’algorithme initial.

1. Introduction
Le théorème de transposition de Tellegen affirme que, étant donnée une ma-
trice M de taille m × n à coefficients dans un corps K, sans lignes ni colonnes
nulles, tout algorithme linéaire A qui calcule l’application linéaire v 7→ M · v de
Kn → Km en L opérations dans K peut être transformé en un algorithme dual t A
qui calcule l’application linéaire transposée w 7→ t M · w de Km → Kn en L − n + m
opérations dans K. Ici, par algorithme linéaire on entend un algorithme qui n’utilise
que des opérations linéaires en les éléments de l’entrée.
Par extension, on appelle principe de Tellegen l’ensemble des règles de trans-
formation réalisant le passage de l’algorithme direct à l’algorithme dual.

Motivation. Si l’algorithme utilisé pour la multiplication matrice-vecteur est l’al-


gorithme naïf, cet énoncé Pdevient trivial. En effet, dans ce cas :
• M · v requiert Pi (αi − 1) = E − m opérations ± et E opérations ×
• t M · w requiert j (βj − 1) = E − n opérations ± et E opérations ×
où αi (resp. βj ) est le nombre d’éléments non-nuls de la i-ième ligne (resp. de la j-
ième colonne) de M, et E est le nombre d’éléments non-nuls de M. Par conséquent,
pour une matrice complètement générique, le théorème de Tellegen ne présente
aucun intérêt. Par contre, si la matrice M admet une structure, il est concevable
que l’on dispose d’un algorithme plus rapide que l’algorithme naïf (quadratique)
pour la multiplier par un vecteur de Kn . En utilisant le principe de transposition,
on obtient aussitôt un algorithme rapide pour multiplier t M par un vecteur de Km .

Exemple 1. Considérons l’exemple suivant, qui illustre ce principe en utilisant


la représentation par graphes des algorithmes linéaires. L’algorithme direct prend
les valeurs x1 et x2 en entrée et renvoie y1 = ax1 + bx2 et y2 = cx1 + dx2 en sortie.
Les arêtes représentent des multiplications par des valeurs scalaires a, b, c, d.
x1 a + y1
b
c
x2
d
+ y2

157
158 12. PRINCIPE DE TRANSPOSITION DE TELLEGEN

Transposer cet algorithme revient à inverser le flot du calcul, c’est-à-dire, in-


verser le sens des flèches, permuter les ‘+’ avec les ‘•’ et les entrées avec les sor-
ties. L’algorithme ainsi obtenu prend y1 , y2 en entrée et renvoie x1 = ay1 + cy2 et
x2 = by1 +dy2 . Il calcule donc bien l’application transposée de l’application initiale.
De plus, le nombre d’opérations arithmétiques utilisées par les deux algorithmes est
le même : 4 multiplications et 2 additions.

x1 + a y1
b
c
x2 + d
y2

Utilité. Comme nous l’avons vu au Chapitre 11, beaucoup de problèmes en calcul


formel s’expriment en termes d’algèbre linéaire structurée (multiplication par un
vecteur ou résolution de système). Par exemple, les opérations élémentaires sur les
polynômes (multiplication, division, évaluation-interpolation, interpolation ration-
nelle, extrapolation, etc.) sont linéaires si l’on fixe l’un des opérandes : ils se codent
en termes de produits matrice-vecteur M · v ou M−1 · v, où M est une matrice
structurée (de type Toeplitz, Hankel, compagnon, Vandermonde, Cauchy,. . . )
Grâce au principe de Tellegen, comprendre, analyser et améliorer un algorithme
se ramène à comprendre, analyser et améliorer son transposé. Deux sont ses uti-
lités principales : trouver des solutions algorithmiques de meilleure complexité, et
clarifier le statut de certains algorithmes existant dans la littérature, qui parfois
sont simplement des transposés d’algorithmes bien connus. Cela permet ainsi le
traitement algorithmique unifié des problèmes duaux. On peut résumer en disant
que le principe de transposition permet de diviser par deux le nombre d’algorithmes
linéaires qu’il reste à découvrir.

Un exemple moins trivial. Considérons le problème de l’évaluation d’un po-


lynôme P ∈ K[X] de degré n en une valeur a ∈ K. C’est une opération linéaire en
les coefficients de P , de matrice M = [1, a, . . . , an ] dans les bases canoniques. Le
problème transposé est donc le suivant : pour une valeur donnée x0 ∈ K, calculer
les produits ai x0 , pour 0 ≤ i ≤ n. Pour ce problème, un algorithme naturel consiste
à multiplier x0 par a, ensuite multiplier le résultat par a, et ainsi de suite.
Le transposé de cet algorithme s’obtient en parcourant l’algorithme direct en
sens inverse, tout en permutant les entrées avec les sorties, et en remplaçant chaque
instruction par sa transposée, obtenue en appliquant un nombre restreint de règles
syntaxiques. Dans ce processus, les boucles for montantes deviennent des boucles
for descendantes.
De cette manière, on obtient automatiquement un algorithme pour le problème
de départ, à savoir, l’évaluation de P sur a. Dans notre cas, il s’avère que l’algo-
rithme transposé coïncide avec la fameuse méthode de Horner, voir la Figure 1.
Observons que l’algorithme transposé utilise n opérations de plus que l’algorithme
direct. Cette perte s’explique par le théorème de Tellegen : il s’agit tout simplement
de la différence entre le nombre de colonnes et le nombre de lignes de M. Cette
observation peut être utilisée pour expliquer l’optimalité de la règle de Horner.

2. La version en termes de graphes du principe de Tellegen


Dans cette section nous donnons une version du théorème de Tellegen dans un
modèle particulier, celui des graphes de calcul (DAG).
2. LA VERSION EN TERMES DE GRAPHES DU PRINCIPE DE TELLEGEN 159

M = [1, a, . . . , an ]
Pn
7 [x0 , ax0 , . . . , an x0 ]
x0 → [p0 , . . . , pn ] 7→ i=0 pi ai
Entrée x0 . Entrée p = [p0 , . . . pn ].
p 0 ← x0 ; for j from n downto 1 do
for j from 1 to n do pj ← apj ;
pj ← pj−1 ; pj−1 ← pj + pj−1 ;
pj ← apj ; x0 ← p0 ;
Sortie p = [p0 , . . . , pn ]. Sortie x0 .

Figure 1. Le schéma de Horner (à droite) obtenu en transposant


l’algorithme qui résout le problème dual.

Definition 1. Un graphe acyclique orienté, ou DAG (de l’anglais directed


acyclic graph) est un graphe orienté G = (V, E) qui ne possède pas de cycle. Un
DAG K-linéaire est un DAG muni d’une fonction de poids λ : E → K.
Soit I = {x1 , . . . , xn } l’ensemble des nœuds d’entrée de G. À tout sommet
v ∈ V on associe une forme linéaire dans K[X1 , . . . , Xn ] de la façon suivante :
– si v = xi ∈ I, alors hv := XX i,
– si v ∈ V \ I, alors hv := λ(e) hw .
e=(w,v)∈E

Definition 2. On dit que G calcule la matrice M =P [ai,j ] de taille m × n si les


n
formes linéaires associées aux nœuds de sortie sont Fi = j=1 ai,j Xj , i = 1, . . . , m.
Le coût de G est le nombre d’opérations linéaires c(G) induites par G.
Avec ces notations, le principe de Tellegen s’énonce comme suit.
Théorème 1. Soit G un K-DAG qui calcule une matrice M de Mm,n (K).
Alors le graphe transposé t G, obtenu en inversant le sens des flèches sans changer
leur poids, calcule la matrice t M. De plus,
c(t G) = c(G) − n + m.
Esquisse de preuve. La forme linéaire calculée par un sommet v de G est
 
Xn X Y
hv =  λ(p) Xj , où λ(p) = λ(e).
j=1 p∈ Chemin(xj ,v) e arête de p
X
On a donc l’égalité ai,j = λ(p), qui montre que t G calcule bien t M.
p∈ Chemin(xj ,Fi )
L’égalité entre les coûts se déduit du fait que la quantité c(G)−|I(G)| ne dépend
pas de l’orientation de G, comme montré par le lemme suivant. 
Lemme 1 (formule pour le coût d’un graphe de calcul). Avec les notations
précédentes, on a l’égalité
c(G) = {e ∈ E | λ(e) 6= ±1} + |E| − |V | + |I|.
Esquisse de preuve. Tout sommet v qui reçoit d(v) > 0 arêtes contribue au
coût de G avec {e = (w, v) ∈ E | λ(e) 6= ±1} + d(v) − 1 opérations dans K.
Graphiquement, cela se voit sur la représentation suivante :
La conclusion se déduit alors aisément de la suite d’égalités
X  X X
d(v) − 1 = d(v) − 1 = |E| − (|V | − |I|).
v∈V \I v∈V \I v∈V \I


160 12. PRINCIPE DE TRANSPOSITION DE TELLEGEN

3. Principe de Tellegen pour les programmes linéaires


Le but de cette section est de décrire le principe de Tellegen dans le modèle des
programmes linéaires sur des machines à allocation de registres (machines RAM).

3.1. Machines à registres. Commençons par définir les machines RAM à


instructions linéaires.

Definition 3. On fixe un entier M ; il représente la mémoire disponible, de


sorte que l’on peut accéder à M registres R1 , . . . , RM . On y stocke des nombres,
c’est-à-dire des éléments du corps K.
Un programme linéaire est la donnée des objets suivants :
– un sous-ensemble Ri1 , . . . , Rin des registres que l’on appelle entrée ;
– un sous-ensemble Ro1 , . . . , Rom des registres que l’on appelle sortie ;
– une suite d’instructions portant sur les registres, choisies parmi :
– Ri = ±Rj ± Rk , avec 1 ≤ i, j, k ≤ M ,
– Ri = λRj , avec 1 ≤ i, j ≤ M et λ dans K.

Le fonctionnement d’un tel programme est le suivant : à l’initialisation, les


registres d’entrée reçoivent des valeurs x1 , . . . , xn ∈ K et les autres sont mis à zéro.
On effectue ensuite toutes les instructions, puis le programme renvoie les valeurs
des registres de sortie. Noter que l’on calcule bel et bien une fonction linéaire des xi .

3.2. Transposition de programme. Nous décrivons maintenant le principe


de transposition des programmes linéaires sur une machine RAM.

Cas d’un jeu d’instructions réduit. Pour commencer, on traite le cas d’une
machine avec un jeu d’instructions limité par rapport au cas général. On ne s’au-
torise que les instructions du type :
– Ri = Ri ± Rj , avec 1 ≤ i, j ≤ M ;
– Ri = λRi , avec 1 ≤ i ≤ M, λ ∈ K.
Pour « transposer » un programme comportant des instructions de ce type, on
interprète chacune de ces intructions comme une application linéaire KM → KM .
Pour motiver ce procédé, considérons un exemple. Avec M = 3, l’instruction
R1 = R1 + R3 s’interprète comme l’application linéaire dont la matrice est
 
1 0 1
 0 1 0 ;
0 0 1
3. PRINCIPE DE TELLEGEN POUR LES PROGRAMMES LINÉAIRES 161

R2 et R3 n’ont pas changé et R1 devient R1 +R3 . La transposée de cette application


linéaire a pour matrice  
1 0 0
 0 1 0  ;
1 0 1
on en déduit que l’on peut la traduire par l’instruction R3 = R3 + R1 .
De manière générale, la transposée de l’instruction Ri = Ri +Rj est l’instruction
Rj = Rj + Ri . Par écriture matricielle, on voit que l’instruction Ri = λRi est
inchangée par transposition, et que Ri = Ri − Rj se transpose en Rj = Rj − Ri .
On peut alors définir le programme transposé d’un programme.
Definition 4. Le programme transposé t P du programme linéaire P est donné
par :
– les entrées de t P sont les sorties de P ;
– les sorties de t P sont les entrées de P ;
– les instructions de t P sont les transposées des instructions de P, prises en
sens inverse.
La dernière condition, le retournement de la liste des instructions, traduit l’éga-
lité matricielle t (AB) = t B·t A. La définition montre que si P calcule une application
linéaire Kn → Km , alors t P calcule bien l’application transposée Km → Kn .

Exemple 2. Considérons le programme


R4=R4+R2
R3=3*R3
R4=R4+R3
R2=2*R2
R3=R3+R2
R3=R3+R1
dont les entrées sont R1 , R2 , R3 et les sorties R3 , R4 . Ce programme calcule l’appli-
cation linéaire dont la matrice est
 
1 2 3
.
0 1 3
Le programme transposé s’écrit
R1=R1+R3
R2=R2+R3
R2=2*R2
R3=R3+R4
R3=3*R3
R2=R2+R4
et on vérifie qu’il calcule l’application linéaire dont la matrice est
 
1 0
 2 1 .
3 3

Cas général. Le cas du jeu d’instructions général se ramène au cas du jeu d’ins-
tructions réduit de manière immédiate. Ainsi, l’instruction R1 = R2 + R3 est équi-
valente à la suite d’instructions
R1=0
R1=R1+R2
R1=R1+R3
162 12. PRINCIPE DE TRANSPOSITION DE TELLEGEN

Il est donc possible de le transposer sous la forme


R3=R3+R1
R2=R2+R1
R1=0
De même, on réécrit aisément l’instruction Ri = λRj en utilisant le jeu d’instruc-
tions réduit, ce qui permet de la transposer, . . .
3.3. Optimisations. Notre principe de transposition n’est pas complètement
satisfaisant : au vu des règles de réécriture ci-dessus, il semble que l’on puisse perdre
jusqu’à un facteur 3 (en termes de nombre de lignes). On peut optimiser le code
produit, afin de regagner, autant que possible, les lignes perdues. On utilise pour
ce faire les règles suivantes :
Suppression des zéros. La transformation pour passer du cas général au jeu
d’instructions réduit introduit des lignes du type Ri = 0. On peut supprimer une
telle ligne, à condition de réécrire les instructions suivantes en conséquence.
Suppression des recopies. Après avoir supprimé les zéros, il se peut qu’il reste
des lignes du type Ri = ±Rj . On peut également supprimer ce type de ligne, à
condition de réécrire de manière judicieuse les instructions qui suivent.
Muni de ces règles supplémentaires, on peut montrer qu’il est possible d’obtenir
un code transposé qui fait exactement le même nombre de lignes que l’original mais
cela dépasse le cadre de ce cours.

4. Applications
Dans cette section, nous illustrons l’utilité pratique du principe de Tellegen à
travers quelques exemples. Les techniques de transposition permettront d’engendrer
des programmes linéaires pour effectuer les opérations suivantes sur les polynômes
à une variable : multiplication, division euclidienne, évaluation et interpolation
multipoint.
La figure 2 contient une liste (non-exhaustive) d’opérations linéaires de base
sur les polynômes à une variable et leurs problèmes transposés. Tout algorithme
résolvant un problème de la colonne de gauche peut être transposé en un algorithme
de même complexité pour le problème correspondant de la colonne de droite.

problème direct problème transposé


multiplication mul ( • , ) produit médian mult ( • , )
• × • = • • • × • • = •
X0 Xn X0 Xn X0 Xn X 2n X0 Xn X0 Xn X 2n X0 Xn X 2n X 3n
division euclidienne extension de récurrences
A 7→ A mod P (a0 , . . . , an−1 ) 7→ (a0 , . . . , a2n−1 )
évaluation multipoint sommes de Newton pondérées
(p0 , . . . , pn−1 ) 7→ ( pi , . . . , pi ain−1 )
P P
P 7→ (P (a0 ), . . . , P (an−1 ))
interpolation décomposition en éléments simples
(systèmes de Vandermonde) (systèmes de Vandermonde transposés)
décalage de polynômes évaluation dans les factorielles descendantes
ai X i 7→ (P (0), . . . , P (n − 1))
P
P (X) 7→ P (X + 1) P =
extrapolation sur 0, 1, 2, . . . division modulo (X − 1)n
q-décalage évaluation dans les q-factorielles descendantes
composition modulaire projection des puissances
... ...

Figure 2. « Dictionnaire de Tellegen » pour les polynômes univariés.


4. APPLICATIONS 163

4.1. Produit médian des polynômes. Commençons par transposer la mul-


tiplication des polynômes. Cette opération n’est pas linéaire, mais elle le devient
lorsqu’on fixe l’un des deux opérandes. Fixons une fois pour toutes un polynôme f
dans K[X] de degré m. Pour n ≥ 0 quelconque, considérons l’application de multi-
plication mf,n : K[X]≤n → K[X]≤m+n qui à un polynôme g associe le produit f g. Il
est aisé de voir que la transposée de cette opération t mf,n : K[X]≤m+n → K[X]≤n
consiste à extraire les coefficients de X m , X m+1 , . . . , X m+n du produit d’un poly-
nôme de degré au plus m + n par le polynôme réciproque f˜ de f .
Exemple 3. Par exemple, soit f = 2 + X + 3X 2 ; la matrice de mf,2 dans les
bases canoniques de K[X]≤2 et K[X]≤4 est donnée par la matrice de type Toeplitz
 
2 0 0
 1 2 0 
 
 3 1 2 .
 
 0 3 1 
0 0 3
Sa transposée est
 
2 1 3 0 0
 0 2 1 3 0 .
0 0 2 1 3
Cette dernière matrice est la partie médiane de la matrice de Toeplitz suivante
 
3 0 0 0 0
 1 3 0 0 0 
 
 2 1 3 0 0 
 
 0 2 1 3 0 
 ,
 0 0 2 1 3 
 
 0 0 0 2 1 
0 0 0 0 2

qui représente le produit du polynôme f˜ = 3 + X + 2X 2 par un polynôme h de


degré 4. Cette partie médiane donne les coefficients de degré 2, 3, 4 du produit f˜h.
Cela explique pourquoi le produit transposé est appelé produit médian.
Le produit médian est une opération importante, qui intervient comme brique
de base dans nombre d’algorithmes sur les polynômes et les séries. Son calcul efficace
est un problème important à résoudre avant de passer à la transposition d’autres
algorithmes plus sophistiqués.
Par exemple, l’utilisation du produit médian permet d’améliorer (d’un facteur
constant) l’efficacité de l’opérateur de Newton pour l’inverse de séries formelles,
et mène aux optimisations mentionnées en page 63. Cette remarque s’applique
également aux autres opérations rapides sur les séries décrites au Chapitre 4. L’ac-
célération se répercute aussi sur la division euclidienne rapide, qui repose sur une
inversion de série (Théorème 1 du Chapitre 5).
En vertu du principe de Tellegen (Théorème 1) appliqué aux matrices de Toe-
plitz, le coût du produit médian est celui du produit f g, à m opérations près. En
particulier, si m = n, cela permet d’effectuer le calcul de la partie médiane pour le
coût d’une multiplication en degré n, au lieu des deux qu’on attendrait naïvement.
Il y a plusieurs algorithmes pour multiplier des polynômes, à chacun correspond
donc un algorithme de même complexité pour calculer le produit transposé ; cet
algorithme transposé peut être obtenu en appliquant le principe de Tellegen, soit
dans sa version graphes, soit par transformation de programmes linéaires. Plus
exactement, on a le résultat général suivant.
164 12. PRINCIPE DE TRANSPOSITION DE TELLEGEN

Théorème 2. Tout algorithme de complexité arithmétique M(n) pour la mul-


tiplication polynomiale en degré n peut être transformé en un algorithme de com-
plexité arithmétique M(n) + O(n) pour le produit médian en degrés (n, 2n).
Exercice 1. Vérifier le théorème dans le cas de la multiplication naïve des
polynômes. Expliciter l’algorithme transposé dans ce cas.
Exemple 4. En Figure 3, à gauche, est représenté un DAG qui calcule le
produit de deux polynômes de degré 1 à la Karatsuba (en utilisant 3 multiplications
au lieu de 4). Par transposition, on déduit un algorithme à la Karatsuba pour le
produit transposé de deux polynômes de degré 1 et 2. L’algorithme direct utilise 6
opérations arithmétiques (3 additions et 3 multiplications) ; l’algorithme transposé
en utilise 7 (4 additions et 3 multiplications). La différence de 1 opération est bien
sûr prédite par le Théorème 1.

mult 3 + 2x, a + bx + cx2



mul (2 + 3x, a + bx)

Figure 3. Produit direct et transposé à la Karatsuba, version DAG.

L’algorithme de Karatsuba et son code transposé sont donnés en Figure 4. Tous


les deux ont la même complexité O(nlog(3) ).

a b × c d 7→ U V a b ×t U V 7→ c d
|−−W −−| |−−W −−|

mul mult
Entrée (c, d). Entrée (U, V, W ).
V ←V −W ;
e←c+d ; U ←U −W ;
U ← mul(a, c) ; e ← mult (a + b, W ) ;
V ← mul(b, d) ; d ← mult (b, V ) ;
W ← mul(a + b, e) ; c ← mult (a, U ) ;
W ←W −U −V ; c←c+e ;
d←d+e ;
Sortie (U, V, W ). Sortie (c, d).

Figure 4. Algorithme de Karatsuba et son transposé.

Exemple 5. La matrice de la DFT étant symétrique, à tout algorithme (li-


néaire) qui la calcule est associé un algorithme transposé de même coût qui la
calcule également. Par exemple, à la variante de la DFT décrite au Chapitre 2 (due
4. APPLICATIONS 165

Figure 5. Dualité entre deux classes d’algorithmes pour la DFT :


à gauche, l’algorithme decimation-in-time de Cooley–Tukey, à
droite l’algorithme decimation-in-frequency de Gentleman–Sande.

à Gentleman et Sande) correspond un algorithme de Cooley et Tukey. En figure 5


sont représentés les DAG de ces algorithmes pour une DFT sur 4 points.
4.2. Division avec reste et extension des récurrences à coefficients
constants. On peut montrer que le dual du problème de la division avec reste
d’un polynôme de degré N par un polynôme fixé de degré n est l’extension des
récurrences linéaires à coefficients constants. Étant donnés les n premiers termes
d’une suite qui vérifie une récurrence linéaire à coefficients constants d’ordre n, il
s’agit de calculer la tranche des N termes suivants.
Pour une récurrence d’ordre n = 1, la preuve est immédiate : étendre une
récurrence un+1 = aun , de condition initiale u0 = x0 revient à calculer la suite des
valeurs x0 , ax0 , . . . , aN x0 à partir de x0 . Or, on a vu en page 158 que le dual de
ce problème est l’évaluation polynomiale en a, autrement dit, la division avec reste
modulo X − a.
Exercice 2. Finir la preuve dans le cas général (n quelconque).
Exercice 3. Transposer l’algorithme rapide de division euclidienne donné au
Chapitre 5 dans la preuve du Théorème 1 (page 76). En déduire un algorithme
de complexité O(M(n)) permettant de calculer les 2n premiers termes d’une suite
donnée par une récurrence linéaire d’ordre n à coefficients constants et n conditions
initiales.
4.3. Évaluation multipoint et interpolation. Comme vu au Chapitre 6,
l’évaluation multipoint se traduit en termes matriciels par un produit entre la
matrice de Vandermonde associée aux points ai et le vecteur des coefficients du
polynôme P , voir la Figure 6. Ainsi, le problème transposé est la multiplication
d’une matrice de Vandermonde transposée par un vecteur, c’est-à-dire, le calcul de
sommes de Newton pondérées (on les appelle ainsi car si tous les pi valent 1, on
retrouve les sommes des puissances des ai ).

1 a0 · · · an−1
        
P 
p0 P (a0 ) 1 1 ··· 1 p0 p
0
n−1 P i
 1 a1 · · · a1 p1   P (a1 )  a0 a1 · · · an−1 p1 a i pi 
·  =  ..  · = .
    
 .. .. .. .. et  .. .. .. .. ..
. . . . . . . . . .
an−1 an−1 n−1
n−1 P n−1
1 an−1 · · · an−1 pn−1 P (an−1 ) 0 1 · · · an−1 pn−1 ai pi

Figure 6. L’évaluation multipoint et sa transposée, les sommes


de Newton pondérées.
166 12. PRINCIPE DE TRANSPOSITION DE TELLEGEN

Figure 7. Algorithme rapide d’évaluation multipoint par produits


médians répétés (à droite), obtenu par transposition d’un algo-
rithme pour les sommes de Newton pondérées (à gauche).

Il est possible d’exploiter algorithmiquement cette dualité, à l’aide du principe


de transposition. L’idée est de proposer d’abord un algorithme rapide pour le calcul
de ces sommes de Newton, et ensuite de le transposer.
Pour ce faire, le point de départ est l’observation que la série génératrice des
sommes de Newton pondérées
X  n−1
X 
pi asi X −s−1
s≥0 i=0

est rationelle et vaut Q = B/A, où


n−1
X A
A = (X − a0 ) · · · (X − an−1 ) et B = pi .
i=0
X − ai

D’où l’algorithme suivant : on calcule A et B et on retourne les n premiers


coefficients du développement en série de Taylor à l’infini de Q = B/A. Le calcul de
A se fait en utilisant l’algorithme ArbreSousProduits donné en Figure 1 (page 89),
de complexité 21 M(n) log(n) + O(M(n)). Celui de B peut se faire par l’algorithme
de type « diviser pour régner » représenté en Figure 7 à gauche, de complexité
M(n) log(n) + O(M(n)). (Une solution équivalente serait de calculer simultanément
A et B par l’algorithme SommesFractions en page 91). Enfin, le développement en
série de Q s’effectue en O(M(n)) opérations arithmétiques grâce à des itérations de
Newton, comme décrit au Chapitre 4.
En résumé, on obtient un algorithme pour le calcul des sommes de Newton
pondérées, de complexité
3 
M(n) log(n) + O M(n) .
2
Par transposition, on construit un algorithme de même complexité pour l’évaluation
multipoint. Cet algorithme est représenté graphiquement en Figure 7, à droite.
Tout comme l’algorithme EvaluationRapide représenté en Figure 2 (page 90), le
nouvel algorithme repose sur une stratégie « diviser pour régner », mais remplace,
à chaque niveau de récursion, les divisions avec reste par des produits médians,
moins coûteux, d’où le gain d’un facteur constant dans la complexité.
Exercice 4. Écrire les détails des deux algorithmes en Figure 7.

Exercice 5. Soit K un corps et soit n un entier. On considère le problème


suivant :
NOTES 167

Étant données les valeurs en 0, 1, . . . , n − 1 d’un polynôme (inconnu) de K[X]


de degré au plus n, calculer les valeurs prises par ce polynôme en n, n +
1, . . . , 2n − 1.
Déterminer le problème dual, donner un algorithme de complexité O(M(n)) pour
ce dernier, et en déduire un algorithme explicite de complexité O(M(n)) pour le
problème de départ.
4.4. Bonus : l’évaluation et l’interpolation ont des coûts équivalents.
Un dernier exemple d’application du théorème de Tellegen, de nature plus théorique,
est la preuve du fait que les problèmes d’évaluation multipoint et d’interpolation
polynomiale sont équivalents du point de vue de la complexité.
Théorème 3. Tout algorithme qui effectue l’évaluation multipoint (resp. l’in-
terpolation) sur une famille fixée de points peut être transformé en un algorithme
d’interpolation (resp. d’évaluation multipoint) sur la même famille de points, de
même complexité à un nombre constant de multiplications polynomiales près.
Autrement dit, si E(n) et I(n) représentent les complexités de l’évaluation mul-
tipoint et de l’interpolation en n points, alors :
 
I(n) ∈ O E(n) + M(n) et E(n) ∈ O I(n) + M(n) .
Esquisse de preuve. Supposons qu’on dispose d’un algorithme I de com-
plexité I(n) pour l’interpolation sur les points a = (a0 , . . . , an−1 ). Le théorème de
Tellegen montre qu’on peut construire un algorithme t I de complexité I(n) pour
l’interpolation transposée sur a. On va montrer comment en déduire un algorithme
E pour l’évaluation multipoint sur a. L’idée est d’utiliser la factorisation matricielle
P P n−1 
Pn P i a2i ... i ai

P n
i ai i ai ... i ai
Va = (t Va )−1 · Ha ,
 
où Ha =  .. .. .. ,
 . . . 
P n−1 P n−1 P 2(n−1)
a
i i a
i i ... i ai

qui suggère l’algorithme E suivant : Q


• Appliquer I pour calculer A(X) = i (X − ai ), en complexité I(n) ;
• calculer Ha à partir des 2n − 1 premières sommes de Newton de A(X), par
l’algorithme de complexité O(M(n)) donné en Proposition 4, page 66 ;
• calculer v = Ha · p en O(M(n)) opérations, comme au Chapitre 11 ;
• retourner Va · p = t (Va−1 ) · v en I(n) opérations en utilisant l’algorithme t I.
La preuve du sens inverse est laissée en exercice. 

Exercice 6. Finir la preuve du Théorème 3.

Notes
La présentation de la Section 2 est inspirée de [24]. L’algorithme rapide de
l’exercice 3 pour l’extension de récurrences a été donné par Shoup dans [29, 31]. La
dualité division polynomiale ↔ extension de récurrences présentée en Section 4.2
est implicite dans [12, §IV.3]. Elle permet de clarifier le statut de l’algorithme
de Shoup : c’est la transposée de l’algorithme de Strassen [33] pour la division
euclidienne des polynômes. Ce fait a été mis en évidence dans [9].
L’algorithme présenté en Section 4.3, améliorant (d’un facteur constant) les
algorithmes classiques d’évaluation, est dû à [9]. Le principe de transposition est
également employé dans [9] pour accélérer (toujours par des facteurs constants) les
algorithmes classiques pour l’interpolation et pour son problème dual (la résolution
de systèmes de Vandermonde transposés). Les mêmes méthodes s’étendent au cas
plus général du théorème des restes chinois [7].
168 12. PRINCIPE DE TRANSPOSITION DE TELLEGEN

Le Théorème 3 est dû à [8]. La factorisation matricielle utilisée dans sa preuve


est tirée de [11].
Une autre application récente du principe de transposition est la suivante [10] :
si (P` )`≥0 est une familleP de polynômes de K[X], avec deg(P` ) = `, dont la série
génératrice exponentielle `≥0 P` (X)/`! · Y ` est de la forme v(Y ) · exp(X · h(Y )) 1,
alors les conversions entre la base canonique (X ` )`≥0 de K[X] et la base (P` )`≥0
peuvent s’effectuer en O(M(n)) opérations dès lors que v mod Y n peut se calculer
en O(M(n)) opérations, et pour une large classe de séries h.
Historique. Le principe de transposition a une histoire longue et tortueuse. Cette
technique de transformation des algorithmes linéaires est issue du domaine des cir-
cuits électroniques [6, 27, 1] et de la théorie du contrôle [20]. Le principe même
remonte aux années 1950 ; on en trouve les traces dans un article de Tellegen [34] sur
les réseaux électriques. Il a été généralisé aux filtres digitaux par Fettweis [14], où
l’on trouve une version embryonnaire de la version par graphes. Le théorème de Tel-
legen a été redémontré plusieurs fois, dans divers contextes et degrés de généralité,
par Fiduccia [15, 16], Hopcroft et Musinski [19], Knuth et Papadimitriou [25],
et par Kaminski, Kirkpatrick et Bshouty [24]. En calcul formel, il a été popula-
risé dans les travaux de Ben-Or, Tiwari [3], Kaltofen, Canny, Lakshman [11, 21],
Shoup [29, 30, 31], Lecerf, Schost [26], Hanrot, Quercia, Zimmermann [18], Zip-
pel [37], von zur Gathen et Gerhard [35], . . . Il est resté longtemps méconnu, comme
le montre cet extrait de l’article [36] de Wiedemann : « I was not able to find an
example of a linear operator that is easy to apply but whose transpose is difficult
to apply ». Le nom principe de transposition semble avoir été introduit par Kalto-
fen et Shoup dans [23, 32]. Un point de vue légèrement différent sur les aspects
historiques liés au principe de transposition peut être trouvé dans [4].
Dans la littérature du calcul formel, c’est surtout son caractère de théorème
d’existence qui est exploité : connaissant un algorithme pour une certaine opération
linéaire, on en déduit l’existence d’un algorithme de même complexité pour l’opé-
ration duale. Un fait mis en évidence plus récemment [9] est que la transposition
des programmes peut se faire de manière systématique et (quasi-)automatique. Les
algorithmes sont transposés directement, d’une manière similaire à celle utilisée en
différentiation automatique [17], mais en tirant profit des spécificités linéaires. Par
ailleurs, lorsqu’un problème linéaire doit être résolu efficacement, une démarche
naturelle consiste à essayer de trouver un algorithme rapide résolvant le problème
dual. Le cas échéant, une solution rapide pour le problème de départ est obtenue
en re-transposant cet algorithme. C’est le point de vue adopté en Section 4.3.
Produit médian. Le concept de produit médian a été introduit dans l’article [18],
qui souligne l’importance de cette nouvelle opération sur les polynômes.
En traitement du signal [5, 13], il était déjà connu que, si la multiplication est
effectuée à base de DFT, le produit médian en degrés (n, 2n) a la même complexité
que le produit en degré n. En effet, il se code matriciellement en un produit matrice–
vecteur par une matrice de Hankel de taille n ; or, celle-ci peut être plongée dans une
matrice circulante de taille 2n. Cela implique que dans le modèle de multiplication
polynomiale par FFT, un produit médian (n, 2n) peut être effectué en utilisant 3
DFT (deux directes et une inverse) de taille uniquement 2n (au lieu de 3n).
Cette interprétation n’est plus utile dans le modèle de multiplication par l’al-
gorithme de Karatsuba. L’article [18] est le premier à avoir proposé un algorithme
de type Karatsuba pour le produit médian.
Lien avec la différentiation automatique. Il a été remarqué dans [11, 22] que
le principe de transposition est lié au mode inverse en différentiation automatique

1. Une telle famille de polynômes est appelée suite de Sheffer [28].


Bibliographie 169

pour le calcul du gradient d’une fonction. En effet, les éléments de t M · w sont les
dérivées partielles de t v · t M · w par rapport aux coordonnées de v. Ce produit
n’est autre que t w · M · v, et le théorème de Baur-Strassen [2] montre que l’on peut
calculer ces dérivées partielles au prix d’un surcoût linéaire.
Lien avec la théorie de la complexité bilinéaire. Hopcroft et Musinski ont
donné dans [19] une version bilinéaire de l’algorithme de Tellegen. Étant donné un
algorithme bilinéaire qui utilise N multiplications pour le problème, noté (m, n, p),
de la multiplication de deux matrices de tailles m × n et n × p, il est possible
d’engendrer cinq algorithmes duaux, chacun utilisant exactement N multiplications,
pour les problèmes (n, m, p), (p, m, n), (m, p, n), (n, p, m) et (p, n, m). Ce résultat
admet la conséquence utile suivante (mentionnée en page 54) : si l’on peut calculer
en N multiplications dans K le produit de deux matrices quelconques sur K de
tailles m × n et n × p, alors ω ≤ 3 logmnp (N ).
Dualité pour l’évaluation des monômes à plusieurs variables. Knuth et Pa-
padimitriou [25] ont montré que si M = (ai,j ) est une matrice carrée inversible dont
les éléments sont des entiers strictement positifs, alors, partant de {X1 , . . . , Xn }, le
nombre minimum de multiplications pour évaluer les monômes
 a11 a12
X1 X2 · · · Xna1n , X1a21 X2a22 · · · Xna2n , . . . , X1an1 X2an2 · · · Xnann
est le même que le nombre minimum de multiplications pour évaluer les monômes
 a11 a21
X1 X2 · · · Xnan1 , X1a12 X2a22 · · · Xnan2 , . . . , X1a1n X2a2n · · · Xnann .
Cet énoncé peut être vu comme cas particulier du théorème de Tellegen.
Lien entre les algorithmes de Keller-Gehrig et de Storjohann. L’itéra-
tion de Keller-Gehrig (Chapitre 3, page 49) permettant le calcul de la suite s =
[x, ax, a2 x, . . . , aN x] (N = 2k − 1) est la transposée de l’algorithme « diviser pour
régner » pour d’évaluation d’un polynôme P (x) = a0 + · · · + aN xN en a via la
décomposition de type decimation-in-time P (x) = P0 (x2 ) + x · P1 (x2 ). L’algorithme
« diviser pour régner » pour l’évaluation de P en a via la décomposition de type
N +1
decimation-in-frequency P (x) = P0 (x)+x 2 P1 (x) admet comme dual l’algorithme
de Storjohann (Chapitre 14, page 181) pour calculer s.

Bibliographie
[1] Antoniou (A.). – Digital Filters : Analysis and Design. – McGraw-Hill Book Co., .
[2] Baur (W.) and Strassen (V.). – The complexity of partial derivatives. Theoretical Computer
Science, vol. 22, , pp. 317–330.
[3] Ben-Or (M.) and Tiwari (P.). – A deterministic algorithm for sparse multivariate polynomial
interpolation. In STOC’88. pp. 301–309. – ACM Press, .
[4] Bernstein (D. J.). – The transposition principle. – http://cr.yp.to/transposition.html.
[5] Bluestein (Leo I.). – A linear filtering approach to the computation of the discrete Fourier
transform. IEEE Northeast Electronics Research and Engineering Meeting, vol. 10, ,
pp. 218–219.
[6] Bordewijk (J. L.). – Inter-reciprocity applied to electrical networks. Appl. Sci. Res. B., vol. 6,
, pp. 1–74.
[7] Bostan (A.), Lecerf (G.), Salvy (B.), Schost (É.), and Wiebelt (B.). – Complexity issues in
bivariate polynomial factorization. In ISSAC’04, pp. 42–49. – ACM, New York, .
[8] Bostan (A.) and Schost (É.). – On the complexities of multipoint evaluation and interpolation.
‌ –3, , pp. 223–235.
Theoret. Comput. Sci., vol. 329, n1
[9] Bostan (Alin), Lecerf (Grégoire), and Schost (Éric). – Tellegen’s principle into practice. In
Sendra (J. R.) (editor), ISSAC’03. pp. 37–44. – ACM Press, .
[10] Bostan (Alin), Salvy (Bruno), and Schost (Éric). – Power series composition and change of
basis. In ISSAC’08, pp. 269–276. – ACM, New York, .
[11] Canny (J.), Kaltofen (E.), and Yagati (L.). – Solving systems of non-linear polynomial equa-
tions faster. In ISSAC’89. pp. 121–128. – ACM Press, .
170 12. PRINCIPE DE TRANSPOSITION DE TELLEGEN

[12] Cerlienco (L.), Mignotte (M.), and Piras (F.). – Suites récurrentes linéaires. Propriétés algé-
briques et arithmétiques. L’Enseignement Mathématique, vol. 33, , pp. 67–108.
[13] Chu (Eleanor) and George (Alan). – Inside the FFT black box. – CRC Press, , xxii+312p.
Serial and parallel fast Fourier transform algorithms.
[14] Fettweis (A.). – A general theorem for signal-flow networks, with applications. Archiv für
Elektronik und Übertragungstechnik, vol. 25, n‌12, , pp. 557–561.
[15] Fiduccia (C. M.). – On obtaining upper bounds on the complexity of matrix multiplication. In
Complexity of computer computations (Proc. Sympos., IBM Thomas J. Watson Res. Center,
Yorktown Heights, N.Y., 1972), pp. 31–40. – Plenum, New York, .
[16] Fiduccia (C. M.). – On the algebraic complexity of matrix multiplication. – PhD thesis, Brown
Univ., Providence, RI, Center Comput. Inform. Sci., Div. Engin., .
[17] Gilbert (J.-C.), Le Vey (G.), and Masse (J.). – La différentiation automatique de fonctions
représentées par des programmes. – Technical report, RR INRIA 1557, .
[18] Hanrot (Guillaume), Quercia (Michel), and Zimmermann (Paul). – The middle product al-
gorithm I. Appl. Algebra Engrg. Comm. Comput., vol. 14, n‌6, March , pp. 415–438.
[19] Hopcroft (J.) and Musinski (J.). – Duality applied to the complexity of matrix multiplication
and other bilinear forms. SIAM Journal on Computing, vol. 2, , pp. 159–173.
[20] Kalman (R. E.). – On the general theory of control systems. IRE Transactions on Automatic
Control, vol. 4, n‌3, , pp. 481–491.
[21] Kaltofen (E.), Corless (R. M.), and Jeffrey (D. J.). – Challenges of symbolic computation :
my favorite open problems. Journal of Symbolic Computation, vol. 29, n‌6, , pp. 891–919.
[22] Kaltofen (Erich). – Analysis of Coppersmith’s block Wiedemann algorithm for the parallel
solution of sparse linear systems. In Applied algebra, algebraic algorithms and error-correcting
codes, pp. 195–212. – Springer, Berlin, .
[23] Kaltofen (Erich). – Computational differentiation and algebraic complexity theory. In Work-
shop Report on First Theory Institute on Computational Differentiation, pp. 28–30. – .
[24] Kaminski (M.), Kirkpatrick (D. G.), and Bshouty (N. H.). – Addition requirements for matrix
and transposed matrix products. Journal of Algorithms, vol. 9, n‌3, , pp. 354–364.
[25] Knuth (Donald E.) and Papadimitriou (Christos H.). – Duality in addition chains. Bulletin
of the European Association for Theoretical Computer Science, vol. 13, , pp. 2–4.
[26] Lecerf (G.) and Schost (É.). – Fast multivariate power series multiplication in characteristic
zero. SADIO Electronic Journal on Informatics and Operations Research, vol. 5, n‌1, ,
pp. 1–10.
[27] Penfield, Jr. (P.), Spence (R.), and Duinker (S.). – Tellegen’s theorem and electrical net-
works. – The M.I.T. Press, Cambridge, Mass.-London, , xv+143p.
[28] Roman (Steven). – The umbral calculus. – Academic Press Inc. [Harcourt Brace Jovanovich
Publishers], New York, , Pure and Applied Mathematics, vol. 111, x+193p.
[29] Shoup (V.). – A fast deterministic algorithm for factoring polynomials over finite fields of
small characteristic. In ISSAC’91. pp. 14–21. – ACM Press, .
[30] Shoup (V.). – A new polynomial factorization algorithm and its implementation. Journal of
Symbolic Computation, vol. 20, n‌4, , pp. 363–397.
[31] Shoup (V.). – Efficient computation of minimal polynomials in algebraic extensions of finite
fields. In ISSAC’99. pp. 53–58. – ACM Press, New York, .
[32] Shoup (Victor). – Fast construction of irreducible polynomials over finite fields. J. Symbolic
Comput., vol. 17, n‌5, , pp. 371–391.
[33] Strassen (V.). – Die Berechnungskomplexität von elementarsymmetrischen Funktionen und
von Interpolationskoeffizienten. Numerische Mathematik, vol. 20, /, pp. 238–251.
[34] Tellegen (B.). – A general network theorem, with applications. Philips Research Reports,
vol. 7, , pp. 259–269.
[35] von zur Gathen (Joachim) and Gerhard (Jürgen). – Modern computer algebra. – Cambridge
University Press, New York, , xiv+753p.
[36] Wiedemann (D.). – Solving sparse linear equations over finite fields. IEEE Transactions on
Information Theory, vol. IT-32, , pp. 54–62.
[37] Zippel (R.). – Interpolating polynomials from their values. Journal of Symbolic Computation,
vol. 9, n‌3, , pp. 375–403.
CHAPITRE 13

Récurrences linéaires à coefficients polynomiaux :


N -ième terme, N premiers termes

Résumé
Pour calculer tous les N premiers termes d’une suite P-récursive, l’algo-
rithme direct par déroulement de la récurrence est quasi-optimal vis-à-
vis de N : sa complexité arithmétique (resp. binaire) est linéaire en N
(resp. quasi-quadratique en N ). Le N -ième terme d’une telle suite peut
être calculé plus√rapidement que l’ensemble des N premiers termes, en
essentiellement N opérations arithmétiques et N opérations binaires.
Le Chapitre 5 a montré comment calculer le N -ième terme d’une suite donnée
par une récurrence à coefficients constants en complexité arithmétique O(log N ).
Dans ce chapitre, nous nous attaquons au cadre plus général des récurrences à
coefficients polynomiaux.
Le calcul du N -ième terme ou des N premiers termes 1 d’une suite P-récursive,
donnée par la récurrence à coefficients polynomiaux
(1) pr (n)un+r + · · · + p0 (n)un = 0, (n ∈ N),
intervient fréquemment en combinatoire et pour calculer des troncatures de séries,
ainsi que comme étape clé dans des algorithmes de recherche de solutions poly-
nomiales d’équations fonctionnelles linéaires, dans un algorithme de factorisation
déterministe d’entiers, ou encore en cryptologie, dans des questions de comptage de
points sur des courbes.
Si les coefficients pi (n) de la récurrence (1) ont degré au plus d en n, l’al-
gorithme naïf par déroulement de la récurrence a une complexité
 arithmétique
en O(rdN ) et une complexité binaire en O rN 2 MZ (d log N ) . Ces complexités sont
quasi-optimales vis-à-vis de N pour le calcul de tous les N premiers termes.
Pour le calcul du N -ième terme seul, les algorithmes présentés dans ce chapitre
n’ont pas une aussi bonne complexité que pour des coefficients constants, mais cette
fois encore, ils sont plus efficaces que le simple déroulement de la récurrence. La
situation se distingue de celle des problèmes et algorithmes présentés jusqu’ici : les
idées qui permettent le calcul du N -ième terme en bonne complexité arithmétique
ne sont pas les mêmes que pour abaisser la complexité binaire. Ainsi, l’algorithme
par pas de bébés et pas de géants de la Section 2 donne un gain en racine de N sur la
complexité arithmétique, par rapport à la méthode naïve. Quant à l’algorithme par
scindage binaire de la Section 3, il n’abaisse en rien la complexité arithmétique, et
améliore pourtant la complexité binaire jusqu’à la rendre quasi-linéaire en la taille
de sa sortie.

1. Calcul naïf de N ! et de suites P-récursives


1.1. Cas de la factorielle. La définition de la factorielle comme produit,
N ! = 1 × 2 × · · · × N,
1. Dans la suite on fait l’hypothèse que le coefficient de tête pr de la récurrence (1) ne s’annule
sur aucun des entiers 0, . . ., N − r, où N est l’indice du terme maximal que l’on souhaite calculer.

171
172 13. RÉCURRENCES LINÉAIRES À COEFFICIENTS POLYNOMIAUX

montre que N ! peut être calculé en N − 1 opérations arithmétiques.


L’estimation de la complexité binaire de cette méthode repose sur la formule
de Stirling :
1
log N ! = N log N − N log e + log N + O(1), N → ∞.
2
En particulier, nous retiendrons l’équivalence log N ! ∼ N log N qui donne la taille
de N !. La k-ième étape du produit multiplie k! par k + 1, soit donc un entier
de taille log k! ∼ k log k avec un entier de taille log(k + 1) ∼ log k. Ce produit
déséquilibré coûte donc moins de ckMZ (log k) opérations binaires pour une certaine
constante c. Le calcul complet de N ! par la méthode naïve effectue donc moins de
N
X
ckMZ (log k) = O N 2 MZ (log N )


k=1

opérations binaires.
La formule de Stirling montre que ces complexités arithmétique et binaire sont
quasi-optimales pour le calcul conjoint des nombres 1!, 2!, . . ., N !.

1.2. Cas général. Pour une suite P-récursive donnée par une récurrence de
la forme (1), le calcul par l’algorithme direct de un+r à partir des r valeurs précé-
dentes demande O(rd) opérations arithmétiques pour l’évaluation des polynômes
(par exemple par le schéma de Horner) puis O(r) opérations pour effectuer la com-
binaison linéaire des un+i . Le calcul naïf de u0 , . . . , uN à partir des valeurs initiales
u0 , . . ., ur−1 demande donc O(rdN ) opérations arithmétiques.
Une légère amélioration de cette borne vient de l’observation que les coef-
ficients pi (n) peuvent être évalués sur les entiers n = 0, 1, . . . , N en utilisant
des techniques d’évaluation multipoint rapide, avant de procéder au déroulement
de (1). Cela permet d’abaisser la complexité arithmétique du calcul de O(rdN ) à
O(rM(N +d) log(N +d)), ce qui devient Õ(r(N +d)) si la multiplication polynomiale
est à base de FFT.
Lorsque les coefficients des polynômes pi sont entiers, la complexité binaire de
l’algorithme naïf découle de nouveau essentiellement de la croissance de uN . Pour
estimer celle-ci, il est agréable d’adopter une vision matricielle et de faire apparaître
le rationnel uN comme un quotient d’entiers. Introduisons la suite vectorielle des
Un = t (un , . . . , un+r−1 ), qui vérifie la récurrence du premier ordre
 
0 pr (n)
 0 pr (n) 
1 
.. ..

Un+1 = A(n)Un avec A(n) =  .
 
pr (n)  . . 
 0 pr (n) 
−p0 (n) ... −pr−1 (n)
Considérons aussi la suite hypergéométrique (wn ) donnée par la condition initiale
w0 = 1 et la récurrence
wn+1 = pr (n)wn , (n ∈ N),
qui permet de récrire Un sous la forme
1 
Un = A(n − 1) · · · A(0) U0 .
wn
Le rationnel uN s’écrit alors
 uN = vN /wN , où vN est le premier coefficient du
vecteur A(N − 1) · · · A(0) U0 .
2. PAS DE BÉBÉS ET PAS DE GÉANTS 173

Pour estimer la croissance de vN , introduisons pour un vecteur U de taille r et


une matrice M de taille r × r la norme d’indice 1 et sa norme subordonnée
X r X r
kU k = |vj | et kM k = max |mi,j |.
1≤j≤r
j=1 i=1

Soit ` un majorant commun pour la taille binaire des coefficients des pi , 0 ≤


i ≤ r, et des conditions initiales uj , 0 ≤ j < r. Il s’ensuit que la norme de A(n) est
bornée par r 2` (d + 1)(n + 1)d et celle de U0 par r2` . Les majorations
|vN | ≤ kA(N − 1)k · · · kA(0)k kU0 k ≤ rN +1 2`(N +1) (d + 1)N (N !)d

fournissent la borne O dN log N + N ` + N log r sur la taille log |vN |. Par le même
raisonnement, la taille du dénominateur wN est du même ordre (mêmes formules
pour r = 1), si bien que par le même type d’argument que pour la factorielle,  la
complexité binaire du calcul naïf de uN est O rN 2 MZ (d log N + ` + log r) .

2. Pas de bébés et pas de géants


On a vu au Chapitre 5 que le N -ième terme d’une récurrence linéaire à coeffi-
cients constants peut être calculé en complexité arithmétique O(log N ). Dans le cas
des coefficients polynomiaux, les choses se compliquent : à ce jour, on ne connaît pas
d’algorithme polynomial en log N (il est fort possible qu’un tel algorithme n’existe
pas). L’exemple typique en est le calcul du N -ième terme de la factorielle uN = N !,
qui vérifie la récurrence à coefficients polynomiaux un+1 = (n + 1)un pour n ≥ 0.
Une solution efficace exploite le théorème « évaluation interpolation » (théorème 1
du Chapitre 6). Elle utilise la technique des√pas de bébés et pas de géants et requiert
un nombre d’opérations arithmétiques en N , à des facteurs logarithmiques près.
Pour simplifier la présentation, supposons que N est un carré parfait. L’idée de
l’algorithme est de poser
P (X) = (X + 1)(X + 2) · · · (X + N 1/2 ),
afin d’obtenir la valeur de uN à l’aide de l’équation
N 1/2
Y−1
P jN 1/2 .

(2) uN =
j=0

Cette égalité suggère la procédure suivante :


1. Pas de bébés
√ : Calculer les coefficients de P . Ceci peut être fait en utili-
sant O M( N ) log N opérations arithmétiques (en construisant un arbre
binaire de feuilles X + i comme en Section 4.2 du Chapitre 6).
√ √ √ √
2. Pas de géants : Évaluer P sur les points 0, N , 2 N , . . ., ( N − 1) N
et retrouver la valeur de uN à l’aide de l’équation (2). En utilisant les
techniques d’évaluation multipoint√ rapide (Chapitre
 6, Section 4.3), ceci
peut se faire également en O M( N ) log N opérations arithmétiques.
√ 
Le coût total de cet algorithme est O M( N ) log N opérations arithmétiques.
Si la FFT est utilisée pour la multiplication
√ des polynômes, le gain par rapport à la
méthode directe est de l’ordre de N , à des facteurs logarithmiques près, typique
pour la technique des pas de bébés et pas de géants. La technique gagne encore par
rapport à l’algorithme naïf si l’on emploie une multiplication par Karatsuba, mais
ne présente aucun intérêt avec la multiplication naïve.
Cette technique se généralise aux suites hypergéométriques quelconques ainsi
qu’au calcul d’un terme d’une suite récurrente linéaire à coefficients polynomiaux.
À cette fin, le polynôme à considérer est maintenant le polynôme matriciel
P (X) = A(X + m − 1) · · · A(X + 1)A(X),
174 13. RÉCURRENCES LINÉAIRES À COEFFICIENTS POLYNOMIAUX

pour m = (N/d)1/2 , où A est la matrice définie en page 172.


Le produit A(N − 1) · · · A(0) est alors le produit de (dN )1/2 évaluations de P ,
lequel a degré (dN )1/2 . L’algorithme obtient ces évaluations matricielles en réalisant
séparément les évaluations multipoints des r2 coordonnées de la matrice P .
La complexité arithmétique de cet algorithme est en O r2 M(md) log(md) +
 √ √ 
MM(r, m) log m = O r2 M( dN ) log(dN )+rθ M( dN ) log(N/d) opérations arith-
√ 
métiques, soit O M( dN ) log(dN ) si on ne tient pas compte de la dépendance en
l’ordre r de la récurrence.

Exercice 1. Écrire les détails de l’algorithme et de l’analyse de complexité.

Exercice 2. Étant donné un polynôme f ∈ K[X] de degré 2 et un entier


positif N , borner le nombre d’opérations dans K suffisantes pour déterminer le
coefficient de X N du polynôme f N . (Indication : La solution consiste à calculer
par exponentiation binaire tous les coefficients u0 , . . ., uN de f N mod X N +1 . Une
approche encore plus rapide repose sur le fait que les un satisfont à une récurrence
à coefficients polynomiaux d’ordre 2.)

2.1. Factorisation déterministe des entiers. Supposons √ que nous devons


factoriser un entier√N . Tester tous les diviseurs plus petits que N a une complexité
binaire linéaire en √ N . Afin √ d’accélérer ce calcul, on peut√ rassembler tous les entiers
plus petits que √ N en 4 N blocs, chacun contenant 4 N entiers consécutifs. Soit
c de l’ordre de 4 N et notons f0 = 1 · · · c mod N , f1 = (c + 1) · · · (2c) mod N , . . .,
fc−1 = (c2 − c + 1) · · · (c2 ) mod N . Si les valeurs f0 , . . . , fc−1 sont connues, alors il
devient facile de déterminer un facteur de N , √ en prenant des pgcd de f0 , . . . , fc−1
avec N : la complexité binaire associée est O 4 N MZ (log N ) log log N ).
Ainsi, la principale difficulté est de calculer les valeurs fi . Pour ce faire, on
prend A = Z/N Z et F le polynôme (X + 1) · · · (X + c) ∈ A[X], qu’on évalue en les
points 0, c, 2c, . . . , c(c − 1) en O(M(c) log c) opérations
√ de A. Par le théorème « éva-
4
luation interpolation
√ », puisque c est d’ordre N , la √ pour calculer les fi
complexité
est de O(M( 4 N ) log N ) opérations modulo N , soit O(M( 4 N ) MZ (log N ) log N )
opérations bits. Ce terme est dominant et est donc aussi la complexité totale du
calcul.

3. Scindage binaire
3.1. Cas de la factorielle. Pour exploiter la multiplication rapide, l’idée
consiste à équilibrer les produits en calculant P (a, b) = (a + 1)(a + 2) · · · b récur-
sivement par
 
a+b
P (a, b) = P (a, m)P (m, b) où m = .
2
Appelons C(a, b) le coût binaire du calcul de P (a, b). Il résulte immédiatement
de la méthode que ce coût vérifie l’inégalité

C(a, b) ≤ C(a, m) + C(m, b) + MZ log P (a, m), log P (m, b) .

Sous l’hypothèse raisonnable que la complexité de la multiplication d’entiers est


croissante avec la taille des entiers, le coût du calcul de P (a, m) est inférieur au
coût du calcul de P (m, b), d’où la nouvelle inégalité

C(a, b) ≤ 2C(m, b) + MZ P (m, b) .
3. SCINDAGE BINAIRE 175

À ce stade, le théorème « diviser pour régner » n’est pas suffisant pour conclure,
mais l’utilisation de l’inégalité précédente donne les inégalités successives

C(0, n) ≤ 2C(n/2, n) + MZ log P (n/2, n)
 
≤ 4C(3n/4, n) + 2MZ log P (3n/4, n) + MZ log P (n/2, n)
≤ ···
≤ 2k C(n−2−k n, n) + 2k MZ log P (n−2−k n, n) +· · · +MZ log P (n/2, n) ,
 

pour tout entier positif k. L’entier P (n − 2−k n, n) est le produit de 2−k n facteurs
de taille bornée par log n ; il a donc pour taille 2−k n log n. Par sous-additivité de la
fonction MZ , la dernière inégalité devient
C(0, n) ≤ 2k C(n/2k , n) + kMZ (n log n).
En choisissant finalement d’arrêter la récursion lorsque n − 2−k n et n diffèrent d’au
plus un, ce qui impose k de l’ordre de log n, on aboutit à la borne
C(0, n) ≤ O(log n) + MZ (n log n) log n

donc à une complexité binaire pour le calcul de N ! dans O MZ (N log N ) log N .
Si la multiplication entière utilisée repose sur la FFT, cette complexité s’écrit
O(N log3 N log log N ) ; si la multiplication entière utilisée est d’exposant α stricte-
ment plus grand que 1, elle s’écrit O (N log N )α .
3.2. Récurrences d’ordre 1. La factorielle de la section précédente suit la
récurrence un+1 = (n + 1)un . On considère ici tout d’abord les solutions de récur-
rences de la forme
un+1 = p(n)un , p ∈ Z[X].
Si p a degré d, log p(N ) est dans O(d log N ), si bien que la taille de uN
est O(dN log N ).
De même, pour toute récurrence de la forme
p(n)
un+1 = un , p, q ∈ Z[X],
q(n)
on peut pour calculer le terme uN appliquer séparément la même technique de
scindage binaire sur le numérateur et le dénominateur. Si d est le maximum des
degrés de p et q, le calcul produit deux entiers de taille O(dN log N ) en un nombre
d’opérations binaires en O MZ (dN log N ) log N . Ensuite, si le dénominateur est
non nul, la méthode de Newton (Chapitre
 5, théorème 2) permet d’effectuer la
division finale en O MZ (dN log N ) opérations binaires.
3.3. Calcul de e = exp(1). Le point de départ est la suite (en ) donnée par
n
X 1
en = .
k!
k=0
Cette suite converge vers e. Plus précisément, il est classique que le terme de reste
dans e − en se majore par une série géométrique de sorte que
1
0 ≤ e − en ≤ .
n n!
Pour calculer N décimales de e par cette série, il suffit de rendre n1n! inférieur
à 10−N . Il s’ensuit qu’il suffit de prendre N de sorte que n n! et 10N soient du
même ordre, c’est-à-dire d’avoir N proportionnel à n log n. Il suffit donc de prendre
n = O(N/ log N ) termes dans la série.
La suite (en )n≥0 vérifie en − en−1 = 1/n! et donc
n(en − en−1 ) = en−1 − en−2 .
176 13. RÉCURRENCES LINÉAIRES À COEFFICIENTS POLYNOMIAUX

Cette récurrence se récrit


      
en 1 n + 1 −1 en−1 1 1
= = A(n)A(n − 1) · · · A(2) .
en−1 n n 0 en−2 n! 0
| {z }
A(n)

Le calcul du produit de matrices peut alors être effectué par scindage binaire.
Le calcul de eN par ce procédé demande donc O(MZ (N log N ) log N ) opérations
binaires.
Pour calculer n décimales de e, la première étape ci-dessus construit deux entiers
de taille O(N log N ) = O(n) en O(MZ (n) log n) opérations binaires. Il faut ensuite
effectuer une division qui ne demande que O(MZ (n)) opérations par l’algorithme
de Newton. L’ensemble du calcul est donc quasi-optimal. (En outre, le log n n’est
pas présent pour des multiplications comme celle de Karatsuba dont l’exposant de
complexité est supérieur à 1.)
Un autre exemple d’application est donné dans les notes.
3.4. Suites polynomialement récursives. Considérons le cas général d’une
suite P-récursive vérifiant la récurrence (1) avec pi ∈ Z[X], i = 0, . . . , r. On garde
les notations d pour une borne sur les degrés des polynômes pi , et ` pour une borne
sur la taille de leurs coefficients. La même technique du scindage binaire permet
d’obtenir le résultat suivant.
Théorème 1. La complexité binaire de la méthode du scindage binaire pour
calculer uN est en O(rθ MZ (dN log N + `N + N log r) log N ).
Comme précédemment, cette borne de complexité peut être améliorée à
O(rθ MZ (dN log N +`N +N log r)) si l’exposant α de la complexité MZ (m) = O(mα )
est supérieur à 1.
Exercice 3. Vérifier les formules de ce théorème.

Exercices
Exercice 4 (Calcul rapide de factorielle et de coefficients binomiaux centraux).
Cet exercice montre comment calculer certaines suites récurrentes linéaires plus vite
que par la méthode de scindage binaire.
P2N
Soit N ∈ N et soit Q = i=0 qi X i ∈ Z[X] le polynôme Q(X) = (1 + X)2N .

1. Montrer que qN peut être calculé en utilisant uniquement des additions


d’entiers du triangle de Pascal, c’est-à-dire l’identité suivante sur les coef-
ficients du binôme :
     
n n−1 n−1
= + , k ≥ 1, n ≥ 1.
k k−1 k
Quelle est la complexité binaire de cet algorithme ?
On admet que le calcul de tous les nombres premiers inférieurs à N peut être effectué
en O(N log N/ log log N ) opérations binaires, qu’il existe au plus 3N/ log(N ) tels
nombres premiers et que la multiplicité avec laquelle apparaît le nombre premier p
dans la factorisation de N ! vaut
∞  
X N
ind(p, N ) = ,
i=1
pi
où la notation bxc représente la partie entière de x.

2. Montrer que le calcul de ind(p, N ) peut être effectué en O MZ (log N ) log N
opérations binaires.
Bibliographie 177

3. Montrer que la décomposition


 en facteurs premiers de N ! peut être effectuée
en O MZ (N ) log N opérations binaires, ainsi que celle de qN .
4. Montrer que N ! et qN peuvent
 alors être reconstruits
 en respectivement
O MZ (N log N ) log log N et O MZ (N ) log N opérations binaires.
P2N
Exercice 5. Soit N ∈ N et soit P = i=0 pi X i ∈ Z[X] le polynôme P (X) =
(1 + X + X 2 )N .
1. Montrer que O(M(N )) opérations binaires suffisent pour déterminer la pa-
rité de tous les coefficients de P .
Indication : un entier n est pair si et seulement si n = 0 dans K = Z/2Z.
2. Montrer que P vérifie une équation différentielle linéaire d’ordre 1 à coef-
ficients polynomiaux. En déduire que les pi suivent une récurrence d’ordre
2 que l’on précisera.
3. Donner un algorithme qui calcule pN en O(M(N log N ) log N ) opérations
binaires.

Notes
La méthode du scindage binaire est un grand classique en calcul formel. Elle a
été redécouverte à plusieurs reprises dans la littérature, dans différents contextes :
conversion d’une base à l’autre, calcul de décimales de constantes comme π ou e [7],
calcul avec des récurrences linéaires [10], [8, §6].
L’une des premières références mentionnant le scindage binaire est [1, §178],
qui suggère (sans preuve) qu’il permet l’évaluation numérique rapide des fonctions
D-finies. L’article de synthèse [2, §12] est une bonne référence sur l’historique de la
méthode.
L’algorithme par pas de bébés et pas de géants a été introduit par Strassen [11]
et généralisé dans [8] au problème du calcul d’un terme d’une suite récurrente
linéaire à coefficients polynomiaux.
L’algorithme de factorisation déterministe en Section 2.1 est basé également
sur la référence [11]. Une amélioration de cet algorithme se trouve dans [6]. No-
tons qu’on ne connaît pas de meilleur algorithme déterministe ; l’existence d’un tel
algorithme est un grand problème ouvert.
On trouve également dans [6] une application cryptographique du calcul du N -
ième terme d’une suite P-récursive au problème du comptage de points sur une
courbe hyperelliptique sur un corps fini. Le point de départ de cette application est
l’exercice 2, inspiré de [9, Pb. 4].
Les algorithmes de recherche de solutions polynomiales d’équations fonction-
nelles linéaires évoqués dans l’introduction sont donnés dans [5, 4].
Le résultat de la Section 3.3 est dû à [7] ; le même raisonnement se généralise
au calcul des sommes convergentes de suites hypergéométriques. En particulier,
c’est ainsi que les systèmes de calcul formel calculent rapidement π par une formule
découverte en 1989 par les frères Chudnovsky :

1 12 X (−1)n (6n)!(A + nB)
= 3/2
π C n=0
(3n)!n!3 C 3n
où A = 13591409, B = 545140134 et C = 640320.
La partie de l’exercice 4 consacrée au calcul de N ! est due à P. Borwein [3].

Bibliographie
[1] Beeler (Michael), Gosper (R.), and Schroeppel (Richard). – HAKMEM. – MIT, , Artifi-
cial Intelligence Memo No. 239.
178 13. RÉCURRENCES LINÉAIRES À COEFFICIENTS POLYNOMIAUX

[2] Bernstein (Daniel J.). – Fast multiplication and its applications. In Algorithmic number
theory : lattices, number fields, curves and cryptography, pp. 325–384. – Cambridge Univ.
Press, .
[3] Borwein (Peter B.). – On the complexity of calculating factorials. Journal of Algorithms,
vol. 6, n‌3, , pp. 376–380.
[4] Bostan (A.), Chyzak (F.), Cluzeau (T.), and Salvy (B.). – Low complexity algorithms for
linear recurrences. In ISSAC’06, pp. 31–38. – ACM, New York, .
[5] Bostan (Alin), Cluzeau (Thomas), and Salvy (Bruno). – Fast algorithms for polynomial so-
lutions of linear differential equations. In ISSAC’05. pp. 45–52. – ACM Press, NY, .
[6] Bostan (Alin), Gaudry (Pierrick), and Schost (Éric). – Linear recurrences with polynomial
coefficients and application to integer factorization and Cartier-Manin operator. SIAM J.
‌ , , pp. 1777–1806.
Comput., vol. 36, n6
[7] Brent (R. P.). – Multiple-precision zero-finding methods and the complexity of elementary
function evaluation. In Analytic computational complexity (Proc. Sympos., Carnegie-Mellon
Univ., Pittsburgh, Pa., 1975), pp. 151–176. – Academic Press, New York, .
[8] Chudnovsky (D. V.) and Chudnovsky (G. V.). – Approximations and complex multiplication
according to Ramanujan. In Ramanujan revisited, pp. 375–472. – Academic Press, MA, .
[9] Flajolet (Philippe) and Salvy (Bruno). – The Sigsam challenges : Symbolic asymptotics in
practice. SIGSAM Bulletin, vol. 31, n‌4, December , pp. 36–47.
[10] Kogge (P.) and Stone (H.). – A parallel algorithm for the efficient solution of a general class
of recurrence equations. IEEE Trans. Comp., vol. C-22, , pp. 786–793.
[11] Strassen (V.). – Einige Resultate über Berechnungskomplexität. Jber. Deutsch. Math.-
Verein., vol. 78, n‌1, /, pp. 1–8.
CHAPITRE 14

Solutions rationnelles de systèmes linéaires à


coefficients polynomiaux

Résumé
L’algorithmique des systèmes linéaires à coefficients des polynômes en
une variable est très similaire à celle des fractions rationnelles. En outre,
il est important de tirer parti du produit rapide de matrices.

On considère le système linéaire


(1) A(X)Y (X) = B(X),
où A et B sont donnés et Y est inconnu. A est une matrice n × n de polynômes,
régulière (de déterminant non nul) et B est un vecteur de polynômes. De manière
équivalente, on peut voir A (ou B) comme un polynôme à coefficients des matrices
(ou des vecteurs). Pour fixer les notations, on suppose deg A ≤ d et deg B < d.
On notera Mm,k (R) l’ensemble des matrices de taille m×k à coefficients dans R.
On notera K[X]d l’ensemble des polynômes de degré au plus d à coefficients dans le
corps K. La fonction M est telle que la multiplication dans K[X]d coûte au plus M(d)
opérations dans K. L’exposant θ est tel que la multiplication de deux matrices n×n
à coefficients dans K coûte O(nθ ) opérations dans K.
Nous aurons aussi besoin de produits de matrices de Mn (K[X]d ). Dans le cas
le plus général, ce produit est connu pour pouvoir être exécuté en O(nθ M(d))
opérations dans K, borne que nous utiliserons dans les estimations de complexité.
Lorsque le corps K contient suffisamment de points, par évaluation-interpolation,
ce coût descend à O(nθ d + n2 M(d) log d) ; dans les mêmes conditions, en choisissant
des points en progression géométrique, cette complexité peut être encore abaissée
à O(nθ d + n2 M(d)).

1. Des séries aux solutions rationnelles


Une première observation est que la structure de la solution cherchée est donnée
par les formules de Cramer.
Lemme 1. Le système possède une solution dont les coordonnées sont des frac-
tions rationnelles. Ses numérateurs et dénominateurs ont degrés bornés par nd − 1
et nd.
Démonstration. Le système (1) se récrit
A1 y1 + · · · + An yn = B,
où yi est la ième coordonnée de Y et Ai la ième colonne de A. La formule de Cramer
det(A1 , . . . , Ai−1 , B, Ai+1 , . . . , An ) = yi det(A),
est obtenue en remplaçant B par sa valeur dans le membre gauche et en développant
le déterminant.
Il en découle que yi est le quotient de déterminants de matrices appartenant
à Mn (K[X]d ). Ces déterminants ont donc degré au plus nd − 1 pour le numérateur
et nd pour le dénominateur. 
179
180 14. SYSTÈMES LINÉAIRES À COEFFICIENTS POLYNOMIAUX

L’algorithme de résolution suivant est justifié par la complexité quasi-optimale


des approximants de Padé (Chapitre 9).
Résolution de A(X)Y (X) = B(X) [Moenk-Carter 1979]
Entrée : A ∈ Mn (K[X]d ), B ∈ Mn,1 (K[X]d−1 )
Sortie : le vecteur de fractions rationnelles Y tel que AY = B.
1. Calculer le développement en série de A−1 B à précision 2nd.
2. Reconstruire les coefficients de Y par approximant de Padé.
Dans tous les algorithmes qui vont suivre, c’est la recherche de série solution qui
va dominer la complexité.

2. Développement comme une fraction rationnelle


La Proposition 3 du Chapitre 4 (page 64) montre que la méthode de Newton
fonctionne pour toute matrice inversible de séries. Avec cet algorithme, le calcul de
la fraction rationnelle solution de (1) demande O(nθ M(nd)) opérations dans K.
Il est possible d’améliorer l’efficacité lorsque la matrice est une matrice de
polynômes. La base de cette amélioration est contenue dans le lemme suivant.
Lemme 2. Soit A(X) ∈ Mn (K[X]d ) et B(X) ∈ Mn,m (K[X]d−1 ), avec A in-
versible. Pour tout k, il existe une matrice Bk ∈ Mn,m (K[X]d−1 ) telle que
(2) A−1 B = a0 + a1 X + · · · + ak−1 X k−1 + X k A−1 Bk ,
où ai ∈ Mn,m (K).
Démonstration. Si les ai sont les coefficients du développement en série
de A−1 B, alors
B − A(a0 + · · · + ak−1 X k−1 )
est une matrice de Mn,m (K[X]d+k−1 ) qui, par construction, est divisible par X k ,
d’où le lemme. 
Ce résultat se traduit algorithmiquement comme suit.

Développement de A−1 B
Entrée : A, B, k et S = A−1 mod X k ;
Sortie : a0 , . . . , ak−1 et Bk définis par l’équation (2).
1. Calculer SB =: a0 + · · · + ak−1 X k−1 mod X k .
2. Calculer Bk = (B − A(a0 + · · · + ak−1 X k−1 ))X −k .
3. Renvoyer a0 , . . . , ak−1 , Bk .
La proposition suivante estime le coût de cet algorithme. Elle peut être vue comme
l’analogue matriciel du Théorème 4 au Chapitre 5 (page 81).
Proposition 1. Soit A ∈ Mn (K[X]d ) avec A(0) inversible, alors on peut
calculer les N ≥ d premiers coefficients de A−1 en O(nθ N M(d)/d) opérations
dans K. Pour B ∈ Mn,1 (K[X]d−1 ), on peut calculer les N ≥ d premiers coeffi-
cients de A−1 B en O(n2 N M(d)/d) opérations dans K.
Démonstration. L’algorithme calcule d’abord l’inverse S = A−1 mod X d par
l’algorithme de Newton, en O(nθ M(d)) opérations dans K.
Ensuite, on applique N/d fois l’algorithme ci-dessus avec k = d pour calculer
à chaque itération d coefficients et un nouveau B(i+1)d . Si on part de B0 = I, le
résultat fournit les N premiers coefficients de A−1 ; si B0 = B, alors on obtient les
coefficients de A−1 B.
Les deux étapes de l’algorithme ci-dessus (avec k = d) coûtent O(nθ M(d))
opérations dans K si B a n colonnes, O(n2 M(d)) s’il n’en a qu’une. 
3. L’ALGORITHME DE STORJOHANN 181

Avec cet algorithme, le calcul de la fraction rationnelle solution de (1) demande


O(n3 M(d)) opérations dans K.

3. L’algorithme de Storjohann
L’algorithme de Storjohann permet de calculer les N premiers coefficients du
développement en série de A−1 B en O(nθ−1 N log N M(d)) opérations dans K. Si
θ < 3, cette quantité croît avec n moins vite que la taille de l’inverse A−1 , qui n’est
donc pas calculée en entier. Ainsi, la résolution du système linéaire (1) a un coût
en O(nθ M(d) log(nd)) opérations dans K.
L’algorithme repose sur le développement de A−1 B de la section précédente,
joint d’une part à une technique de type « diviser pour régner », d’autre part au
regroupement des calculs intermédiaires pour remplacer des groupes de n produits
matrice-vecteur par des produits matrice-matrice.
Pour commencer, on peut modifier l’algorithme de développement de A−1 B de
la section précédente pour calculer Bk sans calculer tous les coefficients a0 , . . . , ak−1 .
L’entrée nécessaire est moins grosse, et la complexité plus faible lorsque k est grand
devant d. Pour une série V = v0 + v1 X + · · · , on note
[V ]ba := va X a + · · · + va+b X a+b ,
avec la convention que les coefficients d’indice négatif de V sont nuls.

Développement de A−1 B tronqué


2d−2
Entrée : A, B, k et S = [A−1 ]k−2d+1 ;
Sortie : Bk défini par l’équation (2).
d−1
1. Calculer U := [SB]k−d .
2. Calculer Bk := [B − AU ]d−1
k X −k .
3. Renvoyer Bk .

Démonstration. Pour prouver la correction de cet algorithme, il faut s’assu-


rer que les troncatures de séries sont suffisantes pour calculer le même polynôme Bk
que précédemment.
Pour la première étape de l’algorithme, il suffit d’observer que B ayant degré
au plus d − 1, le coefficient de X i dans A−1 B ne dépend que de [A−1 ]d+1 i−d−1 , pour
tout i. Donc les coefficients calculés par cette première étape sont les mêmes que
les ai que précédemment, pour i = k − d, . . . , k − 1.
Ensuite, il faut calculer [X k Bk ]kd−1 . L’extraction des coefficients de l’équa-
tion (2) donne
[X k Bk ]d−1
k = [B − A(a0 + · · · + ak−1 X k−1 )]kd−1
= [B − A(ak−d X k−d + · · · + ak−1 X k−1 )]kd−1 ,
ce qui conclut la preuve. 
Une observation importante concernant cet algorithme est que c’est le même
polynôme S qui peut servir pour calculer Bi+k pour tout i. L’idée est alors de grou-
per plusieurs vecteurs Bi et de calculer les Bi+k correspondants par des produits
matrice-matrice. Noter que la ressemblance entre cette idée et celle de l’algorithme
de Keller-Gehrig en page 49.
Ainsi, si l’on connaît B0 , B2m , . . . , B2sm et [A−1 ]2d
m−2d , alors le calcul de la
θ−1
suite Bm , B3m , . . . , B(2s+1)m ne requiert que O(n s M(d)) opérations dans K.
En itérant cette idée, en partant de B0 et en supposant connus [A−1 ]2d−2 2k −2d+1
pour k = 0, . . . , dlog(N/d)e =: kmax , on obtient d’abord B0 , B2kmax , puis à l’étape
182 14. SYSTÈMES LINÉAIRES À COEFFICIENTS POLYNOMIAUX

suivante B0 , B2kmax −1 , B2kmax , B3·2kmax −1 , et ainsi de suite jusqu’à calculer toute


la suite B0 , Bd , B2d , . . . , BddN/de en O(kmax nθ−1 N M(d)/d) opérations dans K. En
multipliant alors ces vecteurs par [A−1 ]d0 on obtient finalement les N premiers co-
efficients de A−1 B pour le même coût.
Il reste à voir comment calculer les [A−1 ]22d−2k −2d−1 . Là encore, le point de départ

est l’identité (2), avec B = I, k = m et k = p :


A−1 = a0 + · · · + am−1 X m−1 + X m A−1 Bm
= a0 + · · · + am−1 X m−1 + X m (a0 + · · · + ap−1 X p−1 + X p A−1 Bp )Bm .
La seconde ligne est obtenue par substitution de la valeur de A−1 donnée par la
première ligne avec m = p. Ces équations entraînent pour tout ` ≥ 0 tel que
m+p−`≥d
(
2d−2
Bm+p = [−A[A−1 ]p−2d+1 Bm ]pd−1 X −p ,
[A−1 ]`−1
m+p−` = [[A
−1 `+d−2 `−1
]p−`−d+1 Bm ]m+p−` .

L’algorithme suivant s’en déduit en utilisant cette identité avec m = 2k − d, p = 2k


et ` = d − 1.

Développement de A−1 — indices puissances de 2


Entrée : S = [A−1 ]d−1
0 , T = [A−1 ]22d−2
k −2d+1 et B2k −d défini par (2)

avec B = I ;
Sortie : B2k+1 −d et [A−1 ]22d−2
k+1 −2d+1 .

1. Calculer [A−1 ]d−2


2k+1 −2d+1
= [T B2k −d ]2d−2
k+1 −2d+1 .

k
2. Calculer B2k+1 −d := [−AT B2k −d ]d−1
2k
/X 2 .
k+1
3. Calculer [A−1 ]d−1
2k+1 −d
= [X 2 −d
B2k+1 −d S]2d−1
k+1 −d .

4. Renvoyer B2k+1 −d et [A−1 ]22d−2


k+1 −2d+1 .

Pour résumer, ces algorithmes mènent au résultat suivant.


Théorème 1 (Storjohann 2002). Soient A une matrice n × n polynomiale de
degré d avec A(0) inversible et B un vecteur polynomial de degré au plus d−1, alors
on peut calculer le numérateur et le dénominateur de A−1 B en O(nθ M(d) log(nd))
opérations dans K.

Notes
L’idée de résoudre des systèmes linéaires à coefficients polynomiaux (resp. en-
tiers) par développement de Taylor (resp. p-adique) et reconstruction rationnelle
provient de [4, 1]. L’algorithme en page 181 et la Proposition 1 sont tirés de [4].
Dans tout ce texte, nous avons supposé que A(0) est inversible. En fait, les
résultats s’étendent au cas où A est inversible sans que A(0) le soit. Il suffit de tirer
aléatoirement un point et d’effectuer les développements en série au voisinage de
ce point. L’algorithme devient probabiliste. Si la caractéristique est positive, il se
peut que A soit inversible sans que sa valeur en aucun point du corps ne le soit. On
peut alors construire une extension du corps assez grande pour trouver un point où
effectuer ces calculs. Ces considérations sont prises en compte dans [5, 6].
L’article [6] montre que le déterminant d’une matrice polynomiale de taille n
et degré au plus d peut se calculer en O(nθ M(d) log2 (n)) opérations arithmétiques.
Storjohann et Villard [8] montrent comment calculer le rang et une base du noyau
d’une telle matrice en Õ(nθ d) opérations arithmétiques.
Bibliographie 183

Pour n une puissance de 2, Jeannerod et Villard [3] ont donné un algorithme


qui calcule l’inverse d’une matrice polynomiale inversible de taille n et degré au plus
d en Õ(n3 d) opérations arithmétiques. Des réductions entre diverses opérations sur
les matrices polynomiales ont été étudiées dans [2].
L’algorithme de ce chapitre et tous les autres résultats de [5, 6] ont été étendus
au cas entier dans [7]. Il n’est toujours pas connu si l’on peut calculer le polynôme
caractéristique d’une matrice polynomiale de taille n et degré au plus d en Õ(nθ d)
opérations arithmétiques.

Bibliographie
[1] Dixon (John D.). – Exact solution of linear equations using p-adic expansions. Numer. Math.,
vol. 40, n‌1, , pp. 137–141.
[2] Giorgi (Pascal), Jeannerod (Claude-Pierre), and Villard (Gilles). – On the complexity of po-
lynomial matrix computations. In ISSAC’03. pp. 135–142. – ACM, New York, .
[3] Jeannerod (Claude-Pierre) and Villard (Gilles). – Essentially optimal computation of the in-
verse of generic polynomial matrices. J. Complexity, vol. 21, n‌1, , pp. 72–86.
[4] Moenck (Robert T.) and Carter (John H.). – Approximate algorithms to derive exact solutions
to systems of linear equations. In EUROSAM ’79 : Proceedings of the International Sympo-
siumon on Symbolic and Algebraic Computation. Lecture Notes in Computer Science, vol. 72,
pp. 65–73. – Springer-Verlag, London, UK, .
[5] Storjohann (Arne). – High-order lifting. In Mora (Teo) (editor), ISSAC’02. pp. 246–254. –
ACM Press, July . Proceedings of the 2002 International Symposium on Symbolic and
Algebraic Computation, July 07–10, 2002, Université de Lille, France.
[6] Storjohann (Arne). – High-order lifting and integrality certification. J. Symbolic Comput.,
vol. 36, n‌3-4, , pp. 613–648.
[7] Storjohann (Arne). – The shifted number system for fast linear algebra on integer matrices. J.
‌ , , pp. 609–650.
Complexity, vol. 21, n4
[8] Storjohann (Arne) and Villard (Gilles). – Computing the rank and a small nullspace basis of
a polynomial matrix. In ISSAC’05, pp. 309–316. – ACM, New York, .
CHAPITRE 15

Solutions séries d’équations différentielles

Résumé
L’algorithme de Newton dans un cadre différentiel permet de calculer des
séries tronquées solutions d’équations différentielles en complexité quasi-
optimale. Pour certaines classes particulières importantes d’équations,
la complexité peut être encore abaissée.

Comme pour le Chapitre 4 sur les calculs rapides de séries, N sera utilisé pour
représenter le nombre de termes à calculer, et « série » sera employé pour « série
tronquée à l’ordre N », M(N ) dénote une borne supérieure sur le nombre d’opéra-
tions arithmétiques nécessaires pour multiplier deux polynômes de degré au plus N
(et par conséquent deux séries tronquées à l’ordre N ). On suppose pour simplifier
les expressions asymptotiques que la multiplication est plus coûteuse que l’addi-
tion, c’est-à-dire que M(N )/N tend vers l’infini avec N . L’efficacité des algorithmes
sera mesurée par leurs complexités arithmétiques. La complexité est alors quasi-
optimale lorsqu’elle est linéaire en N à des facteurs logarithmiques près. Nous nous
attacherons par ailleurs à expliciter la dépendance de la complexité vis-à-vis des
autres paramètres (ordre r de l’équation, degré d des coefficients lorsqu’ils sont po-
lynomiaux). Pour le cas particulier très important des équations et des systèmes
différentiels linéaires, les résultats de complexité de ce chapitre sont présentés au
tableau 1, dans lequel il faut comparer les complexités aux tailles des entrées et des
sorties. Par comparaison, la méthode la plus directe (les coefficients indéterminés),
est quadratique en N pour le cas où les coefficients sont des séries.
Tous les algorithmes sont énoncés pour des coefficients dans un anneau A (avec
en vue le cas de coefficients polynomiaux par exemple). Dans tout ce chapitre nous
ferons l’hypothèse supplémentaire que 2, 3, . . . , N sont inversibles dans A.

1. Équations différentielles d’ordre 1


Le cas de l’ordre 1 est plus simple que le cas général. Sa présentation sert d’in-
troduction à la section suivante, où les techniques employées ici seront généralisées.

Problème coefficients coefficients coefficients taille


(entrée, sortie) séries polynômes constants résultat
(équation, base) O(r2 M(N )) O(dr2 N ) O(rN ) rN
N

(équation, 1 solution) O(r M(N ) log N ) O(drN ) O M(r) r N
2 θ
(système, base) O(r M(N )) O(dr N ) O(rM(r)N ) r2 N
(système, 1 solution) O(r2 M(N ) log N ) O(dr2 N ) O(M(r)N ) rN
Table 1. Complexité de la résolution d’équations et de systèmes
différentiels linéaires pour N  r.

185
186 15. SOLUTIONS SÉRIES D’ÉQUATIONS DIFFÉRENTIELLES

1.1. L’équation linéaire homogène du premier ordre. Cette équation,


y 0 = A(X)y,
où A(X) est une série, admet la solution
Z 
(1) y(X) = y(0) exp A(X) .

Le calcul utilisant cette formule est dominé par celui de l’exponentielle, donc en
O(M(N )) par les algorithmes du Chapitre 4.
1.2. L’équation linéaire inhomogène du premier ordre. Il s’agit de
l’équation
y 0 = A(X)y + B(X),
où A et B sont des séries. La méthode de la variation de la constante consiste à
poser Z 
y(X) = f (X) exp A(X) ,

et à injecter cette expression dans l’équation pour obtenir que f vérifie


 Z 
0
f (X) = B(X) exp − A(X) .

L’ensemble du calcul de y est donc encore borné par O(M(N )) opérations.


1.3. Le cas non-linéaire. Ces préliminaires avaient pour but de prouver le
résultat plus général suivant.
Proposition 1. Soit F (X, Y ) ∈ A[[X, Y ]] une série bivariée telle que, pour
toute série s(X) ∈ A[[X]], les N premiers termes de F (X, s(X)) et de ∂F
∂y (X, s(X))
se calculent en O(L(N)) opérations. Alors, l’équation différentielle
y 0 = F (X, y), y(0) = a,
admet une série formelle solution, et ses N premiers termes peuvent être calculés
en O(L(N ) + M(N )) opérations.
L’énoncé de cette proposition en termes d’une fonction L permet de l’adapter
à différents besoins : dans le cas le pire, il est possible
√ d’invoquer l’algorithme de
Brent et Kung du Chapitre 4 pour avoir L(N ) = O(N N log N M(N )) qui domine
alors la complexité de la résolution. Cependant, pour des équations plus simples, la
composition avec F et sa dérivée pourra s’effectuer en O(M(N )). Ce sera le cas par
exemple si F s’obtient à l’aide d’un nombre constant de sommes, d’exponentielles,
de logarithmes, et de puissances.
Démonstration. L’idée de la preuve repose sur la méthode de Newton, ap-
pliquée cette fois-ci à un opérateur :
Φ : y 7→ y 0 − F (X, y).
Le principe consiste à linéariser l’opérateur Φ au voisinage d’une approximation et
à en annuler la partie linéaire, pour obtenir une nouvelle approximation. À partir
de
∂F
Φ(y + h) = Φ(y) + h0 − (X, y)h + O(h2 ),
∂y
il s’agit donc de calculer un incrément h solution de l’équation linéaire inhomogène
du premier ordre
∂F
h0 = (X, y)h − Φ(y),
∂y
2. ÉQUATIONS D’ORDRE SUPÉRIEUR ET SYSTÈMES D’ORDRE 1 187

qui peut être résolue par la méthode de la section précédente. On déduit l’itération
suivante
yk+1 := yk + hk ,
Z Z  Z 
∂F ∂F k+1
F (X, yk ) − yk0 exp − (X, yk ) mod X 2 .

hk := exp (X, yk )
∂y ∂y
Il reste à prouver la convergence quadratique. Comme pour le théorème sur l’itéra-
tion de Newton sur les séries du Chapitre 4 (p. 64), la preuve se fait par récurrence
k k
sur k en prouvant simultanément Φ(yk ) = O(X 2 ) et hk = O(X 2 ). Les calculs
sont les mêmes et sont donc laissés en exercice.
Pour obtenir le résultat de complexité, il suffit d’observer que l’itération requiert
à chaque étape la résolution d’une équation différentielle linéaire inhomogène du
premier ordre et d’invoquer le théorème « diviser pour régner ». 

2. Équations différentielles linéaires d’ordre supérieur et systèmes


d’ordre 1
L’équation différentielle d’ordre r
(2) ar (X)y (r) (X) + · · · + a1 (X)y 0 (X) + a0 (X)y(X) = 0
où les coefficients ai sont des séries en X, avec ar (0) 6= 0, peut être récrite comme
une équation d’ordre 1
(3) Y 0 = A(X)Y
en prenant pour Y le vecteur de séries (y(X), . . . , y (r−1) (X)) et A une matrice
(compagnon) de séries en X.
À l’inverse, un système (3) induit une relation de dépendance linéaire à coef-
ficients des séries entre Y, Y 0 , Y 00 , . . . , Y (r) si r est la dimension de A (on a r + 1
vecteurs en dimension r). Le vecteur Y et chacun de ses coefficients vérifient donc
une équation de type (2).
Résoudre un problème est donc équivalent à résoudre l’autre. Dans certains cas,
exploiter le caractère compagnon de la matrice induite par (2) mène à une meilleure
complexité pour le cas des équations.
Une différence importante avec le cas des équations d’ordre 1 est que nous
avons, pour les équations de type (2) comme pour les systèmes (3) deux problèmes
à considérer :
– calculer une base des séries solutions ;
– étant données des conditions initiales, calculer la série solution correspon-
dante.
Les complexités de ces problèmes sont liées : si l’on sait résoudre le second pour
un coût C, alors on sait résoudre le premier pour un coût borné par rC. Si l’on sait
résoudre le premier, alors une combinaison linéaire des solutions permet de résoudre
le second en au plus rN opérations supplémentaires.
Il est cependant utile de considérer les quatre problèmes (système ou équation,
base ou solution unique) car la structure de chacun des problèmes permet de conce-
voir des algorithmes plus efficaces que n’en donnent les conversions directes d’un
problème à l’autre.

2.1. Une méthode par « diviser pour régner ». L’équation à résoudre à


précision X N est ici
Y 0 − AY = B, Y (0) = v,
où A est une matrice de séries formelles. L’idée est de résoudre d’abord à précision
moitié et de déterminer puis résoudre l’équation satisfaite par le reste. La condition
188 15. SOLUTIONS SÉRIES D’ÉQUATIONS DIFFÉRENTIELLES

initiale est d’abord traitée séparément en écrivant Y = v + XU et en l’injectant


dans l’équation, ce qui mène à
XU 0 + (I − XA(X))U = C, C = B + A(X)v.
Soient maintenant d < N et U = U0 + X d U1 où U0 est un polynôme de degré au
plus d − 1 en X, l’équation satisfaite par U donne :
XU10 + ((d + 1)I − XA(X))U1 = −X −d (XU00 + (I − XA(X))U0 − C).
Si U0 est une solution à précision d, le membre droit de l’équation est bien un
polynôme. L’application du paradigme « diviser pour régner » amène donc natu-
rellement à considérer l’équation plus générale
XY 0 + (pI − XA)Y = R,
où R est une série, A une matrice de séries et p ∈ {1, . . . , N }.
L’algorithme récursif est donc le suivant :
DiviserPourRégner(A, p, s)
A = Ai X i ,
P
Entrée : A0 , . . . , AN −p dans M Pr×r (A),
s0 , . . . , sN −p dans Mr×` (A), s = si X i , p ∈ {1, . . . , N }.
Sortie : y dans Mr×` (A)[X] tel que degX y ≤ N − p et
Xy 0 + (pI − XA)y = s + O(X N −p+1 ).
m←N −p
Si m = 1 alors renvoyer p−1 s(0)
sinon
d ← bm/2c
y0 ← DiviserPourRégner(A, p + d, s mod X d )
m
R ← [s − Xy00 − (pI − XA)y0 ]d
y1 ← DiviserPourRégner(A, p + d, R)
renvoyer y0 + X d y1
m
La notation [s]d désigne le quotient de la division euclidienne de s mod X m par X d .
Cet algorithme est invoqué par l’algorithme de résolution suggéré ci-dessus et
dont voici une version détaillée.
SolDPR(A, N, B, v)
Ai X i ,
P
Entrée : A0 , . . . , AN dans Mr×r (A), P A =i
B0 , . . . , BN et v dans Mr×` (A), B = Bi X .
PN i
Sortie : y = i=0 yi X dans Mr×` (A)[X] tel que
y 0 − Ay = B et y(0) = v.
renvoyer v + XDiviserPourRégner(A, 1, B + Av)
Les résultats de complexité se déduisent de cette méthode pour différentes
valeurs de A et de `. En particulier, le cas des équations a une meilleure complexité
que le cas général d’un système d’ordre 1 car la matrice correspondante est une
matrice compagnon. Le produit d’une telle matrice par un vecteur ne coûte que r
opérations au lieu de r2 dans le cas général.
Théorème 1 (Diviser pour régner pour les équations différentielles). Étant
donnés les N premiers coefficients de A ∈ Mr×r (A[[X]]), de B ∈ Mr×` (A[[X]])
ainsi que des conditions initiales v ∈ Mr×` (A), l’algorithme SolDPR calcule
l’unique solution de
Y 0 − AY = B + O(X N ), Y (0) = v
en un nombre d’opérations dans A borné par
1. O(r2 `M(N ) log N ) en général ;
2. ÉQUATIONS D’ORDRE SUPÉRIEUR ET SYSTÈMES D’ORDRE 1 189

2. O(r`M(N ) log N ) si A est une matrice compagnon.


Il est possible d’améliorer les estimations de complexité pour cet algorithme
lorsque ` = r (calcul de toute une base des solutions), mais dans ce cas, il vaut
mieux employer les algorithmes de la section suivante, qui sont plus efficaces.
Démonstration. Il suffit de prouver le résultat pour N une puissance de 2,
et le cas général s’en déduit par les hypothèses habituelles sur la fonction de mul-
tiplication M.
Les opérations de troncature ne demandent pas de calcul dans A. Outre les
deux appels récursifs, le calcul demande une dérivation (linéaire), un produit par p
fois l’identité (linéaire) et un produit par A. La complexité C(N ) vérifie donc
C(N ) = 2C(N/2) + λ`N + Mult(A, V, N ),
où Mult(A, V, N ) désigne le coût du produit de la matrice A par la matrice r × ` de
séries à précision N . La conclusion s’obtient par le théorème « diviser pour régner »
en observant les complexités de base pour Mult(A, V, N ). 
2.2. L’itération de Newton matricielle. Comme dans la preuve de la Pro-
position 1, le point de départ de l’algorithme consiste à appliquer l’itération de
Newton à l’opérateur dont on cherche les solutions, en linéarisant au voisinage
d’une solution approchée. L’opérateur
Y 7→ Y 0 − A(X)Y
étant linéaire, il est son propre linéarisé. Formellement, l’itération de Newton s’écrit
donc
Yk+1 = Yk − Uk , Uk0 − AUk = Yk0 − AYk .
Lorsque Yk est une solution approchée, le membre droit de l’équation en Uk a
une valuation strictement positive, et la solution Uk cherchée doit avoir aussi une
telle valuation. Une telle solution est obtenue par la méthode de la variation de la
constante si l’on dispose d’une base des solutions, c’est-à-dire dans notre cas si Yk
est une matrice r × r avec det Yk (0) 6= 0. Dans ce cas, la méthode de la variation
de la constante suggère de poser Uk = Yk T , ce qui donne
Uk0 − AUk = Yk T 0 + AYk T − AYk T = Yk0 − AYk
| {z }
0
d’où finalement Z
Uk = Yk Yk−1 (Yk0 − AYk ).
Cette méthode requiert le calcul de l’inverse d’une base de solution, inverse qui
peut être calculé simultanément par l’itération de Newton :
Zk+1 = Zk + Zk (I − Yk Zk ).
Une version précise de l’algorithme, avec les ordres de troncature, est donnée en
Figure 1.
Lemme 1 (Correction de l’algorithme). Soit m un entier pair, soient y et z
dans Mr×r (A[X]) tels que
I − yz = O(X m/2 ), y 0 − Ay = O(X m ).
Soient ensuite Y et Z définis par
 Z 
Z := z(2I − yz) mod X m , Y := y I − Z(y 0 − Ay) mod X 2m .

Alors Y et Z vérifient
I − Y Z = O(X m ), Y 0 − AY = O(X 2m−1 ).
190 15. SOLUTIONS SÉRIES D’ÉQUATIONS DIFFÉRENTIELLES

SolSysDiffHom(A, N, Y0 )
Ai X i .
P
Entrée : Y0 , A0 , . . . , AN −2 in Mr×r (A), A =
PN −1 i
Sortie : Y = i=0 Yi X dans Mr×r (A)[X] tel que
Y 0 = AY + O(X N −1 ), et Z = Y −1 + O(X N/2 ).
Y ← (I + XA0 )Y0
Z ← Y0−1
m←2
tant que m ≤ N/2 faire
Z ← Z + Z(IRr − Y Z) mod X m
Z(Y 0 − A mod X 2m−1 Y ) mod X 2m

Y ←Y −Y
m ← 2m
renvoyer Y, Z

Figure 1. Résolution de Y 0 = A(X)Y , Y (0) = Y0 par itération de Newton.

Démonstration. D’après l’hypothèse sur y 0 − Ay = O(X m ), Y = y + O(X m )


et donc la convergence de l’inversion est donnée par

I − Y Z = I − y z + z(I − yz) + O(X m )




= (I − yz) − yz(I − yz) + O(X m )


= (I − yz)2 + O(X m ) = O(X m ).

La secondeR propriété s’obtient en injectant la définition de Y dans Y 0 − AY (on


pose Q = Z(y 0 − Ay)) :

Y 0 − AY = y 0 + y 0 Q − Ay − AyQ − yZ(y 0 − Ay) + O(X 2m ),


= (I − yZ)(y 0 − Ay) − (y 0 − Ay)Q + O(X 2m ),
= O(X m )O(X m ) + O(X m )O(X m−1 ) + O(X 2m ) = O(X 2m−1 ).

Comme d’habitude, l’application du théorème « diviser pour régner » mène au


résultat de complexité.

Théorème 2 (Newton pour les systèmes différentiels linéaires). L’algorithme


SolSysDiffHom calcule les N premiers termes d’une base de solutions de Y 0 = AY
en O(MM(r, N )) opérations dans A.

La notation MM(r, N ) représente la complexité du produit de matrices r × r de


polynômes de degré au plus N ; des bornes non triviales sont données au Chapitre 6 :

MM(r, N ) = O(rθ N + r2 M(N )).

Exercice 1. L’exponentielle d’une série est obtenue en O(M(N )) opérations


par cet algorithme lorsque r = 1. Vérifier que la constante est meilleure que celle
de l’algorithme du Chapitre 4.

Exercice 2. Le cas d’un système inhomogène Y 0 = AY + B, où B est une


matrice de séries, s’obtient à partir de l’algorithme précédent par variation de la
constante. Étudier les précisions requises dans les troncatures, et donner le résultat
de complexité.
4. EXTENSIONS 191

3. Cas particuliers
3.1. Équations différentielles linéaires à coefficients polynomiaux.
Pour ces équations, la méthode des coefficients indéterminés donne une complexité
linéaire en N . L’explication tient à une propriété vue au Chapitre 8 : les solutions
séries de ces équations ont des coefficients qui vérifient des récurrences linéaires.
Les résultats du Chapitre 13 sur les récurrences linéaires à coefficients polyno-
miaux s’appliquent alors, et en particulier les N premiers coefficients d’une solution
s’obtiennent en O(drN ) opérations si d est une borne sur le degré des qi .
Le cas matriciel se traite de la même façon, la récurrence ci-dessus étant alors
à coefficients matriciels. Les complexités sont de même nature, avec en outre la
possibilité d’utiliser un produit rapide de matrices dans le cas du calcul d’une base
de solutions. Les résultats correspondants sont donnés dans la table 1.

3.2. Équations différentielles linéaires à coefficients constants. Dans


le cas où les coefficients de l’équation ou du système sont constants, la formule (1)
s’applique encore et devient :
y(X) = exp(XA)y(0).
Pour étudier les propriétés de cette solution, il est usuel de faire intervenir la forme
de Jordan de la matrice, mais cette forme ne se prête pas facilement au calcul.
Un algorithme efficace est obtenu en exploitant la transformée de Laplace for-
melle. Si S = s0 + s1 X + s2 X 2 + . . . est une série, cette transformée est définie
par
LS = s0 + 1!s1 X + 2!s2 X 2 + . . . .
Les troncatures de LS + O(X N ) et de la transformée inverse L−1 S + O(X N ) se
calculent en N opérations. Cette transformation simplifie les systèmes différentiels
linéaires à coefficients constants en les rendant linéaires non-différentiels. Ceci dé-
coule de
1
L(y) = L((I + XA + X 2 A2 + . . . )y(0))
2!
= (I + XA + X 2 A2 + . . . )y(0)
= (I − XA)−1 y(0).
Les vecteurs solutions ont donc des transformées de Laplace dont les coordonnées
sont rationnelles. En outre, d’après les formules de Cramer, le numérateur et le
dénominateur de ces fractions ont des degrés bornés par l’ordre r du système.
L’algorithme suivant s’en déduit :
L’étape 1 est effectuée par la méthode naïve en O(r3 ) opérations. Une méthode
plus efficace, en O(rθ log r) opérations, est à la base de l’algorithme de Keller-Gehrig
pour le calcul du polynôme caractéristique d’une matrice présenté au Chapitre 3.
L’étape 2 (a) se ramène à un calcul d’algèbre linéaire en posant des coefficients
indéterminés pour les numérateurs et dénominateurs. Là aussi, le coût peut être
diminué en faisant appel au calcul d’approximants de Padé (Chapitre 9), mais
cette partie du calcul ne dépend pas de N . L’étape 2 (b) utilise l’algorithme de
développement de fractions rationnelles du Chapitre 5 (Théorème 4, page 81), et
c’est là que se concentre le gain en complexité.

4. Extensions
4.1. Composer se ramène à résoudre. Le seul algorithme du Chapitre 4
dont la complexité n’est pas quasi-optimale est l’algorithme de composition.
192 15. SOLUTIONS SÉRIES D’ÉQUATIONS DIFFÉRENTIELLES

CoefficientsConstants(A, v, N )
Entrée : A in Mr×r (A), v ∈ Mr×1 (A).
PN −1
Sortie : Y = i=0 Yi X i dans Mr×r (A)[X] tel que
Y 0 = AY + O(X N −1 ).
1. Calculer les vecteurs
v, Av, A2 v, A3 v, . . . , A2r v ;
2. Pour tout j = 1, . . . , r :
(a) reconstruire la fraction rationnelle
P i ayant
pour développement en série (A v)j X i ;
(b) développer cette fraction en série à précision
X N en O(N M(r)/r) opérations ;
(c) reconstruire le développement de y à partir
de celui de z, en O(N ) opérations.

Dans les applications où l’on connaît une équation Φ(X, f, f 0 , . . . , f (m) ) = 0


vérifiée par la série f il est parfois possible de calculer la série h = f ◦ g efficace-
ment sans passer par l’algorithme de composition en remarquant qu’elle vérifie une
équation du même ordre. Cette équation est obtenue en remplaçant X par g dans
Φ et en composant les dérivées. Si Φ ne fait intervenir que des polynômes ou des
fractions rationnelles, le résultat de cette opération a pour coefficients des séries, ce
qui mène assez généralement à une complexité en O(M(N )) opérations en utilisant
les algorithmes de ce chapitre.
Exemple 1. Pour calculer le développement de h = tan(f ), il est possible de
calculer en O(M(N )) ceux de sin(f ) et cos(f ) (via l’exponentielle) et de diviser, mais
il est aussi possible d’observer que h vérifie l’équation h0 = 1 + h2 f 0 , et d’utiliser les
méthodes ci-dessus. Il faut ensuite comparer les constantes dans les O(·) (ou deux
implantations !) pour déterminer laquelle des deux méthodes est préférable.
Exercice 3. Les polynômes de Legendre sont définis par
1 (n)
Pn (X) = n (X 2 − 1)n .
2 · n!
Montrer que Pn (X) vérifie l’équation différentielle
 
d 2 d
(1 − X ) Pn (X) + n(n + 1)Pn (X) = 0.
dX dX
En déduire que pour toute série de terme constant nul F ∈ Q[[X]], et pour tout
N ≥ 0, la série composée PN ◦ F mod X N peut se calculer en O(M(N )) opérations.
4.2. Systèmes non-linéaires. La linéarisation effectuée dans le cas des équa-
tions d’ordre 1 se généralise aux systèmes. L’énoncé devient alors le suivant.
Théorème 3. Soient φ1 , . . . , φr r séries de A[[X, Y1 , . . . , Yr ]], telles que
pour tout r-uplet de séries (s1 (X), . . . , sr (X)) ∈ A[[X]]r , les N premiers termes
des φi (X, s1 , . . . , sr ) et de Jac(φ)(X, s1 (X), . . . , sr (X)) puissent être calculés en
O(L(N)) opérations dans A. On suppose en outre que L(n)/n est une suite crois-
sante. Alors, le système différentiel

y 0 (t) = ϕ1 (t, y1 (t), . . . , yr (t)),
 1


..
 .
y 0 (t) = ϕ (t, y (t), . . . , y (t)),

r r 1 r
Bibliographie 193

avec conditions initiales (y1 , . . . , yr )(0) = v admet une solution série formelle, et
ses N premiers termes peuvent être calculés en
O(L(N) + min(MM(r, N), r2 M(N) log N)).
Le symbole Jac(φ) désigne la matrice jacobienne : son coefficient sur la ligne i
et la colonne j vaut ∂φi /∂yj .
L’intérêt d’énoncer le théorème à l’aide de la fonction L est le même que dans
le cas des équations.
Démonstration. Il s’agit d’une généralisation de la Proposition 1. La linéari-
sation de Φ : Y 7→ Y 0 − ϕ(Y ) au voisinage d’une solution approchée y s’obtient en
écrivant :
Φ(y + h) = Φ(y) + h0 + Jac(φ)(y)h + O(h2 ).
L’équation à résoudre pour une itération de Newton est donc le système linéaire
inhomogène
h0 = Jac(φ)(y)h − (y 0 − φ(y)).
Si h est un vecteur solution de ce système à précision 2m et y une solution de Φ à
précision m, ces équations montrent que y + h est solution à précision 2m. Le cas
non-linéaire est ainsi ramené au cas linéaire. 

Notes
Les résultats de la Section 1 sont tirés de [2]. Une bonne partie des résultats de
ce chapitre est tirée de [1]. La technique de la Section 2.2 dans le cas particulier de
l’exponentielle d’une série est due à [3]. L’algorithme « diviser pour régner » de la
Section 2.1 se trouve au moins implicitement dans [5]. Des algorithmes plus récents
se trouvent dans [4].

Bibliographie
[1] Bostan (A.), Chyzak (F.), Ollivier (F.), Salvy (B.), Schost (É.), and Sedoglavic (A.). –
Fast computation of power series solutions of systems of differential equations. In SODA’07.
pp. 1012–1021. – SIAM, January . Proceedings of the eighteenth annual ACM-SIAM sym-
posium on Discrete algorithms, New Orleans, Louisiana.
[2] Brent (R. P.) and Kung (H. T.). – Fast algorithms for manipulating formal power series.
‌ , , pp. 581–595.
Journal of the ACM, vol. 25, n4
[3] Hanrot (Guillaume), Quercia (Michel), and Zimmermann (Paul). – The middle product algo-
rithm I. Appl. Algebra Engrg. Comm. Comput., vol. 14, n‌6, March , pp. 415–438.
[4] van der Hoeven (Joris). – Newton’s method and FFT trading. Journal of Symbolic Computa-
tion. – To appear. Available at http://hal.archives-ouvertes.fr/hal-00434307/fr/.
[5] van der Hoeven (Joris). – Relax, but don’t be too lazy. Journal of Symbolic Computation,
‌ , , pp. 479–542.
vol. 34, n6
Deuxième partie

Systèmes Polynomiaux
CHAPITRE 16

Bases standard

Résumé
Les bases standard de la théorie d’Hironaka pour l’étude de systèmes de
fonctions analytiques s’avèrent être un outil central pour rendre effectifs
les manipulations de systèmes d’équations polynomiales. Elle sont alors
le plus souvent connues sous la dénomination de bases de Gröbner.

Motivation 1. Essayons de prouver le théorème d’Apollonius, qui affirme que


les milieux des côtés d’un triangle rectangle, le sommet de l’angle droit et le pied de
la hauteur relative à l’hypoténuse sont sur un même cercle. Ce n’est qu’une version
simplifiée du théorème du cercle des 9 points d’un triangle.

2b

b milieu

a 2a

Figure 1. Le théorème d’Apollonius

Soit donc OAB un triangle rectangle de sommet O. Nous pouvons toujours


choisir un système de coordonnées tel que l’origine soit en O, et les deux autres
sommets les points (2a, 0) et (0, 2b). Le cercle (C) passant par le sommet et les mi-
lieux (a, 0) et (0, b) des côtés a pour équation C(X, Y ) = X 2 + Y 2 − aX − bY = 0.
Vérifier que le milieu (a, b) de l’hypoténuse appartient à ce cercle revient à une
évaluation, à savoir tester si C(a, b) est nul, ce qui est immédiat. Le pied de la hau-
teur, H = (x, y), est défini par des relations linéaires exprimant son appartenance
à AB et l’orthogonalité entre OH et AB. Il est donc solution du système linéaire
H1 (X, Y ) = H2 (X, Y ) = 0, avec H1 = aY + bX − 2ab et H2 = bY − aX.
Il s’agit donc de démontrer que les hypothèses H1 (x, y) = H2 (x, y) = 0 im-
pliquent C(x, y) = 0, soit H appartient à (C). Une voie royale consisterait à prouver
que le polynôme conclusion C est une combinaison linéaire (à coefficients polyno-
miaux) de H1 et H2 , autrement dit qu’il appartient à l’idéal engendré par H1 et H2 .
Est-ce le cas ?
Motivation 2. Dans un autre ordre d’idées, considérons la courbe classique
donnée par la paramétrisation
1 − t2 2t
x= et y = ,
1 + t2 1 + t2
197
198 16. BASES STANDARD

et pour laquelle nous aimerions savoir si elle vérifie une équation indépendante de t.
Là encore, nous aimerions une recombinaison algorithmique des polynômes
(1 + T 2 ) X − (1 − T 2 ) et (1 + T 2 ) Y − 2T
avec des coefficients polynomiaux en X, Y et T qui fournisse un polynôme en X
et Y seulement. Comment l’obtenir ?
Un anneau de polynômes sur un corps effectif est lui-même effectif d’après le
Chapitre 1. Les ennuis commencent en présence d’un idéal de cet anneau, quand il
s’agit d’étendre la reconnaissance de zéro à l’anneau quotient, les autres opérations
arithmétiques ne posant pas de problème. Autrement dit, comment reconnaître l’ap-
partenance à un idéal d’un anneau de polynômes ? Deux cas particuliers permettent
de dégager les concepts qui mènent au traitement général de cette question.
Dans le cas particulier des polynômes à une variable, considérons un idéal donné
par un nombre fini de générateurs. L’application successive du vénérable algorithme
d’Euclide permet de calculer de proche en proche leur plus grand commun diviseur ;
moyennant quoi la question de l’appartenance d’un polynôme candidat à l’idéal en
question se résume à sa divisibilité par ledit PGCD, ce que résout une simple
division euclidienne, brique de base de l’algorithme d’Euclide.
D’autre part, le non moins ancien et respectable algorithme d’élimination li-
néaire (bien antérieur à Gauss, voir Chapitre 7) aboutit à la solution si les généra-
teurs sont des formes affines en un nombre quelconque de variables.
Dans ce chapitre, nous allons généraliser à plusieurs variables à la fois l’algo-
rithme d’Euclide et l’algorithme de Gauss, sous le vocable de « bases standard »,
bien que, dans le cas des algèbres de polynômes, elles soient plus souvent appelées
« bases de Gröbner ». La notion de base standard a été introduite par Hironaka
pour calculer des générateurs de l’ensemble des termes initiaux des fonctions ana-
lytiques au voisinage d’un point. Dans ce cours, nous parlons de base standard
pour suggérer une forme de généralisation. Cependant nous resterons dans le cadre
polynomial des bases de Gröbner.
Les systèmes d’équations polynomiales sont un outil pour modéliser. La ques-
tion de l’effectivité des anneaux quotients intervient dans un certain nombre de
problèmes d’applications. Par exemple en robotique, la position de la main d’un
robot en fonction de la longueur de ses bras est caractérisée par des équations po-
lynomiales. D’autres domaines d’application sont le traitement du signal, la vision
par ordinateur, la cryptographie ainsi que la chimie ou la biologie. Pour ces deux
derniers domaines, on imagine un système dont l’évolution est régie par un en-
semble d’équations différentielles à coefficients polynomiaux. Si on s’intéresse aux
états d’équilibres, dans lesquels toutes les dérivées s’annulent, on est donc amené à
résoudre un système d’équations polynomiales.

1. Lien entre algèbre et géométrie


La manipulation des systèmes d’équations polynomiales prend tout son sens
quand elle donne des informations sur l’ensemble des solutions, à savoir le lieu des
zéros communs aux équations polynomiales. Ainsi, un des grands intérêts de la
combinatoire des anneaux polynomiaux réside dans la description de son substrat
géométrique.

1.1. Le cas affine. Notons n le nombre de variables et R = k[X1 , . . . , Xn ]


l’anneau de polynômes sur un corps effectif k (le plus souvent Q mais aussi R ou C).
Notons Ank , ou An , l’espace affine à n dimension sur k, c’est-à-dire l’ensemble k n .
Posons aussi f1 , . . . , fp ∈ R des polynômes.
1. LIEN ENTRE ALGÈBRE ET GÉOMÉTRIE 199

Définition 1. La variété algébrique Vk (J) associée à un ensemble de poly-


nômes J ⊆ R est l’ensemble des racines dans k communes aux polynômes de J, i.
e.
Vk (J) = (x1 , . . . , xn ) ∈ An | ∀j ∈ J, j(x1 , . . . , xn ) = 0 .


S’il n’y a pas d’ambiguïté sur le corps k, nous noterons V(J) := Vk (J).

Pour ne pas alourdir la formulation, on appelle « variété algébrique » tout sous-


ensemble de An obtenu de la manière précédente, bien que ce cas ne soit qu’un cas
particulier de la définition générale en géométrie algébrique.

Définition 2. Un idéal I d’un anneau R est un sous-groupe de R stable par


multiplication par les éléments de R. C’est-à-dire que I 6= ∅ et ∀i, j ∈ I, i − j ∈ I
et ∀i ∈ I, ∀a ∈ R, ai ∈ I.
P L’idéal (f1 , . . . , fp ) engendré par une partie {f1 , . . . , fp } de R est l’ensemble
i Rfi .

Le résultat suivant découle de ce que l’opération V met en place une sorte de


dualité.

Proposition 1. Pour deux ensembles J1 et J2 de polynômes, si J1 ⊆ J2 , alors


V(J1 ) ⊇ V(J2 ).

Remarquons que l’on a V {f1 , . . . , fp } = V(I) avec I = (f1 , . . . , fp ), et que
si deux ensembles de polynômes engendrent le même idéal alors ils définissent la
même variété. Ainsi l’idéal (f1 , . . . , fp ) est l’objet naturel à associer au système
d’équations f1 = 0, . . . , fp = 0. De même que nous pouvons associer à un idéal sa
variété, nous pouvons faire l’opération inverse.

Définition 3. L’idéal I(E) associé à un sous-ensemble E de An est l’ensemble


des polynômes de R s’annulant identiquement sur E, c’est-à-dire

Ik (E) = {f ∈ R | ∀x ∈ E, f (x) = 0} .

Si il n’y a pas d’ambiguïté sur le corps k, nous noterons I(E) := Ik (E).

On vérifie facilement que I(E) est un idéal.

Exemple 1. L’hyperbole d’équation xy = 1 est la variété V(XY − 1). De


même, le cercle d’équation x2 + y 2 = 1 est une variété.
La variété réelle VR (X 2 + Y 2 + 1) est vide. Cependant la variété complexe
VC (X 2 + Y 2 + 1) est non vide.

La dualité évoquée plus haute se prolonge avec les résultats suivants.

Proposition 2. Pour deux sous-ensembles E1 et E2 de An , si E1 ⊆ E2 , alors


I(E1 ) ⊇ I(E2 ). 
Si J est unensemble de polynômes et E une partie de An , alors J ⊆ I V(J)
et E ⊆ V I(E) .

Les variétés algébriques sont des objets géométriques et il est fructueux de


les manipuler en suivant une intuition géométrique. La démonstration algébrique
fonctionne alors (souvent) comme on le pense.

Exercice 1. Montrer que l’union de deux variétés algébriques est une va-
riété algébrique. Montrer que V ⊆ An est une variété algébrique si et seulement si
V(I(V )) = V .
200 16. BASES STANDARD

1.2. Le cas projectif. Le passage à la géométrie projective est motivé par


la simplification des énoncés et de certains algorithmes dans ce cadre. Posons R =
k[X0 , . . . , Xn ].
Définition 4. Nous notons Pnk , ou Pn , l’espace projectif de dimension n sur
le corps k, c’est-à-dire l’ensemble défini comme le quotient de k n+1 \ {0} par la
relation d’équivalence ∼ elle-même définie par (x0 , . . . , xn ) ∼ (y0 , . . . , yn ) si ∃λ ∈
k, ∀i, xi = λyi .
On note (x0 : . . . : xn ) la classe d’équivalence de (x0 , . . . , xn ), que l’on appelle
aussi un point (projectif ).
L’espace projectif Pn est une variété algébrique d’une nature plus générale
 V(J) de la définition 1. Précisons ce que cela signifie pour nous. Posons
que les
Ui = (a0 : . . . : an ) | ai 6= 0 pour i ∈ {0, . . . , n}. Les Ui sont des ouverts de Pn
qui sont en bijection avec l’espace affine An via
An → Ui
.
(x1 , . . . , xn ) 7→ (x0 : . . . : xi−1 : 1 : xi+1 : . . . : xn )
Ces Ui recouvrent l’espace projectif. Nous appellerons Ui la i-ème partie affine
de Pn .
Définition 5. On appelle points à l’infini de Pn les points de Pn \ U0 . Ils
correspondent aux directions de droites dans An .
Le formalisme ne doit pas faire oublier que l’espace projectif est un objet natu-
rel : c’est l’espace affine auquel on a ajouté des points à l’infini. Ces point à l’infini
ne sont autres que les points (0 : x1 : . . . : xn ), alors que les points affines sont de
la forme (1 : x1 : . . . : xn ). On a donc
Pn = (1 : x1 : . . . : xn ) x ∈ An ∪ (0 : x1 : . . . : xn ) x ∈ An \ {0} .
 

Dans un espace projectif, construire des équations à partir de polynômes est


plus délicat que dans le cas affine. Soit f ∈ R un polynôme homogène, c’est-à-dire
tel que tous ses monômes soient de même degré total. Alors f (x0 : . . . : xn ) = 0 a
un sens car f s’annule soit sur tout représentant de (x0 : . . . : xn ), soit sur aucun
d’entre eux. Ainsi nous pouvons associer à tout polynôme homogène f de R une
équation f = 0 sur Pn . Notons bien que R a n + 1 variables, où n est la dimension
de l’espace projectif.
Définition 6. La variété projective V(J) associée à l’ensemble de polynômes
homogènes J ⊆ R est l’ensemble des solutions communes aux équations homogènes,
c’est-à-dire
(x0 : . . . : xn ) ∈ Pnk | ∀j ∈ J, j(x0 : . . . : xn ) = 0 .


Le bon objet à associer à un système d’équations homogènes est un idéal ho-


mogène.
Exercice 2. Montrer que pour un idéal I de R, les assertions suivantes sont
équivalentes :
1. I est engendré par des polynômes homogènes,
L
2. l’espace vectoriel I est la somme directe d≥0 Id où Id est l’espace vectoriel
des polynômes de I homogènes de degré d.
On dit alors que l’idéal est homogène.
L’homogénéisation des polynômes et des idéaux permet de plonger naturelle-
ment une variété affine dans l’espace projectif.
2. ORDRES TOTAUX ADMISSIBLES SUR LE MONOÏDE DES MONÔMES 201

Définition 7. L’ homogénéisé f h ∈ R d’un polynôme f ∈ k[X1 , . . . , Xn ] est le


deg(f )
polynôme X0 f (X1 /X0 , . . . , Xn /X0 ).
L’ idéal homogénéisé I h d’un idéal I de k[X1 , . . . , Xn ] est l’idéal de R engendré
par {f h | f ∈ I}.
Exercice 3. Montrer que le plongement du cercle VC (X 2 + Y 2 − 1) dans
l’espace projectif P2C contient deux points à l’infini.
L’opération de déshomogénéisation associe au polynôme g ∈ k[X0 , . . . , Xn ] le
polynôme D(g) = g(1, X1 , . . . , Xn ) ∈ k[X1 , . . . , Xn ]. On vérifie facilement que pour
g ∈ k[X1 , . . . , Xn ] on a D(g h ) = g. Cependant, la composition inverse n’est pas
l’identité : D(X0 )h = 1. La proposition suivante fait le lien entre D(g)h et g.
Proposition 1. Soit g ∈ k[X0 , . . . , Xn ] homogène, alors il existe e ∈ N tel que
X0e D(g)h = g.
Démonstration. Soit d = deg g. Voyons g comme un polynôme en X0 et
Pd−e
notons e sa valuation en X0 : g s’écrit g = i=0 gd−e−i X0e+i avec gi ∈ k[X1 , . . . , Xn ]
Pd−e
de degré i. Ainsi D(g) = i=0 gd−e−i et d = deg D(g) + e. Finalement X0e D(g)h =
Pd−e
X0e i=0 gd−e−i X0i = g. 

2. Ordres totaux admissibles sur le monoïde des monômes


Notons R = k[X1 , . . . , Xn ]. À un élément a = (a1 , . . . , an ) de Nn est associé
le monôme ou produit de puissances X = X1a1 · · · Xnan ∈ R. Ainsi les monômes
de l’anneau R forment un monoïde multiplicatif Mn isomorphe au monoïde addi-
tif Nn . Rappelons qu’un monoïde M vérifie les axiomes des groupes à l’exception de
l’existence de l’inverse pour un élément quelconque. Dans notre exemple, l’élément
neutre 1 ∈ Mn correspond au point de coordonnées toutes nulles dans Nn . Nous
nous autoriserons à utiliser indifféremment la notation additive ou multiplicative.
Définition 8. Un ordre total < sur les monômes est dit compatible s’il est
compatible avec la structure de monoïde, au sens où la multiplication par un mo-
nôme est croissante. Il s’ensuit que tous les éléments distincts de l’élément neutre
sont d’un même côté de celui-ci. Un ordre compatible est dit être un ordre admis-
sible si l’élément neutre est plus petit que tous les autres monômes. En résumé, un
ordre < sur les monômes un ordre admissible si :
1. c’est un ordre total ;
2. 1 < m si m n’est pas l’élément neutre ;
3. pour tout m, m0 et m00 , m0 < m00 implique mm0 < mm00 .
2.1. Ordres classiques.
Exemple 2. Un exemple est l’ordre fondamental <lex : pour ordonner deux
points différents de Nn , on regarde la première coordonnée qui diffère. En fait,
on devrait plutôt parler de l’ordre lexicographique induit par un ordre total sur les
variables. En Maple, on écrit plex(x[1], ..., x[n]) pour l’ordre lexicographique
avec X1 >lex X2 >lex · · · >lex Xn . Intuitivement c’est ainsi que l’ordre des lettres de
l’alphabet induit un ordre sur les mots du dictionnaire avec a <lex b <lex c <lex . . .
Exemple 3. Il existe aussi pour les rimailleurs des dictionnaires de rimes : les
mots sont ordonnés d’après les dernières lettres ; et pour les amateurs de Scrabble,
des listes de mots rangés par longueur croissante. On peut lier ces dictionnaires à
des ordres sur les monômes.
202 16. BASES STANDARD

Exemple 4. L’ordre diagonal induit par un ordre compatible P < estPl’ordre


noté
P a <Pd b pour a  = (a1 , . . . , a n ) et b = (b 1 , . . . , b n ) si ai < bi ou
ai = bi et a < b . En Maple, nous avons grlex(x[1], ..., x[n]) (« gra-
ded lexicographic order ») pour l’ordre diagonal induit par l’ordre lexicographique
classique. Une autre terminologie pour les ordres diagonaux est celle d’« ordres
gradués par le degré ».
Exemple 5. Un autre ordre usuel est l’ordre gradué lexicographique inverse
(tdeg(x[1], ..., x[n]) en Maple). Soit <lex0 l’ordre lexicographique inverse in-
duit par Xn > · · · > X1 . L’ordre <r est défini comme l’ordre diagonal induit
P <lexP
par le renversement 0 . Ainsi, on a a <r b pour a = (a1 , . . . , an ) et
P de l’ordre P 
b = (b1 , . . . , bn ) si ai < bi ou ai = bi et a >lex0 b . Cela consiste donc à
ordonner par degré total puis à prendre le moins de Xn puis de Xn−1 et ainsi de
suite. Notons que la notation Maple est justifiée par X1 >r · · · >r Xn .
Comparons maintenant les ordres qui viennent d’être introduits sur quelques
exemples qui permettent de les distinguer. Commençons par les ordres <lex et <lex0
induits par X1 > X2 > X3 > X4 . Nous avons alors :
X1 >lex X2 X4 >lex X3 et X1 <lex0 X3 <lex0 X2 X4 .
Pour observer une différence entre l’ordre gradué lexicographique inverse <t :=
tdeg(X, Y, Z) et l’ordre <g := grlex(X, Y, Z), tous deux pour X > Y > Z,
il convient d’aller jusqu’aux monômes de degré 3. Ainsi,
X 3 >t X 2 Y >t XY 2 >t Y 3 >t X 2 Z >t XY Z >t Y 2 Z >t XZ 2 >t Y Z 2 >t Z 3
alors que
X 3 >g X 2 Y >g X 2 Z >g XY 2 >g XY Z >g XZ 2 >g Y 3 >g Y 2 Z >g Y Z 2 >g Z 3 .
Nous raccourcirons par la suite en plex, grlex, tdeg les ordres précédents
quand ils sont induits par X1 > · · · > Xn .
Exemple 6 (Ordre d’élimination). Soit i ∈ {1, . . . , n} et <lex l’ordre lexico-
graphique avec x1 > · · · > xn . Le i-ième ordre
P d’élimination <i de Nn est l’ordre
Pi Pi i Pi
défini par a <i b si j=1 aj < j=1 bj ou j=1 aj = j=1 bj et a <lex b .
On retrouve pour i = 1 l’ordre lexicographique usuel et pour i = n l’ordre
lexicographique gradué.
2.2. Classification des ordres.
Exemple 7. Une dernière méthode pour créer des ordres compatibles à partir
de l’ordre lexicographique est de prendre une matrice M ∈ Matn (R) et de poser
a <M b si M a <lex M b. L’hypothèse supplémentaire que toutes les colonnes C
de M vérifient 0 <lex C est nécessaire pour que l’ordre devienne admissible. Ce
changement d’ordre permet toujours de se ramener à l’ordre lexicographique via le
théorème suivant.
Théorème 1 (Robbiano 1985). Soit < un ordre total admissible sur N. Alors
il existe M ∈ Matn (R) telle que a < b ⇐⇒ M a <lex M b.
Exercice 4. Trouver les matrices du théorème précédent pour les ordres pré-
sentés précédemment.
Le théorème de classification des ordres totaux compatibles ne nous servira pas
dans la pratique car les exemples fondamentaux précédents suffiront à nos besoins.
Lemme 1. Tout ordre total admissible est un bon ordre, c’est-à-dire que toute
chaîne descendante (c’est-à-dire une suite décroissante) stationne.
4. NOETHÉRIANITÉ DU MONOÏDE DES MONÔMES 203

Démonstration. Par le théorème de Robbiano, on se ramène sans perte de


généralité au cas particulier de l’ordre lexicographique avec X1 <lex · · · <lex Xn
sur Nn . Celui-ci se traite par récurrence sur la taille n. Ceci est trivial pour 1.
Soit une suite (aj )j∈N décroissante pour <lex dans Nn . Écrivons chaque aj sous la
forme (αj , bj ) pour αj ∈ N et bj ∈ Nn−1 . La suite des αj est alors décroissante et
stationne, par le cas n = 1. La suite des bj est donc décroissante à partir d’un certain
rang, et donc stationne. En conclusion, la suite (aj )j∈N stationne elle aussi. 
Remarquons que la propriété est triviale pour les ordres diagonaux, par finitude
du nombre de monômes de même degré.

3. Exposants privilégiés et escaliers


Définition 9. À tout polynôme homogène non nul :
X
f= fa X a
a∈Nn+1

est associé son support {a ∈ Nn+1 | fa 6= 0} dans Nn+1 .


Définition 10. L’ exposant privilégié d’un polynôme f non nul, noté exp(f )
pour un ordre donné < est le plus grand (n+1)-uplet du support de f pour l’ordre <.
Le monôme de tête est lm(f ) := X exp(f ) . Le terme de tête de f est lt(f ) :=
fexp(f ) X exp(f ) , sachant qu’un terme est le produit d’un monôme par un coefficient,
c’est-à-dire est de la forme cα X α .
Notons bien que la notion d’exposant privilégié et celles qui en découlent ne
sont pas définies pour le polynôme nul.
Définition 11. Un idéal de monômes est une partie de Mn stable par mul-
tiplication externe : tout multiple d’un élément de cet idéal de monômes par un
monôme quelconque appartient encore à cet idéal de monômes.
De manière analogue, une partie stable de Nn est stable par addition de qua-
drant : tout translaté d’un point de cette partie stable par un élément de Nn est
encore dans cette partie stable.
On fera attention à cette terminologie : au sens de ce cours, un idéal de mo-
nômes n’est pas un idéal. Certains auteurs parlent d’ailleurs de « monoïdéal » pour
marquer la distinction ; d’autres auteurs réservent le vocable d’« idéal de monômes »
pour les idéaux (polynomiaux) engendrés par les idéaux de monômes de ce cours.
Plutôt que d’idéal de monômes, on parle le plus souvent de manière imagée
d’un escalier.
Définition 12. L’ escalier E(I) associé à l’idéal I pour un ordre < est la partie
stable de Nn donnée par {exp< (f ) | f ∈ I}.
Par convention, et bien que le polynôme nul ne possède pas d’exposant privi-
légié, E(0) est l’ensemble vide ∅ ; tandis que plus naturellement E(R) est Nn tout
entier puisque R = (1).

4. Noethérianité du monoïde des monômes


Proposition 2. Les propriétés suivantes sont équivalentes :
1. Toute partie stable de Nn est engendré par un nombre fini d’éléments, c’est-
à-dire :
[q
a i + Nn ;

(1) E=
i=1

2. Toute suite croissante de parties stables de Nn stationne.


204 16. BASES STANDARD

Figure 2. Un exemple d’escalier dans N2

Démonstration. 1.S implique 2. : Soit (Ej )j∈N , une suite croissante de parties
stables. La réunion E = j∈N Ej est encore stable, donc finiment engendrée sous
la forme (1). Chacun des générateurs ai appartient à un membre Eji de la suite.
Considérons la valeur ĵ maximale des ji . Comme Eĵ contient tous les Ej précédents,
Sq Pĵ
E = j=1 (ai +Nn ) ⊆ j=1 Ej ⊆ Eĵ ⊆ E, d’où E = Eĵ . Par suite, pour tout h ∈ N,
E = Eĵ ⊆ Eĵ+h ⊆ E, et la suite stationne donc sur la valeur E = Eĵ .
2. implique 1. : Par contraposition, soient une partie stable E non finiment
engendrée, et a1 un de ses éléments, qui ne peut donc pas l’engendrer. C’est donc
qu’il existe un autre élément a2 dans E mais pas dans a1 + Nn . Ainsi de suite on
Sj
construit une suite strictement croissante par Ej := i=1 (ai + Nn ). Cette suite ne
stationne pas. 

Lemme 2 (Lemme de Dickson). Toute partie stable E de Nn+1 est finiment


engendrée, c’est-à-dire qu’il existe une famille a(1) , . . . , a(p) telle que :
p
[
a(i) + Nn+1 .

E=
i=1

Démonstration. La démonstration de cette noethérianité de Nn+1 se fait par


récurrence sur n. L’assertion est immédiate pour n = 0. Soit ensuite π : Nn+1 → Nn
la projection canonique sur Nn , identifié à Nn × {0}. Pour E stable dans Nn+1 , la
partie π(E) de Nn est elle aussi stable, donc engendrée par l’hypothèse de récurrence
(i)
par une famille finie a(1) , . . . , a(p) . Pour tout i (1 ≤ i ≤ p) il existe un entier an+1 tel
(i) (i) (i) (i)
que (a1 , . . . , an , an+1 ) appartienne à E. Posons m = max1≤i≤p (an+1 ). Maintenant
chacune des sections Ej de E par l’hyperplan de coordonnées xn+1 = j s’identifie
par π à une partie stable de Nn , engendrée par une famille finie. Les π(Ej ) forment
une suite croissante de parties stables qui stationne sur une valeur E∞ . Il en est
donc de même des π(Ej ), qui sont donc égales à π(E) = π(E∞ ) pour j assez grand
(en fait pour j ≥ m). On en déduit l’existence d’une famille finie de générateurs
de E. 

La valeur E∞ de la démonstration précédente est appelée section à l’infini.


Cette notion interviendra de nouveau dans le chapitre suivant.
Définition 13. Une base standard d’un idéal de l’anneau de polynômes est
un ensemble fini de polynômes de l’idéal dont les exposants privilégiés engendrent
l’escalier de l’idéal.
Le lemme de Dickson nous donne l’existence d’une base standard pour tout
idéal I de R. Notons bien que les éléments doivent appartenir à l’idéal mais que
rien pour l’instant hormis la terminologie ne prouve qu’ils l’engendrent. C’est le
5. DIVISIONS 205

paragraphe suivant qui va nous le démontrer, grâce à une généralisation à plusieurs


variables de la notion de division.
Notons aussi qu’une base standard ne sera pas une base, mais seulement un
système de générateurs : elle ne fournira pas une unicité de l’écriture, au sens où
les cofacteurs ne sont pas définis uniquement.

5. Divisions
Dans l’algorithme de division d’Euclide, une étape élémentaire consiste à tuer le
terme de plus haut degré du dividende par le terme de plus haut degré du diviseur.
Nous pouvons étendre ce principe aux polynômes multivariés une fois choisi un
ordre admissible < sur les monômes.
Pour ce faire, commençons par définir une division élémentaire faible (resp.
forte) d’un polynôme dividende f par un seul diviseur d. Posons r := lt(d) −
d et associons à notre diviseur la règle de réécriture lt(d) →d r. Elle consiste à
remplacer une occurrence éventuelle de lt(d) comme facteur du monôme privilégié
(resp. de tout monôme) du dividende par le polynôme r. Pour être plus explicite,
soit un dividende (non nul) exprimé sous la forme f = c1 m1 + · · · + c` m` pour
une suite strictement décroissante de monômes mi et des coefficients non nuls ci .
Si lm(d) divise m1 pour le cas de la division faible (resp. s’il divise l’un certain mi
pour le cas de la division forte), alors la division consiste à réécrire f en le polynôme
lt(f ) lt(f )
(2) f− d= r + c2 m2 + · · · + c` m`
lt(d) lt(d)
dans le cas de la division faible (resp. en le polynôme
ci mi ci m i
(3) f− d = c1 m1 + · · · + ci−1 mi−1 + r + ci+1 mi+1 + c` m`
lt(d) lt(d)
dans le cas de la division forte). Dans toutes ces écritures, chaque quotient est en
fait un terme.
La division faible consiste à appliquer cette règle de réécriture à lm(f ) (si
possible) et à itérer la réécriture au nouveau polynôme tant que possible. La division
forte consiste à appliquer la règle de réécriture à tout terme de f et de s’arrêter
quand on ne peut plus l’appliquer à aucun terme.
L’itération du processus de division faible (resp. forte) s’arrête (car < est un
bon ordre) sur un reste dont l’exposant privilégié n’est plus divisible par exp(f )
(resp. dont aucun exposant n’est divisible par exp(f )).
La division faible (resp. forte) par une famille d1 , . . . , dp consiste à appliquer
successivement l’une des règles de réécriture lt(di ) →di ri , i ∈ {1, . . . , p}, à un
dividende f jusqu’à ce qu’on ne puisse plus l’appliquer au terme de tête lt(f ) de f
(resp. à aucun terme de f ).
Notons qu’en rassemblant de façon adéquate les monômes lt(f )/ lt(d) interve-
nant dans les étapes (2) d’une division faible (resp. les monômes ci mi / lt(d) dans
les étapes (3) d’une division forte), on obtient des quotients qj , un reste final r,
ainsi qu’une écriture de la division sous la forme
f = q1 d1 + · · · + qp dp + r.
Cette sortie du processus de division (faible ou forte) dépend de l’ordre dans
lequel sont faites les réécritures, ce que montre l’exemple suivant.
Exemple 8. Soient les diviseurs d1 = Y X − 1, d2 = X 2 et le dividende f =
2
Y X − X. Pour l’ordre lexicographique avec X < Y , on observe d’un côté f →d1 0
et de l’autre f →d2 −X et on ne peut plus récrire X. Ceci signifie que les règles de
réécriture ne sont pas complètes (au sens de la théorie de la réécriture). Il convient
de rajouter X → 0 pour (tenter de) compléter le jeu de règles.
206 16. BASES STANDARD

Cependant, les bases standard jouissent de propriétés privilégiées vis à vis de


la réécriture ; on a les résultats suivants.
Proposition 3. Si un reste par une division, faible ou forte, d’un dividende f
quelconque par une base standard (g1 , . . . , g` ) est nul, le reste par toute autre division
faible ou forte l’est aussi. De plus, l’exposant privilégié du reste par division ne
dépend ni de l’ordre des réécritures ni de la nature faible ou forte de la division.
Démonstration. Posons I = (g1 , . . . , g` ). Le procédé de réécriture faible ou
forte change de représentant mais pas de classe modulo I. Soient r et r0 deux restes
de divisions faibles ou fortes par (g1 , . . . , g` ). On a f ≡ r et f ≡ r0 modulo I, donc
r − r0 ∈ I. Si l’un des restes est nul, disons r0 , alors l’autre, r, est dans I. Comme
il n’est pas réductible, il est lui aussi nul, ce qui prouve la première assertion.
Dans le cas contraire, rr0 6= 0. Si lm(r) 6= lm(r0 ), on peut supposer lm(r) >
lm(r0 ) auquel cas lm(r) = lm(r − r0 ) ∈ E(I). Ceci est absurde car on peut alors
encore réduire r. Ainsi, r et r0 ont même exposant privilégié. 
Proposition 4. Le reste de toute division, faible ou forte, d’un élément f d’un
idéal par une base standard de celui-ci est nul.
Démonstration. Le reste est dans l’idéal. S’il n’est pas nul, son monôme de
tête est multiple d’un des monômes de tête de la base standard, par définition, ce
qui contredit que ce soit un reste. 
Proposition 5. Le reste d’une division forte d’un dividende f par une base
standard (g1 , . . . , gr ) est unique.
Démonstration. Avec les mêmes notations que dans la preuve précédente, si
r − r0 6= 0 alors lm(r − r0 ) ∈ E(I) provient de l’un des termes de r ou r0 . Ceci est
absurde car aucun monôme de r ni r0 n’est dans E(I) sinon on pourrait le récrire.
Donc r = r0 , ce qui prouve la proposition. 
Corollaire 1 (Théorème de division d’Hironaka). Soient I un idéal de R, >
un ordre admissible et E(I) l’escalier de I pour cet ordre. Tout polynôme de R est
congru modulo I à un unique polynôme appelé reste de la division par l’idéal qui
soit est nul, soit a son support à l’extérieur à E(I), c’est-à-dire (strictement) sous
l’escalier.
Démonstration. L’opération de division forte par une base standard donne
l’existence d’un tel reste. L’unicité est similaire à la preuve de la proposition pré-
cédente. 
Corollaire 2 (Noethérianité de l’anneau des polynômes). Toute base stan-
dard d’un idéal engendre cet idéal.
Démonstration. Le reste de la division d’un élément f de l’idéal par une base
standard (b1 , . . . , b` ) ne peut être que nul puisque sinon, son monôme dominant
devrait être à la fois à l’extérieur de E(I) (par construction du reste) et dans E(I)
(par définition de ce dernier). Il existe donc des quotients q1 , . . ., q` tels que f =
q1 b1 + · · · + q` f` , et f fait partie de l’idéal engendré par la base standard. 
Ce corollaire établit la noethérianité de l’anneau de polynômes.
Corollaire 3 (Décomposition du quotient). En tant que k-espace vectoriel,
on a la décomposition R = I ⊕R/I où le quotient R/I est isomorphe au sous-espace
vectoriel de R donné comme la somme directe
M
R/I = kX a .
a6∈E(I)
5. DIVISIONS 207

Nous avons vu dans ce chapitre que pour effectuer le test à zéro effectivement,
il nous suffit de disposer d’une base standard. Le calcul d’une telle base est le sujet
du chapitre suivant.
CHAPITRE 17

Module de syzygies et construction de bases


standard

Résumé
Construire une base standard d’un idéal revient à trouver des généra-
teurs de l’idéal monomial de tête de cet idéal. L’étude des relations entre
générateurs d’une présentation de l’idéal donne la manière de compléter
la présentation de l’idéal monomial correspondant, et par relèvement de
compléter le système de générateurs de l’idéal en une base standard.

1. Algorithme naïf par algèbre linéaire


Dans le cadre homogène, l’algorithme naïf que nous allons introduire revient à
faire de l’algèbre linéaire en se ramenant à des espaces vectoriels de dimension finie.
Définition 1. L Un anneau R est gradué s’il existe des sous-groupes Rd de
(R, +) tels que R = d∈N Rd et Rd Rd0 ⊂ Rd+d0 .
L
L’anneau R = k[X0 , . . . , Xn ] est muni d’une graduation R = d∈N Rd où
Rd est l’ensemble des polynômes homogènes de degré d. Notons que chaque Rd est
un k-espace vectoriel de dimension finie. Soit I = (f1 , . . . , fs ) un idéal homogène.
Par l’exercice 2 du Chapitre 16, l’anneau R/I est gradué en posant (R/I)d = Rd /Id
pour d entier.
Notons di le degré de gi . Pour tout u ∈ N, introduisons l’application

Ru−d1 × · · · × Ru−ds → PRu
φu :
(g1 , . . . , gs ) 7→ i gi fi
d’image Iu . Adoptons un ordre admissible < et, pour tout v, posons Bv la base de Rv
formée des monômes homogènes de degré v ordonnés par <. Identifions chaque Rv à
un espace vectoriel de vecteurs colonnes. Les colonnes de la matrice de φu dans ces
bases engendrent alors Iu comme k-espace vectoriel. Par opérations élémentaires sur
les colonnes de la matrice, on peut la mettre sous forme échelonnée (voir Chapitre 3).
Les colonnes de la nouvelle matrice engendrent encore Iu . Les premiers coefficients
non nuls des colonnes donnent les monômes de tête des polynômes de Iu .
Par noethérianité, la réunion des colonnes obtenues en itérant le processus
pour u ∈ {1, . . . , D(E)} avec D(E) assez grand forme une base standard. Pour
transformer cette idée en algorithme il faudrait assurer effectivement la terminaison
par une borne supérieure du degré maximal D(E) à atteindre. Une telle borne existe
mais est disproportionnée.
Ce qui précède consiste à considérer la structure k-vectorielle de I. Du point de
vue des R-modules, le noyau de la même application est par définition le module des
relations entre f1 , . . . , fs , ou (premier) module de syzygies. On peut le construire
par algèbre linéaire sur k en degré donné car cela revient à trouver le noyau de φu .
Il se trouve que le module des relations entre les éléments d’une base standard se
construit facilement ; en retour ceci nous conduira à un algorithme de construction
d’une base standard à partir d’un système donné de générateurs.
209
210 17. MODULE DE SYZYGIES ET CONSTRUCTION DE BASES STANDARD

Ce qui précède se transpose aisément au cas affine, en remplaçant la gradua-


tion (Rd )d∈N par la filtration (Sd )d∈N donnée par les espaces vectoriels Sd constitués
des polynômes de degré au plus d, au sens de la définition suivante :

S 2. Un anneau R est filtré s’il existe des sous-groupes Sd de (R, +)


Définition
tels que R = d∈N Sd et Sd Sd0 ⊂ Sd+d0 .

2. Polynôme de syzygie
Définition 3. Soit (f1 , . . . , fs ) une famille de polynômes non nuls. Pour i
différent de j, le polynôme de syzygie, ou S-polynôme, est le polynôme
lt(fj )fi − lt(fi )fj
(1) S(fi , fj ) = .
pgcd lm(fi ), lm(fj )
Sous l’hypothèse additionnelle que les fi constituent une base standard, en
divisant, faiblement ou fortement, S(fi , fj ) par (f1 , . . . , fs ), on obtient un reste
nul et donc une relation entre les polynômes de la base standard ; nous convien-
drons d’appeler une telle relation une relation bilatérale évidente. Elle est de la
forme S(fi , fj ) = q1 f1 + · · ·+ qs fs , avec pour chaque ` entre 1 et s, lm(q` f` ) <
lm lm(fj ) fi = lm lm(fi ) fj .
Une première remarque est que le choix de normalisation du coefficient domi-
nant du polynôme (1) n’a pas d’incidence sur la théorie, vu que seul les espaces
vectoriels engendrés comptent.
Par ailleurs, une définition équivalente des polynômes de syzygie est
 
ppcm lm(fi ), lm(fj ) ppcm lm(fi ), lm(fj )
S(fi , fj ) = cj fi − ci fj ,
lm(fj ) lm(fi )
après avoir posé lt(fi ) = ci lm(fi ) et lt(fj ) = cj lm(fj ). Cette formulation est le
calcul effectué en pratique.
Exemple 1. La base standard g1 = 2XY − XZ, g2 = X 2 , g3 = X 2 Z pour
l’ordre plex avec X > Y > Z donne les relations bilatérales évidentes : Xg1 −
2Y g2 = −g3 , XZg1 − 2Y g3 = −Zg3 , Zg2 − g3 = 0.
L’ensemble des relations bilatérales évidentes n’est pas aussi particulier qu’on
pourrait le penser, en raison du théorème suivant.
Théorème 1 (Spear–Schreyer). Les relations bilatérales évidentes engendrent
le module des relations entre les éléments d’une base standard.

Ps Démonstration. Donnons-nous une relation entre les générateurs :


i=1 gi fi = 0. Posons mi = lm(gi fi ). Soient m le maximum des mi et T l’en-
semble des indices i tels que mi soit égal à m. Remarquons que T ne peut pas être
réduit à un seul élément. Soient r et t deux éléments distincts de T ; m est un mul-
tiple commun de lm(fr ) et lm(ft ), donc du ppcm de ces deux monômes, et à l’aide
d’un multiple de la relation bilatérale évidente entre fr et ft , on peut récrire la
relation initiale en une nouvelle pour laquelle soit T contient moins d’éléments, soit
le monôme m est plus petit. Il suffit alors de réappliquer le procédé aussi longtemps
que possible pour conclure. Nous renvoyons au livre [2, section 2.6, théorème 6]
pour plus de détails. 

3. L’algorithme de construction de Buchberger


En s’inspirant de ce qui précède, on peut imaginer un algorithme de construc-
tion d’une base standard de I à partir d’un système donné F de générateurs, al-
gorithme procédant par adjonctions successives de restes non nuls de divisions de
polynômes de syzygies. Cette idée revient historiquement à [1] qui l’a exprimée dans
3. L’ALGORITHME DE CONSTRUCTION DE BUCHBERGER 211

le cas affine, en appelant le résultat base de Gröbner (du nom de son directeur de
thèse) :

Algorithme de Buchberger
Entrée : Un système de générateurs F de l’idéal I.
Sortie : Une base standard G de l’idéal I.
G←F
RÉPÉTER
G0 ← G
POUR toute paire p, q (p 6= q) de G0 FAIRE
Diviser S(p, q) par G0
SI le reste r est non nul ALORS G ← G ∪ {r}
JUSQU’À G = G0 .

Figure 1. Algorithme de construction de bases standard

Dans cet algorithme, la division utilisée est, au choix, faible ou forte.


Nous allons donner une preuve rapide de la correction et de la terminaison de
l’algorithme. Pour plus de détail, nous renvoyons à [2, section 2.7].
Théorème 1. Une famille (g1 , . . . , gr ) est une base standard de l’idéal qu’ils
engendrent si et seulement si pour tout 1 ≤ i, j ≤ r le polynôme de syzygie S(gi , gj )
se réduit à zéro après division faible par (g1 , . . . , gr ).
Démonstration. L’implication directe est conséquence de la Proposition 4 du
chapitre précédent. La réciproqueP est de même nature que la preuve du théorème
de Spear–Schreyer : soit f = i fi gi un polynôme non nul de l’idéal, et montrons
que son monôme de tête est dans l’idéal monomial engendré par lm(g1 ), . . . , lm(gr ).
Pour cela, soient mi = lm(gi fi ), m le maximum des mi , T l’ensemble des indices i
tels que mi soit égal à m. Si m 6= lm(f ), alors T a au moins deux éléments i
et j, et on utilise la réécriture donnée par S(gi , gj ) pour diminuer T jusqu’à ce que
m = lm(f ). À ce stade, lm(f ) est multiple d’un lm(fi ). Les lm(fi ) engendrent donc
l’escalier de l’idéal. Par la Définition 13 du chapitre précédent, (g1 , . . . , gr ) est une
base standard. 
La correction de l’algorithme de Buchberger est un corollaire : si l’algorithme
s’arrête, c’est que tous les polynômes de syzygies se réduisent à zéro.
Pour la terminaison, il suffit de considérer l’idéal monomial lm(G) engendré
par lm(g1 ), . . . , lm(gs ). À chaque tour de la boucle l’idéal croît au sens large. Il
est constant à partir d’un certain rang par noethérianité. Or, si lm(G) stagne, G
stagne. En effet un reste r non nul agrandirait l’idéal monomial. Autrement son
monôme de tête serait réductible et la division continuerait après r.
Exercice 1 (Critères de Buchberger). Les deux critères suivants sont dûs
à Buchberger. Ils permettent de savoir sans calcul que certains S-polynômes se
réduisent à zéro, ce qui permet d’accélérer l’algorithme de Buchberger. Soient R =
k[X1 . . . , Xn ] et < un ordre monomial sur R. Montrer les deux critères suivants :
1. Premier critère : Soient f, g ∈ R tels que leurs monômes de tête n’aient
aucune variable en commun. Alors le reste de la division, faible ou forte,
de S(f, g) par la famille {f, g} est nul.
2. Second critère : Soient F ⊂ R une famille finie de R, p, f, g, ∈ R des
polynômes tels que :

(a) lm(p) | ppcm lm(f ), lm(g) ;
212 17. MODULE DE SYZYGIES ET CONSTRUCTION DE BASES STANDARD

(b) les restes de la division forte de S(f, p) et S(g, p) par F sont nuls.
Alors le reste de la division forte de S(f, g) par F est nul.

4. L’algorithme de construction en affine


De l’algorithme de construction de bases standard en homogène se déduit ce-
lui dans le cas non homogène. Rappelons la notion d’escalier à l’infini déjà in-
troduite dans la preuve du lemme de Dickson (Lemme 2 au chapitre précédent).
Les sections Ei d’un l’escalier E par l’hyperplan deg X0 = i sont croissantes donc
constantes à partir d’un certain rang. Cette valeur est la section à l’infini E∞ .
Théorème 2. Soient f1 , . . . , fs des polynômes et I = hf1 , . . . , fs i l’idéal qu’ils
engendrent. Soient J = hf1h , . . . , fsh i l’idéal homogène correspondant et g1 , . . . , gu ,
gu+1 , . . . , gn une base standard de J pour l’ordre tdeg avec x0 > · · · > xn . Suppo-
sons que gu+1 , . . . , gn engendrent l’escalier à l’infini E∞ . Alors D(g1 ), . . . , D(gu )
est une base standard non nécessairement minimale pour tdeg de I.
Démonstration. Ceci est un corollaire du Lemme de spécialisation 1 qui sera
démontré dans le chapitre suivant. 

Remarque. En fait, l’algorithme de Buchberger (Figure 1) marche sans modi-


fication dans le cas affine. Cependant l’algorithme en homogène est mieux compris
car le degré des polynômes dans l’algorithme est croissant. Dans le cas affine, l’évo-
lution du degré des polynômes dans l’algorithme est erratique. Il est donc commode
de voir le cas affine comme conséquence du cas homogène.

5. Exemple de calcul
Nous donnons ici le calcul d’une base standard qui resservira dans l’exercice 2 :
celui pour l’idéal (x + y − z, x2 − 2t2 , y 2 − 5t2 ) et l’ordre lexicographique induit
par x > y > z > t. Nous présentons tous les polynômes du calcul par monômes
décroissants, en soulignant le monôme dominant. Dans ce qui suit, nous ajoutons
une règle de récriture dont le lecteur se convaincra qu’elle ne change rien à la théorie,
en se permettant de remplacer un polynôme par tout multiple non nul par un entier,
la fonction de cette réécriture étant d’éviter l’apparition de dénominateurs. Nous
utiliserons le symbole ∼ pour une telle réécriture vide.
Nous débutons avec la famille suivante :
p1 := x + y − z, p2 := x2 − 2t2 , p3 := y 2 − 5t2 .
Par le premier critère de Buchberger, S(p1 , p3 ) et S(p2 , p3 ) vont se réduire à
zéro. Nous ne réduisons donc que :

S(p1 , p2 ) = xp1 − p2 = xy − xz + 2t2


→p1 −xz − y 2 + yz + 2t2 →p1 −y 2 + 2yz − z 2 + 2t2 →p3 2yz − z 2 − 3t2 ,
ce qui nous fait définir un nouveau polynôme dans la base standard en construction :
p4 := 2yz − z 2 − 3t2 .
Comme précédemment, les polynômes de syzygies S(p1 , p4 ) et S(p2 , p4 ) vont se
réduire à zéro, si bien que nous ne considérons que la réduction suivante, qui mène
à un nouveau polynôme p5 :

S(p3 , p4 ) = 2zp3 − yp4 = yz 2 + 3yt2 − 10zt2


∼ 2yz 2 + 6yt2 − 20zt2 →p4 6yt2 − 17zt2 + z 3 =: p5 .
6. PROPRIÉTÉS DES BASES STANDARDS POUR QUELQUES ORDRES 213

Ne subsistent ensuite que deux réductions intéressantes, celles de S(p3 , p5 ) et


de S(p4 , p5 ) :

S(p3 , p5 ) = 6t2 p3 − yp5 = −yz 3 + 17yzt2 − 30t4 ∼ −2yz 3 + 34yzt2 − 60t4


→p4 34yzt2 − z 4 − 3z 2 t2 + 60t4 →p4 −z 4 + 14z 2 t2 − 9t4 := p6 ,
S(p4 , p5 ) = 3t2 p4 − zp5 = −z 4 + 14z 2 t2 − 9t4 →p6 0,
après lesquelles p6 ne produit aucun polynôme de syzygie intéressant.
Nous avons donc obtenu que G1 = {p1 , . . . , p6 } est une base standard de l’idéal
considéré. Il s’avère qu’il est en de même de G2 = {p1 , p3 , . . . , p6 } : en effet, les
deux systèmes engendrent le même idéal et comme nous n’avons jamais utilisé p2
dans les divisions ci-dessus, les polynômes de syzygie de G2 se réduisent tous à 0
par G2 , qui est donc aussi une base standard.

6. Propriétés des bases standards pour quelques ordres


Étudions les propriétés des bases standard pour les ordres tdeg et plex. Nous
commencerons par l’ordre tdeg et des propriétés qui ne sont valables qu’en ho-
mogène, avant de nous intéresser aux propriétés des bases standard (quelconques)
pour l’ordre plex.

6.1. Ordre tdeg en homogène — Section par un hyperplan.


Proposition 1. Soit g ∈ k[X0 , . . . , Xn ] est homogène. Si Xn divise le monôme
de tête de g pour tdeg, alors Xn divise g.
Démonstration. Comme g est homogène, son monôme de tête est l’un des
monômes contenant le moins de Xn . S’il y a du Xn dans le monôme de tête de g,
il y en a dans tous les autres monômes et ainsi Xn divise g. 

Proposition 2. Soit g1 , . . . , gu , gu+1 , . . . , gs une base standard homogène d’un


idéal I pour tdeg ordonnée telle que Xn divise uniquement les monômes de tête
de gu+1 , . . . , gs . Alors la famille g1 , . . . , gu , Xn engendre I + hXn i et en forme une
base standard.
Démonstration. La proposition précédente nous donne que Xn divise gu+1 ,
. . . , gs . On en déduit facilement que hg1 , . . . , gu , Xn i = I + hXn i. Soit f ∈ I + hXn i.
Montrons que son terme monôme tête lm(f ) est un multiple de l’un des monômes
de tête lm(g1 ), . . . , lm(gu ), ou de Xn . Si Xn divise le monôme de tête lm(f ) de
f alors c’est bien le cas. Sinon, soit h ∈ hXn i tel que f − h ∈ I. On vérifie que
lm(f ) = lm(f − h) et donc lm(f ) est multiple de l’un des lm(gi ) pour i ∈ {1, . . . , s}.
Cependant, i ∈ / {u + 1, . . . , s}, car Xn ne divise pas lm(f ). Nous venons de montrer
que (g1 , . . . , gu , Xn ) est une base standard de l’idéal I + hXn i. 

L’opération de rajouter l’équation Xn à l’idéal I correspond à l’opération de


section de V(I) avec l’hyperplan Xn .

6.2. Ordre plex — Projection et implicitation.


Proposition 3. Soit g ∈ k[X1 , . . . , Xn ]. Si X1 ne divise pas le monôme de
tête pour plex de g alors g ∈ k[X2 , . . . , Xn ].
Démonstration. En effet le monôme de tête est l’un des monômes qui
contient le plus de X1 . Si un monôme de g contient du X1 alors son monôme
de tête en contient. 
214 17. MODULE DE SYZYGIES ET CONSTRUCTION DE BASES STANDARD

Proposition 4. Soit g1 , . . . , gu , gu+1 , . . . , gs une base standard d’un idéal I


pour plex. Supposons que X1 divise les monômes de tête de g1 , . . . , gu uniquement.
Alors la famille gu+1 , . . . , gs engendre I ∩ k[X2 , . . . , Xn ] et en forme une base stan-
dard.
Démonstration. La proposition précédente nous donne que gu+1 , . . . , gs ∈
k[X2 , . . . , Xn ] donc hgu+1 , . . . , gs i ⊆ I∩k[X2 , . . . , Xn ]. Soit f ∈ I∩k[X2 , . . . , Xn ]. Le
terme monôme tête lm(f ) est dans l’escalier engendré par lm(g1 ), . . . , lm(gs ) donc
c’est un multiple d’un lm(gi ) pour un certain i ∈ {1, . . . , s}. On a nécessairement
i∈/ {1, . . . , u} car X1 ne divise pas lm(f ). Nous venons de montrer que gu+1 , . . . , gs
est une base standard de I ∩ k[X2 , . . . , Xn ] et donc que cette famille l’engendre. 
Le pendant géométrique de l’élimination de X1 dans l’idéal I est une projection
selon X1 sur les autres coordonnées. Nous prouverons ce résultat dans le chapitre
suivant qui nous donnera plus d’outils pour faire le lien entre l’algèbre et la géomé-
trie.
Par l’une ou l’autre des interprétations, on observe qu’un polynôme de I qui ne
fait pas intervenir X1 fournit une équation vérifiée par les coordonnées (x2 , . . . , xn )
d’une solution x de I quelle que soit la valeur de sa coordonnée x1 . L’élimination est
donc bien l’outil pour répondre au problème d’implicitation donné en motivation
au début de ce chapitre.

Exercices
Exercice 2. 1. Calculer une base standard de l’idéal engendré par (x +
y − z, x2 − 2t2 , y 2 − 5t2 ) pour l’ordre lexicographique induit par x > y >
z > t, le monôme dominant étant le plus grand.
√ √
2. Déduire des calculs précédents que 2 + 5 est un nombre algébrique
sur le corps des rationnels Q, en exhibant un polynôme à une variable à
coefficients rationnels dont il est racine.
3. Quel est le résultant de (y − z)2 − 2 et y 2 − 5 par rapport à y ?
√ √ √ √
4. √
Déduire
√ des calculs précédents
√ √que Q( 2, 5) = Q( 2 + 5). Exprimer
2 et 5 en fonction de 2 + 5.

Notes
L’étude des propriétés du module de syzygies d’un idéal a été réalisée indépen-
damment par Spear [?] et Schreyer [?], et a mené au théorème 1 et à un algorithme
de calcul d’un système de générateurs de ce module.

Bibliographie
[1] Buchberger (B.). – Ein Algorithmus zum Auffinden der Basiselemente des Restklassenringes
nach einem nulldimensionalen Polynomideal (An Algorithm for Finding the Basis Elements
in the Residue Class Ring Modulo a Zero Dimensional Polynomial Ideal). – PhD thesis, Ma-
thematical Institute, University of Innsbruck, Austria, . (English translation to appear in
Journal of Symbolic Computation, 2004).
[2] Cox (David), Little (John), and O’Shea (Donal). – Ideals, varieties, and algorithms. – Springer-
Verlag, New York, , second edition, xiv+536p.
CHAPITRE 18

Triangularisation des idéaux, Nullstellensatz

Résumé
Le Nullstellensatz 1 est le théorème qui fait le lien entre les variétés algé-
briques et les idéaux. Il en découle que certaines opérations géométriques
se traduisent aisément en algorithmes sur les équations. L’exemple de
la projection d’une variété algébrique sur un hyperplan sera traité en
application. La triangulation des équations permet de choisir de bonnes
coordonnées pour une variété algébrique.

1. Le lemme de spécialisation
Proposition 1 (Lemme de spécialisation). Soient R et S deux algèbres de
polynômes. Soient <R et <S deux ordres admissibles sur leur algèbre respective.
Soit ϕ un morphisme d’algèbre surjectif. Supposons que ϕ est croissant (f <R g ⇒
φ(f ) <S φ(g)) et respecte l’exposant privilégié c.-à-d. tel que le diagramme suivant
commute :
R<
ϕ
/ S< .
R S

lmR lmS
 
M(R) / M(S)
ϕ

Soient I un idéal de R et (g1 , . . . , gs ) une base standard de I pour <R . Alors


(ϕ(g1 ), . . . , ϕ(gs )) est une base standard de l’idéal ϕ(I) pour <S .
L’hypothèse de surjectivité est essentielle pour que ϕ(I) soit un idéal de S. La
base standard (ϕ(g1 ), . . . , ϕ(gs )) de ϕ(I) peut ne pas être minimale.

Démonstration. L’ensemble ϕ(I) est un idéal de S car ϕ est un morphisme


d’algèbres surjectif. Soit f ∈ ϕ(I), montrons que lm(f ) est dans l’escalier engendré
par lm(ϕ(g1 )), . . . , lm(ϕ(gs )). Soit g ∈ I tel que f = ϕ(g). Alors lm(f ) = lm(ϕ(g)) =
ϕ(lm(g)) = ϕ(xα lm(gi )) pour un certain i et un certain α car (g1 , . . . , gs ) est une
base standard. Comme le diagramme commute, lm(f ) = ϕ(xα ) lm(ϕ(gi )) et donc
ϕ(xα ) ∈ M(S). On conclut que lm(f ) est dans l’idéal de monômes engendré par
les lm(φ(gi )). Donc les φ(gi ) sont une base standard de φ(I). 

La proposition suivante permet de tester qu’un morphisme vérifie les hypothèses


du lemme de spécialisation.
Proposition 2. Soient R et S deux algèbres de polynômes. Soient <R et <S
deux ordres admissibles sur leur algèbre respective. Soient f ∈ R et ϕ : R → S qui
envoie un monôme sur un monôme. Si la fonction ϕ est strictement croissante sur
l’ensemble des monômes de f alors lm(ϕ(f )) = ϕ(lm(f )).
Démonstration. Exercice ! 

1. en allemand, « théorème du lieu des zéros »

215
216 18. TRIANGULARISATION DES IDÉAUX, NULLSTELLENSATZ

Détaillons deux exemples d’utilisation du lemme de spécialisation. Du premier


exemple découle la démonstration du théorème 2 du Chapitre 17 du passage des
bases standard de projectif en affine.
Exemple 1 (De l’homogène à l’affine). Soient R = k[X0 , . . . , Xn ] et S =
k[X1 , . . . , Xn ] avec l’ordre tdeg. Soit l’application de déshomogénéisation

R → S
ϕ: .
f 7→ f (1, X1 , . . . , Xn )
L’application ϕ est surjective. Notons X0...n l’ensemble des variables X0 , . . . , Xn .
Remarquons que ϕ est une bijection croissante entre les monômes de degré d en
X0...n et les monômes de degré au plus d en X1...n . Appliquons la proposition
précédente pour vérifier que ϕ satisfait les hypothèses du lemme de spécialisation.
Ceci ne marcherait pas si f était non homogène en prenant par exemple f =
X1 (X0 − 1). On peut remplacer dans cet exemple tdeg par plex. Il n’y a que la
croissance a vérifier.
L’application correspond géométriquement au passage d’une variété projective
à sa partie affine en enlevant les points à l’infini. Du point de vue de l’escalier ceci
consiste à passer à l’escalier à l’infini E∞ selon la direction X0 .
Exemple 2 (De l’homogène à l’homogène). Soient R = S = k[X0 , . . . , Xn ]
avec l’ordre tdeg. Soit l’application

R → S
ϕ: .
f 7→ f (X0 , . . . , Xn−1 , 0)
Soit f ∈ R homogène. Montrons que ϕ(lm(f )) = lm(ϕ(f )). Soit f = Xn q + r
la division euclidienne par Xn . Comme lm(f ) = lm(r) et ϕ(f ) = ϕ(r), on peut
supposer f ∈ k[X0 , . . . , Xn−1 ] homogène. Alors la proposition précédente est vérifiée
car ϕ est injective sur les monômes en X0...n−1 et croissante.
Ceci correspond géométriquement à regarder les points à l’infini de la variété
projective. L’escalier est envoyé sur sa section avec l’hyperplan degXn = 0.

2. Triangulation des idéaux


Le procédé de triangulation des idéaux est un procédé itératif que l’on va mon-
trer par récurrence sur le nombre de variables. Il consiste en un changement de
variables linéaire tel qu’on ait pour plex une base standard (g1,1 , . . . , g1,l1 , . . . ,
gn,1 , . . . , gn,ln ) avec les propriétés suivantes pour tout j dans {1, . . . , n} :
– gj,1 est unitaire en Xj ,
– ∀k ∈ {1, . . . , lj }, gj,k ∈ k[Xj , . . . , Xn ] \ k[Xj+1 , . . . , Xn ],
– ∀h, k ∈ {1, . . . , lj }, lm(gj,h ) < lm(gj,k ) si h > k.
L’algorithme prend en entrée un idéal I donné par ses générateurs (f1 , . . . , fs )
rangés par degré total croissant. Montrons d’abord que l’on peut supposer f1 uni-
taire en X1 .
Proposition 3. Pour tout f ∈ k[X1 , . . . , Xn ] non nul, il existe des
constantes ai ∈ k avec a1 6= 0 telles que le changement de variables inversible


 X1 ← a1 X1
 X2 ← X2 + a2 X1

(1) .. ..


 . ← .
Xn ← Xn + an X1

rende f unitaire en X1 .
3. LE NULLSTELLENSATZ 217

Démonstration. Si A est la matrice du changement de variables, nous note-


rons f A (x) := f (Ax). Notons fˆ la partie homogène de plus haut degré de f . On a
alors :

f A (x) = f (a1 X1 , X2 + a2 X1 , . . . , Xn + an X1 )
= fˆ(a1 X1 , . . . , an X1 ) + . . . degX1 plus petit . . .
= X deg f fˆ(a1 , . . . , an ) + . . . deg
1 plus petit . . .
X1

Proposition 4. Supposons k infini. Soit f ∈ k[X1 , . . . , Xn ] non nul, alors il


existe a ∈
/ V(f ).

Démonstration. Par récurrence sur le nombre de variables. Voyons f comme


polynôme en Xn à coefficients dans k[X1 , . . . , Xn−1 ]. Par hypothèse de récurrence
sur le terme constant de f , il existe (a1 , . . . , an−1 ) ∈ k n−1 qui n’annule pas ce terme
constant. Ainsi f (a1 , . . . , an−1 , Xn ) est un polynôme non nul. Il a donc un nombre
fini de racines. 

Comme k est infini, prenons a ∈/ V(fˆ1 X1 ). Alors le changement de variable


nous ramène à f1 unitaire. Notons I A l’idéal {f A | f ∈ I} après changement de
variables.
Appliquons récursivement notre algorithme à I A ∩ k[X2 , . . . , Xn ]. Il existe donc
un changement de variables A0 sur X2...n tel que l’on ait pour l’idéal
A0 0
I A ∩ k[X2 , . . . , Xn ] = I AA ∩ k[X2 , . . . , Xn ]

une base standard

B = (g2,1 , . . . , g2,l2 , . . . , gn,1 , . . . , gn,ln )

vérifiant les propriétés souhaités.


0
Construisons alors une base standard B 0 de I AA pour plex. On retrouve la
base B comme une partie de la base B 0 . Ainsi écrivons notre base

B 0 = (g1,1 , . . . , g1,l1 , B) = (g1,1 , . . . , g1,l1 , g2,1 , . . . , g2,l2 , . . . , gn,1 , . . . , gn,ln )

avec g1,i ∈ K[X1 , . . . , Xn ] pour i ∈ {1, . . . , l1 }. Il reste alors à montrer que g1,1
est unitaire. Or l’un des lm(g1,1...l1 ) divise lm(f1 ). Comme lm(f1 ) = X1j ∈ E(I)
alors nécessairement ce lm(g1,i ) = X1r avec r < j. De plus, ce g1,i est le plus grand
élément de la base car c’est un multiple de X1 , la plus grande variable.

Exemple 3. Appliquons notre algorithme à un exemple. Soient f1 = X 2 +


2
Y + XZ, f2 = XY − 1 et prenons l’ordre plex avec X < Y < Z. Le polynôme
f1 n’est pas unitaire en Z. Le changement de variables X ← X + Z donne f10 =
2Z 2 + 3ZX + X 2 + Y 2 et f20 = ZY + XY − 1. Un algorithme de bases standard
pour notre ordre renvoie g1 = 2Z + Y 3 + X et g2 = Y 4 − XY + 2. Le polynôme g2
est déjà unitaire en Y et on a fini.

3. Le Nullstellensatz
Dans toute cette section, le corps k est supposé algébriquement clos.
218 18. TRIANGULARISATION DES IDÉAUX, NULLSTELLENSATZ

3.1. Lien entre l’algèbre et la géométrie affine. Nullstellensatz veut dire


littéralement « théorème du lieu d’annulation ». C’est un résultat central dans le
lien entre l’algèbre et la géométrie.
Théorème 1 (Nullstellensatz affine fort). Soient I un idéal de R =
k[X1 , . . . , Xn ] et g ∈ R tel que g s’annule identiquement sur V(I). Alors il existe
r ∈ N∗ tel que g r ∈ I.
Pour le prouver, nous allons nous ramener à sa version faible.
Théorème 2 (Nullstellensatz affine faible). Soit I un idéal de k[X1 , . . . , Xn ]
tel que V(I) = ∅. Alors I = k[X1 , . . . , Xn ].
Exemple 4. Il est nécessaire de regarder les zéros sur un corps k algébrique-
ment clos. En effet soit I = (X 2 +1). Alors VR (I) = ∅ mais 1 ∈
/ I. Ceci est cohérent
avec le résultat précédent car la variété VC (I) se réduit aux points complexes ±i.
Nous allons montrer que la version faible implique la version forte. Pour ce
faire, nous faisons appel à une propriété classique attribuée à Rabinowicz.
Proposition 5 (Astuce de Rabinowicz). Soient I = (f1 , . . . , fs ) un idéal de
k[X1 , . . . , Xn ] et g un polynôme qui s’annule identiquement sur V(I). Soit encore
l’idéal I 0 = (I) + (Y g − 1) de k[X1 , . . . , Xn , Y ]. Alors, V(I 0 ) = ∅.
Démonstration. D’une part, I ⊂ I 0 implique V(I 0 ) ⊂ V(I) dans An+1 .
Mais d’autre part, puisque y g(x1 , . . . , xn ) − 1 = 0 implique g(x1 , . . . , xn ) 6= 0,
V(I 0 ) ⊂ An+1 \ V(g) ⊂ An+1 \ V(I). 
Démonstration (de version faible =⇒ version forte). Supposons le
Théorème 2, ainsi que les hypothèses du Théorème 1. Alors, par la Proposition 5,
V(I 0 ) = ∅ pour I 0 = (I) + (Y g − 1), si bien I 0 contient 1. Il existe ainsi des
polynômes pi et un polynôme p dans k[X1 , . . . , Xn , Y ] tels que
X
1= pi (X1 , . . . , Xn , Y )fi (X1 , . . . , Xn ) + p(X1 , . . . , Xn , Y )(Y g(X1 , . . . , Xn ) − 1).
Substituons 1/g(X1 , . . . , Xn ) à Y dans cette égalité. Ainsi,
X
1= pi (X1 , . . . , Xn , 1/g)fi (X1 , . . . , Xn ).
i
En multipliant par une puissance suffisante de g nous tuons les dénominateurs. Plus
précisément, pour r = max(degY pi ), nous avons
X
gr = g r pi (X1 , . . . , Xn , 1/g)fi (X1 , . . . , Xn )
i
avec g r pi (X1 , . . . , Xn , 1/g) ∈ k[X1 , . . . , Xn ]. C’est-à-dire g r ∈ I. 
Prouvons maintenant la version faible.
Démonstration (de la version faible). Cette démonstration est tirée
de [1]. Montrons, par récurrence sur la dimension n de l’espace ambiant, que si
I = (f1 , . . . , fs ) est un idéal propre alors V(I) 6= ∅. Si n = 1 alors comme k[X] est
principal, I = (f ) avec f 6= 1, et f a une racine car k est algébriquement clos.
Supposons le résultat vérifié en dimension n − 1. Quitte à faire le changement
de coordonnées de la Proposition 3, on peut supposer f1 unitaire en Xn . Comme
J = I ∩ k[X1 , . . . , Xn−1 ] ne contient pas 1, il est propre. Par récurrence, il existe
(a1 , . . . , an−1 ) ∈ V(J). Considérons l’idéal H = {f (a1 , . . . , an−1 , Xn ) | f ∈ I} de
k[Xn ]. Montrons qu’il est propre et nous en déduirons comme pour n = 1 qu’il y a
un zéro dans V(H) et donc un zéro dans V(I).
Par contraposition, si 1 ∈ H alors il existe h ∈ I tel que h(a1 , . . . , an−1 , Xn )
soit égal à 1. Considérons alors g = ResXn (h, f1 ) ∈ I ∩ k[X1 , . . . , Xn−1 ] (voir le
3. LE NULLSTELLENSATZ 219

Chapitre 7 sur le résultant). Une étude rapide du déterminant de Sylvester don-


nant g montre que g(a1 , . . . , an−1 ) = 1, car la spécialisation du déterminant a une
diagonale de 1. Ceci contredit (a1 , . . . , an−1 ) ∈ V(J). 

√ Définition 1. Soit I un idéalr de R = k[X1 , . . . , Xn ]. Le radical de I, noté


I, est√l’idéal {f ∈ R | ∃r ∈ N, f ∈ I} ; il contient I. Un idéal I est dit radical
si I = I.
Remarque. L’astuce de Rabinowicz nous donne un algorithme pour tester
l’appartenance d’un polynôme g au radical d’un idéal I = (f1 , . . . , fs ). Il suffit de
tester si l’idéal J = (f1 , . . . , fs , yg) en une variable y supplémentaire est l’anneau
tout entier. Ceci est le cas si sa base standard contient une constante non nulle.

Corollaire 1. Soit I un idéal, alors I(V(I)) = I.
Démonstration.
√ Le Nullstellensatz affine√ fort exprime l’implication
r
I(V(I)) ⊆ I. Pour l’inclusion inverse, soit g ∈ I, puis r ∈ N tel que
 g ∈ I.
r n
Comme (g )(a) = 0 implique g(a) = 0 quel que soit a ∈ A , g V(I) = 0 car
(g r ) V(I) = 0. Donc g est dans le radical de I. 
Les théorèmes précédents font le lien entre les variétés affines et les idéaux qui
les définissent :
Algèbre Géométrie
Idéal radical Variété
I → V(I)
I(V ) ← V

Nous avons aussi un premier lien entre l’escalier et la variété géométrique.


Proposition 6. Soit I un idéal affine. Les assertions suivantes sont équiva-
lentes :
i) il existe un ordre admissible pour lequel le complémentaire de E(I) est fini ;
ii) le complémentaire de l’escalier E(I) est fini pour tout ordre admissible ;
iii) dimk k[X1 , . . . , Xn ]/I < ∞ ;
iv) la variété V(I) contient un nombre fini de points.
Définition 2. Les idéaux vérifiant la proposition précédente sont appelés les
idéaux zéro-dimensionnels.
Démonstration. ii) ⇒ i) : Évident.
a
L
i) ⇔ iii) : Comme R/I = a6∈E(I) kx alors dimk R/I est le cardinal du
complémentaire de l’escalier.
iii) ⇒ iv) : Soit d = dimk R/I < ∞. Pour tout j ∈ {1, . . . , n}, la famille
(1, Xj , . . . , Xjd ) est liée dans R/I. Donc il existe Pj ∈ k[XjT ]d qui appartienne à
l’idéal I. Mais alors pour tout j, V(I) ⊂ V(Pj ) donc V(I) ⊂ j V(Pj ). Ce dernier
contient au plus dn points donc V(I) est fini.
iv) ⇒ ii) : Soit j ∈ {1, . . . , n}. La projection de V(I) sur l’axe des Xj est finie
donc il existe P ∈ k[Xj ] qui s’annule sur cette projection. Par le Nullstellensatz
affine fort, on déduit de V(I) ⊂ V(P ) l’existence de n ∈ N tel que P n ∈ I ∩ k[Xj ].
Donc l’escalier touche chaque axe et son complémentaire est fini. 
3.2. Lien entre l’algèbre et la géométrie projective. Nous avons des
théorèmes analogues pour les variétés projectives et les idéaux homogènes.
Théorème 3 (Nullstellensatz projectif faible). Soit I un idéal homogène de
k[X0 , . . . , Xn ] tel que V(I) = ∅. Soit J l’idéal I((0, . . . , 0)) = (X0 , . . . , Xn ). Alors
∃r ∈ N, J r ⊂ I.
220 18. TRIANGULARISATION DES IDÉAUX, NULLSTELLENSATZ

Démonstration. Nous noterons ici V(I) ] le cône affine de V(I) (voir la défini-
tion 3 de la Section 3.3). Le cône C est réduit au point (0, . . . , 0). Soit i ∈ {1, . . . , n}.
] Par le Nullstellensatz affine fort,
Le polynôme Xi s’annule sur la variété affine V(I).
ri
∃ri ∈ N tel que Xi ∈ I. Soient m = max(ri ) et r = n(m − 1) + 1. Montrons que
(X0 , . . . , Xn )r ⊂ I.
L’idéal J r est l’idéal engendré par les produits à r termes d’éléments de J.
Ainsi J r est engendré par les monômes de degré r. Soit X α un tel monôme avec
n+1
P
α = (α0 , . . . , αn ) ∈ N et |α| = i αi = r. Alors il existe i tel que αi ≥ m donc
X α = Xir X β ∈ I pour un certain β ∈ Nn+1 . Ainsi chaque générateur de J r est
dans I et J r ⊂ I. 

Théorème 4 (Nullstellensatz projectif fort). Soient I un idéal homogène de


R = k[X0 , . . . , Xn ] et g ∈ R homogène tel que g s’annule identiquement sur V(I).
Alors il existe r ∈ N∗ tel que g r ∈ I.
Démonstration. Comme dans la démonstration précédente, nous nous rame-
] dans An+1 défini par I. Le
nons au cas affine en considérant le cône affine V(I)
polynôme g s’annule alors identiquement et il existe r ∈ N tel que g r ∈ I. 

√ Corollaire 2. Soit I un idéal homogène, alors I(V(I)) = I. En particulier,
I est un idéal homogène.
3.3. Application : Lien entre l’élimination et la projection.
3.3.1. Un peu plus de géométrie projective. Commençons par compléter
quelques notions de géométrie projective.
Définition 3. Le cône affine Ṽ d’une variété projective V est l’ensemble des
représentants des éléments de V :
Ṽ := {(x0 , . . . , xn ) ∈ An | (x0 , . . . , xn ) = (0, . . . , 0) ou (x0 : . . . : xn ) ∈ V }.
Définition 4. Un espace linéaire projectif E est un sous-ensemble de points
(x0 : . . . : xn ) de l’espace projectif Pn vérifiant un système d’équations linéaires

 a1,0 x0 + . . . + a1,n xn = 0

.. .. .
 . + ... + . = .. .
as,0 x0 + . . . + as,n xn = 0

Un hyperplan projectif est un espace linéaire projectif donné par une seule
équation non nulle.
Définition 5. La somme E + F de deux sous-espaces linéaires projectifs de
Pn est définie par {(x0 : . . . : xn ) ∈ Pn | (x0 , . . . , xn ) ∈ Ẽ + F̃ }.
On étend naturellement la notion de dimension aux espaces linéaires projectifs.
Définition 6. Définissons la dimension d’un espace linéaire projectif E par
dim E := dim Ẽ − 1 où Ẽ est son cône affine.
On vérifie facilement que Pn est de dimension n, que les hyperplans sont de
dimension n−1 et ainsi de suite. Une propriété voulue du plan projectif est que deux
droites se coupent toujours. Ceci est une conséquence de la proposition suivante en
dimension quelconque.
Proposition 7. Soient E et F deux sous-espaces linéaires de Pn . Alors
dim(E + F ) + dim(E ∩ F ) = dim E + dim F .
3. LE NULLSTELLENSATZ 221

Démonstration. Les espaces vectoriels associés Ẽ et F̃ sont respectivement


de dimension dim E +1 et dim F +1. Ainsi dim Ẽ ∩ F̃ +dim(Ẽ + F̃ ) = dim Ẽ +dim F̃ .
Puis Ẽ ∩ F̃ = E^ ∩ F et Ẽ + F̃ = E ^ + F donc dim(E + F ) + dim(E ∩ F ) =
dim E + dim F . 
Corollaire 3. Soient E et F deux sous-espaces linéaires de Pn tels que
dim E + dim F ≥ n. Alors E ∩ F 6= ∅.
Démonstration. Par la proposition précédente, dim E ∩ F ≥ 0. Donc
dim E^∩ F ≥ 1 et contient au moins une droite. C’est-à-dire que E ∩ F n’est pas
vide. 
3.3.2. Les projections affines. Le pendant géométrique de l’élimination de Xn
est une projection.
Théorème 5. Soit I un idéal de k[X1 , . . . , Xn ]. La projection πn (V(I)) de la
variété affine V(I) est contenue dans la variété affine V(I ∩ k[X1 , . . . , Xn−1 ]).
De plus V(I ∩ k[X1 , . . . , Xn−1 ]) est la plus petite variété contenant π(V(I)).
On dit que c’est la clôture de Zariski de π(V(I)).
Démonstration. Soient x = (x1 , . . . , xn−1 ) ∈ π(V(I)) et f ∈ I ∩
k[X1 , . . . , Xn−1 ]. Il existe xn ∈ k tel que x0 = (x1 , . . . , xn ) ∈ V(I) donc f (x0 ) = 0.
Comme f ne dépend pas de Xn on a f (x) = f (x0 ) = 0. Donc π(V(I)) ⊆
V(I ∩ k[X1 , . . . , Xn−1 ]).
Soit f ∈ k[X1 , . . . , Xn−1 ] tel que f ≡ 0 sur π(V(I)) ⊆ An−1 . Comme f ne
n
dépend pas √ de Xn alors f ≡ 0 sur π(V(I)) × k ⊆ A . Mais V(I) ⊆ π(V(I)) × k
donc f ∈ I et s’annule sur V(I ∩ k[X1 , . . . , Xn−1 ]). Cette dernière est bien la plus
petite variété algébrique contenant π(V(I)). 
Exemple 5. Soit la variété algébrique XY − 1 = 0. Alors la projection de
l’hyperbole sur l’axe des X est toute la droite privée de l’origine. La plus petite
variété la contenant est bien V((0)) car hXY − 1i ∩ k[X] = (0). On voit qu’il peut
manquer des points lorsque l’on projette des variétés algébriques affines.
On peut préciser le théorème précédent en étudiant le lieu des points qui n’ap-
partiennent pas à la projection.
Proposition 8. Soit I = (f1 , . . . , fs ) et I 0 = I ∩ k[X1 , . . . , Xn−1 ] son premier
idéal éliminant. Considérons les polynômes fi comme des polynômes en Xn à co-
efficients dans k[X1 , . . . , Xn−1 ] et notons gi ∈ k[X1 , . . . , Xn−1 ] le terme de tête de
fi . Alors
V(I 0 ) = π(V(I)) ∪ (V(g1 , . . . , gs ) ∩ V(I 0 )).
En d’autres termes, tout point de V(I 0 ) qui n’annule pas tous les termes de tête
se remonte en un point de V(I).
Nous en déduisons directement l’important cas particulier qui suit.
Corollaire 4. Supposons qu’il existe un polynôme unitaire en Xn dans I.
Alors V(I 0 ) = π(V(I)).
Démonstration du théorème. Il suffit de montrer que V(I 0 ) \
V(g1 , . . . , gs ) ⊂ π(V(I)). Soit a = (a1 , . . . , an−1 ) ∈ V(I 0 ). Supposons que
g1 (a) 6= 0. De manière analogue à la preuve du Nullstellensatz, introduisons l’idéal
J = {f (a1 , . . . , an−1 , Xn ) | f ∈ I}. L’idéal J 6= (1) si et seulement si a ∈ π(V(I)).
Cependant si J = (1) alors il existe h ∈ I tel que h(a1 , . . . , an−1 , Xn ) = 1. En
regardant la matrice de Sylvester, on voit que ResXn (f1 , h) ∈ I 0 ne s’annule pas en
a ce qui contredit l’hypothèse J = (1). 
222 18. TRIANGULARISATION DES IDÉAUX, NULLSTELLENSATZ

Quitte à prendre de bons générateurs de l’idéal, on peut toujours supposer si


I 6= (1) que V(I 0 ) 6⊂ V(g1 , . . . , gs ) (cf. [2] page 123). Ainsi l’ensemble des points de
V(I 0 ) qui ne sont pas des projetés sont inclus dans une sous-variété de V(I 0 ) et en
ce sens il y en a peu.
Exemple 6. Reprenons l’exemple précédent de l’hyperbole XY −1 = 0 projetée
sur l’axe des X. Seul le point 0 de l’axe des X n’est pas un projeté. Tournons les
axes de manière semblable à la triangulation. Soit A le changement de variables
X ← X + Y, Y ← Y . Alors f A = Y 2 + XY − 1. On se trouve dans la situation du
corollaire et on vérifie que la projection est surjective.

Figure 1. Les projections de l’hyperbole

3.3.3. Les projections projectives. Nous allons définir les projections de l’espace
projectif et vérifier que cela correspond bien à la notion habituelle affine.
Définition 7. Soient L et B deux sous-espaces linéaires propres de Pn qui ne
se coupent pas et tels que dim L + dim B = n − 1. Alors la projection de base B
avec L comme centre de projection est l’application
 n
P −L → Pn
π:
x 7→ (L + x) ∩ B
qui associe à un point x ∈ Pn l’unique point de (L + x) ∩ B (voir Corollaire 3).
Cette définition généralise bien les projections affines usuelles. En effet soit la
projection affine
An An−1


π: .
(x1 , . . . , xn ) 7→ (x1 , . . . , xn−1 )
Considérons l’espace affine An comme une partie de Pn via l’inclusion
An Pn

,→
.
(x1 , . . . , xn ) 7→ (1 : x1 : . . . : xn )
On vérifie (exercice) que la projection affine π est la restriction à An de la projection
sur {Xn = 0} de centre (0 : . . . : 0 : 1).
Comme à l’accoutumée, les choses se passent mieux dans l’espace projectif : les
variétés algébriques projectives sont stables par projection.
Théorème 6. Soient L et B deux sous-espaces linéaires propres de Pn tels que
dim L + dim B = n − 1. Le projeté d’une variété algébrique disjointe de L par la
projection de base B et de centre de projection L est encore une variété algébrique.
Démonstration. Quitte à faire un changement de coordonnées linéaire, on
peut supposer que E est inclus dans l’hyperplan X0 = 0. Une projection depuis
l’infini correspond à la projection affine habituelle. Il suffit de montrer le théorème
dans le cas où l’on projette sur un hyperplan. Nous renvoyons alors à la démons-
tration dans le livre [2, Section 8.5]. 
Bibliographie 223

Bibliographie
[1] Arrondo (Enrique). – Another elementary proof of the Nullstellensatz. The American Mathe-
‌ , , pp. 169–171.
matical Monthly, vol. 113, n2
[2] Cox (David), Little (John), and O’Shea (Donal). – Ideals, varieties, and algorithms. – Springer-
Verlag, New York, , second edition, xiv+536p.
CHAPITRE 19

Fonction et polynôme de Hilbert, dimension, degré

Résumé

Le polynôme de Hilbert est un objet combinatoire lié à un idéal. On


peut lire sur ce polynôme des informations géométriques sur la variété
correspondant à l’idéal : sa dimension, son degré . . .

Sauf indication contraire, nous sommes dans ce chapitre dans le contexte pro-
jectif. L’anneau R est donc k[X0 , . . . , Xn ].

1. Définitions
Le degré d’un point a = (a0 , . . . , an ) de Nn+1 est l’entier | a |= a0 + · · · + an .

Définition 1 (Fonction de Hilbert). Soit E une partie stable de Nn+1 ; la fonc-


tion HFE , qui associe à tout entier u le nombre de points de degré u n’appartenant
pas à E, est appelé fonction de Hilbert du complémentaire de E :
HFE (u) = #{a ∈ Nn+1 | a 6∈ E, | a |= u}.
On étend HFE aux entiers négatifs par la valeur 0.

Théorème 1 (Hilbert). Pour u assez grand, la fonction HFE est égale à un


polynôme HPE (dit de Hilbert). De plus, il existe des entiers c0 , . . . , cd tels que :
d  
X u
HPE (u) = ci
i=0
d−i
u

où r est la fonction binomiale.

Définition 2. Avec les notations précédentes, d est la dimension de E, et c0


son degré. Nous attribuerons par convention le degré −1 au polynôme nul.

En gardant les même notations, le coefficient de tête du polynôme HPE est


c0 /d!.

Définition 3 (Régularité et degré maximum). La régularité H(E) de la fonc-


tion de Hilbert est le plus petit entier à partir duquel la fonction de Hilbert coïncide
avec le polynôme de Hilbert. Nous noterons D(E) le degré maximum des éléments
engendrant minimalement E.

Toutes ces définitions s’étendent directement aux idéaux homogènes ainsi


qu’aux variétés algébriques projectives.

Définition 4. Soient R = k[X0 , . . . , Xn ], < un ordre sur R. Soit R0 = R/I un


quotient de R par un idéal I homogène. On note alors HFR0 := HFE< (I) la fonction
de Hilbert du quotient R0 . Cette définition est indépendante de l’ordre choisi par le
corollaire 3, Chapitre 16.
225
226 19. FONCTION ET POLYNÔME DE HILBERT, DIMENSION, DEGRÉ

2. Démonstration du théorème et d’une borne supérieure de la


régularité
Nous allons aussi montrer la borne supérieure suivante :
(1) H(E) ≤ (n + 1)(D(E) − 1) + 1.
Par récurrence sur n. L’assertion est claire pour n = 0. Puis d’après le lemme de
Dickson, la section Ei de E par l’hyperplan {xn+1 = i} est constant dès que l’indice
i dépasse un certain entier e et pas auparavant. Considérons alors le développement
suivant de la fonction de Hilbert :
Xu
HFE (u) = HFEi (u − i)
i=0

qui se casse en trois morceaux dès que u est assez grand :


X X X
HFE (u) = HFEi (u − i) + HFEe (u − i) + HFEe (u − i)
0≤i≤e−1 e≤i≤u−H(Ee ) u−H(Ee )+1≤i≤u
X X X
= HFEi (u − i) + HFEe (i) + HFEe (i)
0≤i≤e−1 H(Ee )≤i≤u−e 0≤i≤H(Ee )−1

Pour u suffisamment grand la fonction devient :


X X X
(2) HFE (u) = HPEi (u − i) + HPEe (i) + HFEe (i)
0≤i≤e−1 H(Ee )≤i≤u−e 0≤i≤H(Ee )−1
P
qui n’est autre que le polynôme de Hilbert HPE puisque H(Ee )≤i≤u−e HPEe (i)
est effectivement un polynôme en u, d’après le lemme classique suivant.

P P un polynôme en X de degré d. Étant donnés deux entiers r


Lemme 1. Soit
et s, la fonction r≤i≤s P (i) est polynomiale en s de degré d + 1.
Démonstration. La démonstration
n est immédiate
o n leopolynôme P
une fois
X(X−1)···(X−d+1)
décomposé sur la base binomiale d! , notée X d , des po-
d∈N d∈N
lynômes en X. 
Plus précisément l’équation (2) est vraie dès que u dépasse max{i+H(Ei ) | 0 ≤
i ≤ e}, ce qui est une conséquence de l’hypothèse de récurrence dès que u dépasse
(n + 1)(D(E) − 1) + 1.
Pour ce qui est de l’intégrité des coefficients sur la base binomiale, ceci est une
conséquence du lemme suivant.
Lemme 2. Soit P ∈ C[X] un polynôme qui prend des valeurs entières sur tous
les entiers. Alors les coefficients de P sur la base binomiale sont entiers.
Démonstration. Soit ∆ : P (X) 7→ P (X +1)−P (X) l’opérateur de dérivation
discrète. Les formes linéaires ∆n (0) : P 7→ (∆n (P )) (0) forment la base duale de la
base binomiale. Remarquons que si P (Z) ⊂ Z alors ∆(P )(Z) ⊂ Z. Les coefficients
∆n (0)(P ) de P sur la base binomiale sont donc entiers. 

3. Optimalité de la borne sur le degré de régularité


Étant donnés n + 1 entiers positifs a0 , . . . , an , considérons l’idéal
(X0a0 , . . . , Xnan ), dont ces générateurs monomiaux forment évidemment une base
standard. La partie stable associée E est le complément d’un parallélépipède
dontPl’élément de degré maximal est (a0 − 1, . . . , an − 1). La régularité est donc
n
1 + i=0 (ai − 1) ; dans le cas où tous les ai sont égaux, ceci prouve que la borne
ci-dessus peut être atteinte.
5. THÉORIE DE LA DIMENSION 227

4. Le cas des suites régulières


Définition 5. Soit R un anneau. On dit qu’un élément a ∈ R est un diviseur
de zéro dans R s’il existe d ∈ R − 0 tel que ad = 0. Ceci est équivalent à ce que
l’homomorphisme de R dans R de multiplication par a ne soit pas injectif.
Définition 6. Soit f1 , . . . , fs une suite de polynômes. La suite est dite régu-
lière si pour tout i ∈ {1, . . . , s}, la classe de fi dans k[X0 , . . . , Xn ]/(f1 , . . . , fi−1 )
n’est pas un diviseur de zéro.
Proposition 1. Soit I un idéal homogène engendré par une suite régulière
homogène f1 , . . . , fs de degrés
Q respectifs d1 , . . . , ds . Alors la variété V(I)
P a pour
dimension n − s, pour degré i di et un degré de régularité majoré par ( i di ) − n.
Démonstration. Procédons par récurrence sur la longueur s de la suite. Si
s = 0 alors R0 = R et
 u+n
n pour u positif
HFR0 (u) = .
0 pour u négatif
La régularité est −n car HFR coïncide avec HPR (u) = u+n

n si et seulement si
u ≥ −n.
Supposons le résultat vrai au rang i − 1. Notons Ri = R/(f1 , . . . , fi ). Considé-
rons la suite exacte (c’est-à-dire que l’image de chaque morphisme d’anneaux est le
noyau du suivant) suivante :
.fi
0 → Ri−1 −→ Ri−1 → Ri → 0.
Les anneaux Ri héritent de la graduation de R car les idéaux (f1 , . . . , fi ) sont
homogènes. La suite exacte respecte la graduation, i.e. pour tout j entier la suite
suivante est exacte :
.fi
0 → (Ri−1 )j−di −→ (Ri−1 )j → (Ri )j → 0.
Ainsi HFRi (u) = HFRi−1 (u) − HFRi−1 (u − di ), d’où la même égalité sur les poly-
Pi
nômes de Hilbert. On a aussi directement que HRi ≤ HRi−1 + di = l=1 dl − n.
Par hypothèse de récurrence nous avons
un−i+1
HPRi−1 (u) = d1 . . . di−1 + cun−i + . . .
(n − i + 1)!
où c ∈ Q. Ainsi
HPRi (u) = HFRi−1 (u) − HFRi−1 (u − di )
d1 . . . di−1  n−i+1
− (u − di )n−i+1 + c un−i − (u − di )n−i + . . .
  
= u
(n − i + 1)!
un−i
= d1 . . . di + c0 un−i−1 + · · · + cdi un−i−1 + . . .
(n − i)!
où c0 ∈ Q. 
Remarquons que la borne sur la régularité pour les suites régulières est liée à
celle du théorème de Hilbert.

5. Théorie de la dimension
Rappelons la définition algébrique de la dimension.
Définition 7. Soit I un idéal homogène. La dimension de Hilbert δ de la
variété projective V(I) est le degré du polynôme de Hilbert associé à R/I, c’est-à-
dire la dimension de l’escalier défini par I pour n’importe quel ordre.
228 19. FONCTION ET POLYNÔME DE HILBERT, DIMENSION, DEGRÉ

Puis deux définitions géométriques.


Définition 8. La dimension de section est le plus petit entier σ tel qu’il existe
une sous-variété linéaire de codimension σ+1 évitant V(I). La dimension de projec-
tion est le plus grand entier π tel qu’il existe une projection envoyant surjectivement
V(I) sur une base de dimension π.
Ces trois notions coïncident classiquement, ce que nous allons prouver via leur
égalité avec deux autres notions qui se lisent sur les bases standard.
Définition 9 (Dimension lexicographique inférieure (resp. supérieure)). Soit
x un système de coordonnées de Pn . Nous appellerons linf x (resp. lsup x ) le plus
petit (resp. le plus grand) entier e tel que Ex (I) relativement aux ordres tdeg (resp.
plex) rencontre les derniers n − e axes de coordonnées de Nn+1 (resp. ne rencontre
pas le plan des e + 1 premières coordonnées).
Le minimum linf des linf x (resp. le maximum lsup des lsup x ) pris sur tous les
systèmes de coordonnées est appelé la dimension lexicographique inférieure (resp.
supérieure).
Théorème 2 (Dimension). Les cinq notions de dimension ci-dessus coïncident.
Avant de commencer la preuve, nous pouvons faire deux remarques. La première
est que cette définition de la dimension est compatible avec celle d’une variété
linéaire. L’équivalence géométrique est évidente et le lien avec les escaliers revient
à se placer dans de bonnes coordonnées par de l’algèbre linéaire. Ceci est détaillé
dans le début du prochain chapitre. La deuxième remarque est que la Proposition 6
du Chapitre 18 sur les idéaux zéro-dimensionnel a pour conséquence l’équivalence
des dimensions pour les idéaux zéro-dimensionnels.
Démonstration. Montrons les cinq inégalités successives.
δ ≥ lsup. Supposons qu’il existe des coordonnées de Pn pour lesquelles, relati-
vement à un ordre compatible, par exemple le lexicographique, E(I) ne rencontre
pas le plan des e + 1 premières coordonnées. Ainsi la fonction de Hilbert HF(u) est
minorée par le nombre de monômes de degré u sur e + 1 lettres, qui est un O(ue )
quand u tend vers l’infini. Donc δ est minoré par lsup.
lsup ≥ π. Supposons que V(I) puisse être projeté surjectivement sur un plan P
de dimension p. Nous pouvons choisir des coordonnées telles que ce plan soit défini
par les équations xp+1 = · · · = xn = 0. Ainsi l’idéal I ∩ k[x0 , . . . , xp ] se réduit à 0 ;
sinon il existerait un polynôme non nul f (x0 , . . . , xp ) dans I qui ne peut s’annuler
sur tout le plan, et l’ensemble algébrique V(I) ne peut se projeter surjectivement.
Considérons par rapport à de telles coordonnées la partie stable E(I) relativement
à l’ordre plex : elle ne peut rencontrer le plan des p + 1 premières variables d’après
la Proposition 3 du Chapitre 17.
π ≥ σ. Par définition de σ, il existe une sous-variété linéaire L de codimension
σ + 1 évitant V(I). Par ailleurs nous pouvons choisir une sous-variété linéaire B de
dimension σ évitant L. La projection de centre L envoie surjectivement V(I) sur
B, puisque σ est minimal ; car si b est un point de B, la sous-variété linéaire qu’il
engendre avec L est de codimension σ, donc coupe V(I) en au moins un point qui
se projette sur b.
σ ≥ linf . Par définition de σ, il existe une sous-variété linéaire L de codimen-
sion σ + 1 évitant V(I). Nous pouvons choisir des coordonnées telles que L soit
définie par les équations x0 = · · · = xσ = 0. L’idéal J = I + (x0 , . . . , xσ ) défi-
nit la variété vide, donc d’après le Nullstellensatz contient une puissance de l’idéal
maximal (x0 , . . . , xn ) (voir Chapitre 18, Proposition 6). Quelque soit l’ordre, en
particulier l’ordre tdeg, E(J) coupe tous les axes de coordonnées. Considérons un
polynôme dont le monôme dominant est sur un des axes xσ+1 , . . . , xn ; il est congru
Bibliographie 229

modulo (x0 , . . . , xσ ) à un polynôme de I, non nul et de même monôme dominant.


C’est donc que la section de E(I) par le plan des n − σ dernières coordonnées
recoupe tous les axes.
linf ≥ δ. Supposons qu’il y ait des coordonnées de Pn telles que, relativement à
l’ordre tdeg, E(I) coupe les derniers n − linf axes. En degré u suffisamment grand,
le complémentaire de E(I) ne contient que des monômes dont les n − linf derniers
exposants sont majorés par un un entier fixé ; à une constante multiplicative près, la
fonction de Hilbert HF(u) est donc majorée par le nombre de monômes sur linf + 1
lettres, soit un O(ulinf ) quand u tend vers l’infini. 

6. Remarque sur la calculabilité de la dimension


Soit I un idéal engendré par des polynômes de degré inférieur à d. Une fois
construite une base standard, on peut calculer la dimension de Hilbert. Mais il
existe une famille d’idéaux, donnés par des générateurs de degré au plus d, dont
n
le degré des éléments d’une base standard est minoré par Cda , C > 0 , a > 1
(exemple de [2], voir aussi [1], ou [3] pour un résumé de tous les pires cas).
Cependant, il y a des classes d’idéaux qui n’atteignent pas cette borne de pire
complexité.
Lemme 3. Soit E un escalier de complémentaire fini. Alors le degré maximal
des générateurs minimaux de l’escalier est inférieur à la régularité de l’escalier,
c.-à-d. D(E) ≤ H(E).
Démonstration. Le polynôme de Hilbert est le polynôme nul. Soit (Ai ) un
système de générateur minimal de E. Notons ej ∈ Nn+1 le vecteur dont toutes
les coordonnées sont nulles sauf celle d’indice j qui vaut 1. Pour tout i, l’un des
translatés Ai −ej de Ai pour 0 ≤ j ≤ n n’est pas dans l’escalier. Ainsi HF(|Ai |−1) >
0 donc H(E) ≥ |Ai | pour tout i d’où le résultat. 
Proposition 2 (Admise). Soit I un idéal engendré par une suite régulière
(f1 , . . . , fs ) de degrés majorés par d. Alors il existe un changement de coordonnées
tel que la base standard de I pour tdeg vérifie D(E) ≤ (n + 1)d − n.
On peut donc attendre des bases standard pour tdeg que leur degré maximal
soit généralement linéaire en n, bien moins que la borne de pire degré précédemment
citée.

Bibliographie
[1] Demazure (M.). – Le théorème de complexité de Mayr et Meyer. In Géométrie algébrique et
applications, I (La Rábida, 1984), pp. 35–58. – Hermann, Paris, .
[2] Mayr (Ernst W.) and Meyer (Albert R.). – The complexity of the word problems for commu-
tative semigroups and polynomial ideals. Adv. in Math., vol. 46, n‌3, , pp. 305–329.
[3] von zur Gathen (Joachim) and Gerhard (Jürgen). – Modern computer algebra. – Cambridge
University Press, New York, , 2nd edition, xiv+785p.
CHAPITRE 20

Le lemme de normalisation de Noether

Résumé
Étant donné un système d’équations linéaires homogènes, les formules de
Cramer permettent de paramétrer les solutions en fonction d’un certain
nombre de variables que l’on peut choisir arbitrairement.
Le lemme de normalisation de Noether fournit un résultat analogue
pour des systèmes d’équations polynomiales. Nous l’abordons du point
de vue de l’algorithmique et de la complexité.

1. La situation linéaire
Soient f1 , . . . , fs des formes linéaires homogènes à n + 1 variables X0 , . . . , Xn ,
à coefficients dans un corps k :
n
X
fi (X0 , . . . , Xn ) = fij Xj i = 1, . . . , s.
j=0

1.1. Point de vue de l’algèbre. On peut supposer, quitte à en enlever cer-


taines, que les formes linéaires f1 , . . . , fs sont linéairement indépendantes. Comme
la s × (n + 1) matrice F qui leur est associée est de rang s, il existe un mineur M
non nul de taille s. Quitte à renuméroter les variables, nous pouvons supposer que
F s’écrit
1...s s + 1...n
1 !
F = .
.. M N
s
avec det M 6= 0. Alors nous avons l’équivalence
     
X0 X0 Xs
F  ...  = 0 ⇐⇒ M  ..  . 
 = −N  .. 
   
.
Xn Xs−1 Xn
   
X0 Xs
.. −1  . 
⇐⇒  = −M N  ..  .
 
 .
Xs−1 Xn
Ainsi, les s premières coordonnées (variables liées) sont données en fonction des
n − s + 1 dernières arbitrairement choisies (variables libres). L’espace vectoriel des
solutions devient ainsi le graphe d’une application linéaire k n−s+1 → k s .

1.2. Point de vue de la géométrie. L’interprétation géométrique des for-


mules de Cramer est la suivante : si le rang est s, nous pouvons partitionner l’en-
semble des variables en deux paquets, X0 , . . . , Xs−1 (variables liées) et Xs , . . . , Xn
(variables libres) après renumérotation. Définissons les deux sous-variétés linéaires
B d’équations X0 = · · · = Xs−1 = 0 et L d’équations Xr+1 = · · · = Xn = 0. La
231
232 20. LE LEMME DE NORMALISATION DE NOETHER

sous-variété linéaire d’équations f1 = · · · = fs = 0 ne coupe pas L, et la projection


de centre L l’envoie surjectivement sur B.

1.3. Point de vue de l’algorithmique. À partir de la matrice F , l’algo-


rithme du pivot de Gauss permet d’exhiber un mineur non nul de taille maximale,
avec un nombre d’opérations arithmétiques polynomial en s, n. Ces questions ont
été abordées au Chapitre 3.

2. La situation générale
Soient f1 , . . . , fs des formes homogènes à n + 1 variables X0 , . . . , Xn , de degrés
d1 , . . . , ds , à coefficients dans un corps k :
X
fi (X0 , . . . , Xn ) = fia X0a0 · · · Xnan i = 1, . . . , s.
|a|=di

où a = (a0 , . . . , an ) est un élément de Nn+1 de degré |a| = a0 + · · · + an .

2.1. Point de vue de l’algèbre. L’anneau R = k[X0 , . . . , Xn ] peutL être muni


d’une structure d’anneau gradué par la décomposition canonique R = s≥0 Rs où
Rs est l’ensemble des polynômes homogènes de degré s. L’idéal IL de R engendré
par les formes f1 , . . . , fs est homogène et est donc gradué par I = s≥0 (I ∩ Rs ).
Définition 1. Soient A ⊂ B deux anneaux. On dit que b ∈ B est entier sur A
si il existe P ∈ A[X] unitaire tel que P (b) = 0. L’extension A ⊂ B est en entière
si tout b ∈ B est entier sur A.
Exemple 1. Les entiers de l’extention Z ⊂ Q sont les « entiers » Z.
Proposition 1. Soient A ⊂ B et b, c ∈ B. Supposons que b est entier sur A
et c est entier sur l’anneau A[b]. Alors c est entier sur A.
Démonstration. Considérons les relations de dépendance intégrale P (b) =
Pq−1 Pt−1
bq + i=0 ai bi = 0 et Q(c) = ct + j=0 Aj (b)cj = 0 avec ai ∈ A et Aj ∈ A[X].
Considérons ces relations comme des polynômes à coefficients dans A[c] évalués en
b. Leur résultant Res(P, Q) est nul car ils ont b comme racine commune. On voit en
regardant la matrice de Sylvester que c’est la diagonale qui donne la plus grande
puissance de c. En l’occurrence, 0 = Res(P, Q) = ctq + . . . et on a bien une relation
unitaire à coefficients dans A. 

Proposition 2 (Version algébrique du lemme de normalisation de Noether).


Après changement linéaire de variables, que nous noterons encore X0 , . . . , Xn , il
existe un indice r tel que la composée :
0 → k[X0 , . . . , Xr ] → k[X0 , . . . , Xn ] → k[X0 , . . . , Xn ]/I → 0
de l’injection et de la surjection canoniques soit encore injective et réalise une ex-
tension entière d’anneaux.
Dit autrement, nous pouvons après changement de variables partitionner ce
dernières en deux paquets : les r + 1 premières seront dites libres et les n − r
dernières liées, telles que :
– il n’existe pas dans l’idéal I de polynôme non nul ne dépendant que des
variables libres ;
– il existe pour i ∈ [r + 1, . . . , n] des polynômes pi de k[X0 , . . . , Xi−1 ][T ], uni-
taires en t, tels que les pi (X0 , . . . , Xi−1 )(Xi ) appartiennent à l’idéal I (rela-
tions de dépendance intégrale).
NOTES 233

Démonstration. Plaçons-nous dans k[X0 , . . . , Xn ]/I. Notons Xi la classe de


Xi dans le quotient. Triangulons notre idéal. Quitte à faire un changement de co-
ordonnées linéaire, le résultat de la triangulation nous donne des relations unitaires
en Xi à coefficients dans k[X0 , . . . , Xi−1 ] pour i ∈ [r . . . n]. Par la proposition 1
répétée, nous avons donc que Xr+1 , . . . Xn sont entiers sur k[X0 , . . . , Xr ]. De plus
nous avons que I ∩ k[X0 , . . . , Xr ] = 0, ce qui donne la première assertion. 
2.2. Point de vue de la géométrie. Dorénavant nous supposerons quand
nous parlerons de géométrie que k est algébriquement clos et nous noterons le
projectif Pn .
La version algébrique implique alors :
Proposition 3 (Version géométrique du lemme de normalisation de Noether).
Pour tout idéal homogène I, il existe deux sous-variétés linéaires Lr+1 de codimen-
sion r + 1 et B r de dimension r telles que :
– les deux ensembles V(I) et Lr+1 ne se coupent pas ;
– la restriction à V(I) de la projection π de centre Lr+1 et de base B r est
surjective et finie, c’est-à-dire que pour tout point b de B r , la fibre π −1 (b)
est constitué d’un nombre fini non nul de points.
Exercice 1. Montrer que la version algébrique implique la version géomé-
trique. (Indication : Poser B égal à X0 = · · · = Xr = 0 et L égal à Xr+1 = · · · =
Xn = 0. Une difficulté est de montrer que les fibres ne sont pas vides.)
Nous donnons aussi une preuve géométrique car celle-ci est naturelle.
Démonstration. Ce résultat est un corollaire du théorème 2 du Chapitre 19.
En effet le théorème nous donne l’existence de L disjoint de V(I) de codimension
maximale égale à r + 1. Posons B un espace de dimension r ne coupant pas L. Soit
π la projection de centre L et de base B. Montrons d’abord, par l’absurde, que la
restriction de π à V(I) est surjective. Si un point b ∈ B n’est pas une projection
alors l’espace linéaire projectif P +b ne coupe pas V(I). Cet espace est de dimension
r + 2 ce qui contredit le théorème de la dimension. Montrons enfin que la fibre est
finie. Soit b ∈ B et π −1 (b) = V(I) ∩ (L + b) la fibre au dessus de b. Toujours
par le théorème 2, l’intersection d’une variété algébrique et d’une variété linéaire
dont la somme des dimensions est supérieure ou égal à la dimension de l’espace
ambiant est non vide. Ainsi dans l’espace L + b de dimension r + 1, l’hyperplan L
rencontre V(I) dès que celui-ci est de dimension 1. Or L est disjoint de V(I). Donc
π −1 (b) = V(I) ∩ (L + b) est de dimension 0. 
En fait cette assertion même affaiblie par la suppression de l’hypothèse de
finitude implique en retour la version algébrique.

2.3. Point de vue de l’algorithmique. L’algorithme de triangulation du


Chapitre 18 met en position de Noether un idéal quelconque. Cependant il cal-
cule des bases standard et sa complexité dans le pire cas ne peut être mieux que
doublement exponentielle (voir Chapitre 19, Section 6).
Il est proposé dans [1] un algorithme de mise en position de Noether, avec
2
un nombre d’opérations arithmétiques polynomial en dn , toujours basé sur des
constructions de bases standard mais tronqués en degré. Pour faire mieux il faut
s’y prendre autrement...

Notes
Le point de vue utilisé dans ce cours provient essentiellement des deux ar-
ticles [1] et [2].
234 20. LE LEMME DE NORMALISATION DE NOETHER

Bibliographie
[1] Giusti (Marc). – Combinatorial dimension theory of algebraic varieties. Journal of Symbolic
Computation, vol. 6, n‌2-3, , pp. 249–265. – Special issue on Computational aspects of
commutative algebra.
[2] Giusti (Marc) and Heintz (Joos). – La détermination des points isolés et de la dimension d’une
variété algébrique peut se faire en temps polynomial. In Computational algebraic geometry
and commutative algebra (Cortona, 1991), pp. 216–256. – Cambridge Univ. Press, Cambridge,
.
CHAPITRE 21

Quête d’une meilleure complexité

Résumé
La représentation dense des polynômes donne des algorithmes asymp-
totiquement trop coûteux. Nous introduisons donc une autre structure
de données plus adaptée.

1. Test à zéro, ensembles questeurs


Pour pouvoir tourner les coordonnées dans l’algorithme de triangulation, il
faut trouver un point qui n’annule pas un polynôme non nul. Le problème inverse
consiste à tester la nullité d’un polynôme en l’évaluant en différents points. Nous
allons nous intéresser à la complexité de ces problèmes.
Définition 1. Soient P ⊂ k[X1 , . . . , Xn ] un ensemble de polynômes et Q ⊂ k n .
On dit que l’ensemble Q est questeur pour P si aucun polynôme de P non nul ne
s’annule identiquement sur Q. Ceci revient à dire que l’évaluation sur Q est un test
à zéro pour les polynômes de P .
Proposition 1. Soient E1 , . . . , En ⊂ k des parties de cardinal supérieur à
d + 1. Alors Q := E1 × · · · × En ⊂ k n est un ensemble questeur pour les polynômes
k[X1 , . . . , Xn ]≤d à coefficients dans k de degré au plus d.
Démonstration. Procédons par récurrence sur n. Pour n = 1, un polynôme
de degré au plus d qui admet d + 1 racines est nul. Remarquons que ceci est vrai
généralement pour les polynômes à coefficients dans un anneau unitaire car la dé-
monstration repose sur la division euclidienne par X − x si x est uneP racine. Sup-
posons le résultat vrai au rang n − 1. Soit p ∈ P , écrivons-le p = pi Xni avec
pi ∈ k[X0 , . . . , Xn−1 ]. Soit x ∈ En , alors p(X1 , . . . , Xn−1 , x) est nul car il s’annule
sur E1 × · · · × En−1 . Le polynôme p a au moins d + 1 racines en Xn donc il est
nul. 

Corollaire 1. Sur un corps infini, on peut toujours trouver un point qui


n’annule pas un polynôme non nul.
Le problème de cet ensemble questeur est qu’il est de taille exponentielle en
n. On peut trouver d’autres ensemble questeurs plus adapté à la structure d’un
polynôme.
Conjecture. Soit A ⊂ Nn . Posons WA = { a∈A ca X a | ca ∈ k} les poly-
P
nômes de k[X1 , . . . , Xn ] à support dans A. Alors A est un ensemble questeur pour
WA .
Un résultat analogue a quant à lui été démontré.
Théorème 1 (Risler, Ronga [6]). L’ensemble 2{A} =
{(2 , . . . , 2an ) | (a1 , . . . , an ) ∈ A} est questeur pour WA .
a1

235
236 21. QUÊTE D’UNE MEILLEURE COMPLEXITÉ

2. Structures de données pour les polynômes multivariés


La représentation dense consiste à se donner un polynôme par son degré et
par la liste de tous les coefficients des monômes de degré plus petits. Dans cette
représentation, le test à zéro s’effectue en testant à zéro chaque coefficient. Le coût
du test est donc proportionnel à la taille du codage du polynôme.  Par exemple,
pour un polynôme de degré d en n variables, on devra coder n+d d−1 coefficients.
Or, même dans le cas simple des suites régulières, si on a en entrée n polynômes
de degré d, un calcul de base standard fait intervenir des polynômes de degré de
l’ordre de grandeur de dn . Le nombre de monômes en ce degré est de l’ordre de
2
grandeur de dn . Pour pallier ce problème nous allons introduire une autre structure
de données. L’objectif est d’avoir des algorithmes de complexité polynomiale en dn
pour les tâches usuelles de la géométrie algébrique.
Nous allons considérer un modèle théorique d’algorithmes. Les DAG, pour di-
rected acyclic graphs, représentent un algorithme par son arbre de calcul. Nous
renvoyons à [1] pour plus de détails sur le sujet.
Soit donc un arbre ayant les propriétés suivantes : les fils de l’arbre sont soit
des éléments de k soit des variables Xi . Les noeuds possibles du graphe sont soit
des noeuds binaires qui effectuent une opération arithmétique (+,−,×,/) entre les
deux fils, soit un noeud ternaire if = 0 qui effectue une opération arithmétique
entre ses deux premiers fils si le troisième est non nul. Les noeuds sans parents sont
les sorties de l’algorithme. La taille de l’arbre définit la complexité séquentielle de
l’algorithme.
Cette représentation est utile, bien que pas toujours explicite. Pour preuve la
fonction d’Erdös,
(
n/2 si n est pair
n ∈ N 7→
(3n + 1)/2 si n est impair
est conjecturé d’être la fonction nulle, sans preuve pour l’instant.
Un SLP, pour Straight-Line Program, est un DAG sans noeud if = 0 ni divi-
sion. Un SLP est un polynôme qui est encodé par son algorithme d’évaluation. La
taille du graphe est alors appelé la complexité d’évaluation du SLP.
Exemple 1. PTouti polynôme se code en un SLP. Le schéma de Horner consiste
à calculer P = ai X par P = ((an X + an−1 )X + an−2 . . . )X + a0 . Il code tout
polynôme univarié de degré d par un SLP de complexité d’évaluation d. À l’inverse,
6
le polynôme (X + 1)10 se code beaucoup mieux en évaluation (par exponentiation
rapide) que par sa représentation sur la base monomiale.
Définition 2. La complexité d’évaluation d’un polynôme est le minimum des
complexités d’évaluation des SLP qui le représentent.
Exemple 2. Soit M = (Xi,j ) la matrice générique. Alors le polynôme déter-
minant de M se code mal par sa représentation sur la base monomiale car il a n!
monômes. Par contre, il se code en complexité d’évaluation O(n4 ) par l’algorithme
de Berkowitz, qui est un analogue sans test à zéro et sans division de celui de Stras-
sen. Cette exemple est important car il illustre que les polynômes d’élimination,
dont le déterminant est un bon représentant, s’évaluent bien.
Le problème des SLP est le test à zéro. Nous allons voir qu’il existe des
ensembles questeurs de taille polynomiales. Cependant ils peuvent être durs à
construire.
Théorème 2 (Heintz, Schnorr [5]). Soit W (D, n, L) l’ensemble des polynômes
en n variables de degré au plus D et de complexité d’évaluation au plus L. Fixons
Bibliographie 237

Γ ⊂ k de cardinal 2L(D + 1)2 et m := 6(L + 1)(L + n + 1). Soient τ (D, n, L, Γ) l’en-


semble des m-uplets de n-uplets d’éléments de Γ et ξ(D, n, L, Γ) celui des éléments
de τ qui ne sont pas questeurs.
Alors
|ξ(D, n, L, Γ)| 1
nm
≤ .
|Γ| |Γ|m/6
Le membre droit est majoré par 1/264000 dans les cas non triviaux.
Nous parlerons donc dans nos algorithmes utilisant des SLP de deux types de
complexité. La complexité non uniforme revient à dire, « au prix d’un précalcul, la
complexité est . . . ». Ce précalcul revient pour nous à trouver un ensemble questeur.
L’autre complexité, dite probabiliste, revient à dire « Si on choisit un ensemble
questeur au hasard... ».

3. Quelques algorithmes utilisant des SLP


Dans l’article [3], il est décrit un premier algorithme de mise en position de
Noether polynomial en dn . Cet algorithme permet, entre autre, de calculer la di-
mension d’une variété. Comme suggéré plus haut, la complexité est non uniforme
pour les mêmes raisons d’ensemble questeur.
Une première implémentation est faite dans [2]. Finalement une implémentation
plus générale, connue sous le nom d’algorithme de résolution géométrique, se trouve
dans [4]. En utilisant la mise en position de Noether, cet algorithme permet de
résoudre des systèmes d’équations polynomiales sans calculer de bases standard.

Bibliographie
[1] Bürgisser (Peter), Clausen (Michael), and Shokrollahi (M. Amin). – Algebraic complexity
theory. – Springer-Verlag, Berlin, , Grundlehren Math. Wiss., vol. 315, xxiv+618p.
[2] Giusti (Marc), Hägele (Klemens), Lecerf (Grégoire), Marchand (Joël), and Salvy (Bruno). –
The projective Noether Maple package : computing the dimension of a projective variety. J.
Symbolic Comput., vol. 30, n‌3, , pp. 291–307.
[3] Giusti (Marc) and Heintz (Joos). – La détermination des points isolés et de la dimension d’une
variété algébrique peut se faire en temps polynomial. In Computational algebraic geometry
and commutative algebra (Cortona, 1991), pp. 216–256. – Cambridge Univ. Press, Cambridge,
.
[4] Giusti (Marc), Lecerf (Grégoire), and Salvy (Bruno). – A Gröbner free alternative for polyno-
mial system solving. J. Complexity, vol. 17, n‌1, , pp. 154–211.
[5] Heintz (J.) and Schnorr (C.-P.). – Testing polynomials which are easy to compute. In Logic
and algorithmic (Zurich, 1980), pp. 237–254. – Univ. Genève, Geneva, .
[6] Risler (Jean-Jacques) and Ronga (Felice). – Testing polynomials. J. Symbolic Comput., vol. 10,
‌ , , pp. 1–5.
n1
CHAPITRE 22

Résolution géométrique

239
Troisième partie

Sommation et intégration de suites


et fonctions spéciales
CHAPITRE 23

Résolution d’équations différentielles linéaires

Résumé
Les solutions polynomiales ou rationnelles d’équations différentielles li-
néaires s’obtiennent en utilisant des développements en série et la struc-
ture des ensembles de séries solutions.

L’objectif de ce cours est de décrire des algorithmes permettant de calculer les


solutions rationnelles d’une équation de la forme
Xn
(1) Ly(x) = ak (x)y (k) (x) = 0,
k=0
où les coefficients ak , k = 0, . . . , n sont des polynômes à coefficients dans un corps K.
De manière équivalente (voir §1), ces algorithmes permettront de résoudre le sys-
tème
(2) Y 0 (x) = A(x)Y (x),
où A(x) est une matrice de fractions rationnelles de K(x) et Y un vecteur.
Ces algorithmes seront utilisés dans un cours ultérieur pour le calcul d’intégrales
définies.

1. Système et équation
L’équivalence entre équation linéaire d’ordre n et système linéaire d’ordre 1 sur
des vecteurs de taille n est classique. Nous détaillons les calculs en jeu.
L’équation (1) est transformée en une équation de la forme (2), en posant
Y = (y0 , . . . , yn−1 ) où yi = y (i) pour i = 0, . . . , n − 1. La matrice A est alors une
matrice compagnon
 
0 1 0 ... 0
 .. .. .. .. 
 . . 1 . . 
 
(3) A= .. . .. . .. .
 . 0 
 
 0 ... ... 0 1 
− aan0 . . . . . . . . . − an−1 an

À l’inverse, pour toute matrice A intervenant dans un système de type (2),


une équation différentielle de type (1) peut être obtenue pour n’importe quelle
combinaison linéaire à coefficients dans K des coordonnées d’une solution. En effet,
les dérivées de Y s’obtiennent par
Y 0 = AY, Y 00 = A0 Y + AY 0 = (A0 + A2 )Y, . . .
et la dérivée d’ordre k s’écrit donc Y (k) = Ak Y où Ak est une matrice de fractions
rationnelles. Une combinaison linéaire des coordonnées d’une solution s’écrit comme
le produit y = KY où K est une matrice (ligne) à coefficients dans K. Les n + 1
vecteurs K, KA, . . . , KAn sont nécessairement liés sur K(x). Si
a0 (x)K + · · · + an (x)KAn = 0
243
244 23. RÉSOLUTION D’ÉQUATIONS DIFFÉRENTIELLES LINÉAIRES

est une relation de liaison, alors multiplier par Y à droite fournit une équation de
la forme (1) pour y = KY .
Exercice 1. Trouver une équation différentielle linéaire satisfaite par y1 solu-
tion de
y10 = xy1 − y2 , y20 = y1 − xy2 .

2. Solutions séries et singularités


Avant de rechercher le développement en série de solutions de l’équation (1) ou
du système (2), il est utile de localiser les singularités. Le point de départ est une
version du théorème de Cauchy sur les équations différentielles :
Théorème 1. Si A(x) est une fonction de C dans Cn×n analytique dans une
région simplement connexe R du plan complexe, alors l’équation
Y 0 (x) = A(x)Y (x)
possède une unique solution telle que Y (α) = U pour tout α ∈ R et U ∈ Cn . Cette
solution est analytique dans R.
L’application de ce résultat à l’équation (2) montre qu’en tout point où A est
analytique (développable en série entière), il existe une base de solutions séries en-
tières convergentes. Au vu de la matrice compagnon (3), il en va de même pour les
solutions de l’équation (1) en tout point où le coefficient de tête an est non-nul. A
contrario, les seuls points où les solutions peuvent ne pas admettre de développe-
ment en série sont les racines de an .
Definition 1. On dit que α ∈ C est un point ordinaire de l’équation (1)
si an (α) 6= 0. On dit qu’il est singulier dans le cas contraire.
Exemple 1. La fraction rationnelle y = 1/(1 − x) est solution de l’équation
(1 − x)y 0 (x) − y(x) = 0.
Le complexe 1 est singularité de la solution et donc nécessairement point singulier
de l’équation, ce qui s’y traduit par l’annulation du coefficient de tête.
Exemple 2. Le polynôme x10 est solution de l’équation
10xy 0 (x) − y(x) = 0.
La solution n’a pas de point singulier à distance finie, mais le complexe 0 est point
singulier de l’équation ; le théorème de Cauchy ne s’y applique pas.
Une autre conséquence utile de ce théorème est que les fonctions D-finies ne
peuvent avoir qu’un nombre fini de singularités (les racines du coefficient de tête).
Il s’en déduit des résultats négatifs.
Exemple 3. La fonction 1/ sin x ne satisfait pas d’équation différentielle li-
néaire à coefficients polynomiaux.
Exemple 4. La suite des nombres de Bernoulli, qui interviennent en particulier
dans la formule d’Euler-Maclaurin, ne peut être solution d’une récurrence linéaire
à coefficients polynomiaux, puisque la série génératrice exponentielle

X zn z
Bn =
n=0
n! exp(z) − 1

a une infinité de pôles (aux 2ikπ, k ∈ Z? ).


3. SOLUTIONS POLYNOMIALES 245

Le théorème ci-dessus entraîne aussi la possibilité de développer les solutions


en série. Soit
λ := min(val(ak ) − k), µ := max(deg(ak ) − k),
k k

où val(p(x)) désigne le plus grand entier m tel que xm divise p(x), que l’on appelle
la valuation de p. Alors les coefficients de l’équation (1) se récrivent
µ
X
ak (x) = ak,i xi+k .
i=λ

Ceci permet de définir les polynômes


n
X
ui (t) = ak,i t(t − 1) · · · (t − k + 1),
k=0
P∞
de sorte que si y = i=−K yi xi (K ∈ Z) est une série de Laurent solution de (1),
ses coefficients satisfont la récurrence
(4) uλ (i − λ)yi−λ + · · · + uµ (i − µ)yi−µ = 0
pour tout i ∈ Z (les yi d’indice inférieur à −K sont supposés nuls).
Definition 2. Le polynôme uλ s’appelle polynôme indiciel de l’équation (1) à
l’origine ; le polynôme uµ est son polynôme indiciel à l’infini.
En changeant la variable x en x + α dans l’équation, le même calcul fournit
deux polynômes. C’est un exercice de montrer que le polynôme indiciel à l’infini est
inchangé. L’autre s’appelle le polynôme indiciel en α.
Proposition 1. Si 0 est un point ordinaire pour l’équation (1), alors pour
tout U = (u0 , . . . , un−1 ) ∈ Cn , les coefficients du développement en série de la
solution y de (1) telle que y (k) (0) = uk , k = 0, . . . , n − 1 sont donnés par la
récurrence linéaire (4).
Démonstration. Il suffit de prouver que le coefficient de tête de la récurrence,
à savoir uλ (i − λ), ne s’annule pas pour i − λ = n, n + 1, . . . , ce qui permet alors
le calcul de yi+λ à partir des précédents. En effet, lorsque l’origine est ordinaire,
le coefficient an est tel que an (0) 6= 0 et donc val(an ) − n = −n est minimal.
Donc λ = n et uλ (x) = an (0)x(x − 1) · · · (x − n + 1), ce qui permet de conclure. 
En effectuant le changement de variable x 7→ x + α, le même raisonnement
s’applique à tout point α ordinaire.

3. Solutions polynomiales
S’il existe une solution polynomiale de degré N , l’équation (4) avec i − µ = N
montre que uµ (N ) = 0. Ceci fournit un procédé pour trouver les degrés possibles
des solutions polynomiales.
Supposons d’abord que l’origine est un point ordinaire de l’équation. Alors une
solution polynomiale est une solution dont le développement en série n’a que des
coefficients nuls à partir du degré N . D’après la récurrence (4), il suffit que les
coefficients des degrés N + 1 à N + µ − λ le soient. L’idée est alors de constater
que cette observation se ramène à un calcul d’algèbre linéaire. Voici le détail de
l’algorithme :
1. Calculer la récurrence (4) ;
2. Calculer la plus grande racine entière positive N de uµ . Si N n’existe pas,
il n’existe pas de solution polynomiale non-nulle ;
246 23. RÉSOLUTION D’ÉQUATIONS DIFFÉRENTIELLES LINÉAIRES

3. Pour 0 ≤ i ≤ n − 1, utiliser la récurrence pour calculer une série solution


N +µ−λ
X
yi = xi + yi,j xj + O(xN +µ−λ+1 );
j=n

4. Former la matrice M = [yi,j ], 0 ≤ i < n, N + 1 ≤ j ≤ N + µ − λ ;


5. Calculer une base B du noyau de la transposée M t ;
6. L’ensemble des c0 y0 + · · · + cn−1 yn−1 pour (c0 , . . . , cn−1 ) dans B forme une
base de l’espace des solutions polynomiales.
Si l’origine n’est pas un point ordinaire de l’équation, il n’est pas garanti que
la récurrence (4) permette de calculer les séries solutions. Deux approches sont
alors possibles : soit on étend les calculs précédents pour s’adapter au cas singulier,
soit, plus simplement, on trouve un point ordinaire (il y en a au moins un parmi
0, 1, . . . , deg(an )) et on effectue les calculs en ce point.
Exercice 2. Imaginez un algorithme qui teste si une équation différentielle
à coefficients
√ dans Z[X] admet une solution polynomiale de degré au plus N , en
O(M( N ) log(N )) opérations bits.

4. Solutions rationnelles
Les solutions rationnelles ne peuvent avoir de pôle (zéro de leur dénominateur)
qu’en une singularité de l’équation. De la même manière que pour les degrés des
solutions polynomiales, les multiplicités possibles des pôles sont données par les
racines entières négatives du polynôme indiciel en ces singularités. Ceci conduit
à un algorithme simple, essentiellement dû à Liouville, pour calculer les solutions
rationnelles de (1).
1. En toute racine α de an :
– calculer le polynôme indiciel pα (n) ;
– calculer la plus petite racine entière négative Nα de pα , s’il n’en
existe pas, faire Nα := 0 ;
2. Former le polynôme P = an (α)=0 (x − α)−Nα ;
Q

3. Effectuer le changement de fonction inconnue y = Y /P et réduire au même


dénominateur ;
4. Chercher une base B des solutions polynomiales de cette nouvelle équation.
Une base des solutions rationnelles est formée des fractions {b/P, b ∈ B}.
La preuve de l’algorithme se réduit à observer que P est un multiple du dénomina-
teur de toute solution rationnelle.
Cet algorithme permet également de trouver les solutions rationnelles du sys-
tème (2), en se ramenant à une équation. Il existe aussi d’autres algorithmes plus
directs.

Notes
Les idées de base de l’algorithme de recherche de solutions rationnelles sont
dues à Liouville [3] qui donne également une méthode par coefficients indéterminés
pour trouver les solutions polynomiales. La présentation qui utilise les récurrences
donne un algorithme de même complexité mais fait mieux ressortir la structure du
calcul [1].
La recherche de solutions d’équations différentielles linéaires ne s’arrête pas
aux solutions rationnelles. En utilisant la théorie de Galois différentielle, il existe
une algorithmique sophistiquée de recherche de solutions liouvilliennes (c’est-à-dire
formées par l’application répétée d’exponentielles, d’intégrales et de prise de racines
Bibliographie 247

de polynômes). Les calculs se ramènent à la recherche présentée ici de solutions


rationnelles pour des équations (les puissances symétriques) formées à partir de
l’équation de départ [4, 5, 6].

Bibliographie
[1] Abramov (Sergei A.), Bronstein (Manuel), and Petkovšek (Marko). – On polynomial solutions
of linear operator equations. In Levelt (A. H. M.) (editor), ISSAC’95. pp. 290–296. – ACM
Press, New York, .
[2] Ince (E. L.). – Ordinary differential equations. – Dover Publications, New York, ,
viii+558p. Reprint of the 1926 edition.
[3] Liouville (Joseph). – Second mémoire sur la détermination des intégrales dont la valeur est
algébrique. Journal de l’École polytechnique, vol. 14, , pp. 149–193.
[4] Marotte (F. M.). – Les équations différentielles linéaires et la théorie des groupes. – PhD
thesis, Faculté des Sciences de Paris, .
[5] Singer (Michael F.). – Liouvillian solutions of n-th order homogeneous linear differential equa-
tions. American Journal of Mathematics, vol. 103, n‌4, , pp. 661–682.
[6] Singer (Michael F.) and Ulmer (Felix). – Linear differential equations and products of linear
forms. Journal of Pure and Applied Algebra, vol. 117/118, , pp. 549–563.
CHAPITRE 24

Solutions rationnelles de récurrences et sommation


hypergéométrique indéfinie

Résumé
Un petit noyau d’algorithmes relativement simples permet de trouver les
solutions polynomiales et rationnelles de récurrences linéaires. Nous les
appliquons dans ce cours pour trouver les sommes indéfinies de suites
hypergéométriques. Au Chapitre 25, ils resserviront pour la recherche
de solutions hypergéométriques de récurrences linéaires et pour trouver
des sommes définies de suites hypergéométriques.

Le début du cours porte sur la résolution d’une relation de récurrence linéaire


en ses solutions polynomiales et rationnelles, c’est-à-dire en ses suites solutions
dont le terme général est donné par l’évaluation d’un polynôme, respectivement
d’une fraction rationnelle, en l’indice de la suite. La résolution dans ces classes
« élémentaires » est la base de toute une algorithmique sur les suites. Dans la
suite du cours, l’algorithme de Gosper pour la sommation indéfinie — un analogue
discret de la primitive — se ramène à des résolutions en solutions rationnelles. Deux
exemples sont donnés par les sommes suivantes :
n
X k−1 k 2n+1
2 = − 2,
k(k + 1) n+1
k=1
n
X (3k)! (81n2 + 261n + 200)(3n + 2)! 9
k
= − ,
k! (k + 1)! (k + 2)! 27 40(n + 2)! (n + 1)! n! 27n 2
k=0

La résolution en solutions rationnelles permet d’autres applications, telles la résolu-


tion de récurrences dans des classes de solutions plus complexes (sommes emboîtées,
quotients de sommes, au Chapitre 25), ou encore la désingularisation et la factori-
sation d’une récurrence.
Les questions de complexité ne sont pas abordées ici. Le corps K qui est utilisé
dans certains énoncés a toujours caractéristique nulle, et on peut penser que K est le
corps Q sans que cela limite la portée des idées. Le terme « constante » est employé
pour désigner un élément du corps K : une constante est alors indépendante de
l’indice de sommation.
Pour fixer la notation, la récurrence dont on cherche les solutions est
Xm
(1) (L · u)(n) = ak (n)u(n + k),
k=0
où les ak (n) sont des polynômes de K[n] ; on note d le maximum des degrés des ak
pour k = 0, . . . , m.

1. Solutions polynomiales
Il s’agit ici de trouver les polynômes P (n) tels que (L · P )(n) = 0. Une première
observation simple est que, en notant K[n]` pour l’espace vectoriel des polynômes
249
24.
250SOLUTIONS RATIONNELLES DE RÉCURRENCES ET SOMMATION HYPERGÉOMÉTRIQUE INDÉFINIE

de degrés au plus `, L est une application linéaire de K[n]D dans K[n]D+d , pour
tout D ∈ N. Les noyaux des restrictions de L à K[n]D pour D = 0, 1, . . . forment
une suite croissante d’espaces vectoriels stationnaire à partir d’un certain indice D0 .
L’algorithme consiste donc à trouver une borne sur cet indice (c’est-à-dire sur le
degré maximal des polynômes solutions) et à calculer une base de l’espace corres-
pondant.
Exemple 1. La récurrence
(L · u)(n) = nu(n + 1) − (n + 100)u(n) = 0
a pour solution le polynôme u(n) = n(n + 1) · · · (n + 99) de degré 100. Le degré des
solutions n’est donc pas borné par l’ordre ou le degré des coefficients, mais dépend
bien des valeurs de ces coefficients.
Il est facile de voir que l’ensemble des solutions polynomiales de cette récurrence
est exactement l’ensemble des multiples de u par une constante. L’application de
l’opérateur L sur un monôme nd donne
L · nd = (d − 100)nd + · · · ,
où les points de suspension correspondent à des termes de degré au plus d − 1. Par
linéarité, un polynôme f de degré d autre que 100 est tel que Lf a aussi degré d.
Il s’ensuit que les solutions polynomiales ne peuvent avoir que degré 100, d’où le
résultat annoncé.
Cet exemple se généralise. Pour y voir plus clair, il est plus commode de récrire
les décalages u(n + k) de la suite initiale en terme de différences finies. Ainsi, on
note (∆ · u)(n) = u(n + 1) − u(n) et, par récurrence, (∆k+1 · u)(n) = (∆k · u)(n +
1) − (∆k · u)(n). La récurrence à annuler prend la forme
m
X
L·u= bk (n)∆k u = 0
k=0

pour de nouveaux polynômes bk . L’opérateur ∆ fait décroître de 1 exactement le


degré des polynômes. Ainsi,
deg(∆k P ) ≤ max(deg P − k, 0),
avec égalité tant que ∆k P n’est pas nul, et donc deg(L·P ) ≤ deg P +maxk {deg(bk )−
k}. Soient alors les quantités
b := max{deg(bk ) − k}, E := { k | deg(bk ) − k = b },
k
qui vont servir à fournir une borne sur le degré des solutions.
Exemple 2. La récurrence de l’exemple précédent se récrit
(n∆ − 100)(un ) = 0 ;
l’entier b vaut 0 et l’ensemble E est {0, 1}.
Soit D le degré d’une solution. La discussion distingue deux cas :
– soit D + b < 0, et alors −(b + 1) est une borne sur D ;
– sinon le coefficient de degré D + b dans L(nD + · · · ) vaut
X
lc(bk )D(D − 1) · · · (D − k + 1),
k∈E

où lc désigne le coefficient de tête (leading coefficient). Cette expression, vue


comme un polynôme en D, s’appelle le polynôme indiciel de la récurrence,
lequel est non nul.
Cette discussion mène au résultat suivant.
2. SOLUTIONS RATIONNELLES : ALGORITHME D’ABRAMOV 251

Proposition 1. Une borne sur le degré des solutions polynomiales de l’opéra-


bk (n)∆k est donnée par le maximum de −(b + 1) et de la plus grande
P
teur L =
racine entière positive du polynôme indiciel de L.
Un algorithme simple consiste alors à calculer cette borne et à rechercher ensuite
les solutions par un calcul d’algèbre linéaire.
Exercice 1. Trouver les solutions polynomiales de la récurrence
3u(n + 2) − nu(n + 1) + (n − 1)u(n) = 0.

2. Solutions rationnelles : Algorithme d’Abramov


Le problème est maintenant de trouver les fractions rationnelles u(n) =
P (n)/Q(n) solutions de l’équation (L · u)(n) = 0 (où on peut supposer P et Q
premiers entre eux). L’algorithme procède en deux temps : d’abord le calcul d’un
multiple de Q, ensuite un changement de fonction inconnue pour ramener la re-
cherche du numérateur à celle de solutions polynomiales d’une nouvelle équation
linéaire, problème qui vient d’être traité.
Pour trouver un multiple du dénominateur, on peut observer que les pôles de
u(n), u(n + 1), . . . , u(n + m) sont décalés les uns des autres. Si u n’a pas deux pôles
différant d’un entier, il ne peut donc y avoir de solution rationnelle que si Q vérifie
Q(n) | a0 (n), Q(n + 1) | a1 (n), . . . , Q(n + m) | am (n),
et donc dans ce cas un multiple du dénominateur est donné par

pgcd a0 (n), a1 (n − 1), . . . , am (n − m) .
En général cependant, il peut y avoir des racines de Q qui diffèrent d’un entier et
cet argument n’est plus valable. Cependant, si α et β sont deux racines de Q telles
que α − β = k ∈ N est maximal, alors nécessairement a0 (α) = 0 et am (β − m) = 0.
La plus grande différence entière H entre les racines de Q peut donc être bornée
étant donnés a0 et am .
Soit ensuite
M (n) = ppcm(Q(n + 1), . . . , Q(n + m)).
La récurrence multipliée par M (n) s’écrit
M (n) M (n)
a0 (n)P (n) + · · · + am (n)P (n + m) = 0.
Q(n) Q(n + m)
Dans cette récurrence, tous les coefficients M (n)/Q(n + k), k = 1, . . . , m sont des
polynômes. Par conséquent Q divise a0 M , ce qui se récrit
Q(n) | a0 (n) ppcm(Q(n + 1), . . . , Q(n + m)).
En décalant n et en reportant, il vient
Q(n) | a0 (n) ppcm(a0 (n + 1) ppcm(Q(n + 2), . . . , Q(n + m + 1)), Q(n + 2), . . . , Q(n + m))
| a0 (n)a0 (n + 1) ppcm(Q(n + 2), . . . , Q(n + m + 1))
| a0 (n) · · · a0 (n + j) ppcm(Q(n + j + 1), . . . , Q(n + j + m)).
Cependant, pour j > H, pgcd(Q(n), Q(n + j)) = 1 et donc nous avons obtenu
Q(n) | a0 (n) · · · a0 (n + H).
De la même manière, multiplier le polynôme
ppcm(Q(n), . . . , Q(n + m − 1))
par la récurrence permet de voir que
Q(n) | am (n − m) · · · am (n − m − H)
24.
252SOLUTIONS RATIONNELLES DE RÉCURRENCES ET SOMMATION HYPERGÉOMÉTRIQUE INDÉFINIE

et finalement
Q(n) | pgcd(a0 (n) · · · a0 (n + H), am (n − m) · · · am (n − m − H))
fournit un multiple de Q. Il est possible de calculer ce multiple efficacement en évi-
tant de calculer des produits de degré trop élevé, et c’est ce que réussit l’algorithme
ci-dessous.
Multiple du dénominateur
Entrée : la récurrence (L · u)(n) = 0, avec L donné par l’équa-
tion (1) ;
Sortie : un multiple du dénominateur des solutions rationnelles.
1. Calculer le polynôme

R(h) = Resn a0 (n + h), am (n − m) .
2. Si R n’a pas de racines dans N, alors renvoyer le po-
lynôme 1 ; sinon, soit h1 > h2 > · · · > hm ≥ 0 ses
racines entières positives. Initialiser Q à 1, A à a0 (n),
B à am (n − m) ;
3. Pour i = 1, . . . , m faire 
g(n) := pgcd A(n + hi ), B(n) ;
Q(n) := g(n)g(n − 1) · · · g(n − hi )Q(n) ;
A(n) := A(n)/g(n − hi ) ;
B(n) := B(n)/g(n).
4. Renvoyer Q.
Le polynôme dans l’étape (1) est un résultant particulier qui peut se calculer
efficacement comme une somme composée. Ce calcul est présenté dans le Chapitre 4
comme application du calcul rapide de l’exponentielle des séries.
Il est possible de raffiner un peu cet algorithme pour obtenir des multiples de
degré plus petit que le dénominateur ; c’est ce que fait Abramov dans [2] et aussi
dans certains cas en tenant compte de tous les ai dans [1]. Une manière plus directe
d’aboutir à ces raffinements à été donnée par van Hoeij [5].
Exercice 2. Trouver les solutions rationnelles des récurrences suivantes :
(n + 1)un+1 − nun = 0,
(n + 1)(n + 3)un+2 − 2(n + 2)nun+1 + (n − 1)(n + 1) = 0,
(n + 3)(n + 2)(n2 + 6n + 4)u(n + 2) − (n + 1)(3n3 + 27n2 + 64n + 48)u(n + 1)
+ 2n2 (n2 + 8n + 11)u(n) = 0.

3. Équations inhomogènes
Les algorithmes de sommation que nous étudierons au Chapitres 25 et 28 font
apparaître dans des étapes intermédiaires des équations inhomogènes qu’il faut aussi
savoir résoudre.

3.1. Solutions polynomiales. L’opérateur L étant un endomorphisme li-


néaire de K[n], l’équation inhomogène (L · u)(n) = Q(n) ne peut avoir de solutions
polynomiales que si Q est un polynôme. La discussion de la Section 1 montre qu’une
borne sur le degré de ces solutions est donnée par le maximum de deg(Q) − b et de
la borne obtenue pour la partie homogène. Le reste du calcul se réduit à nouveau à
de l’algèbre linéaire en dimension finie. Une autre manière d’aboutir à cette borne
consiste à appliquer ∆deg Q+1 aux deux membres de l’équation inhomogène pour la
rendre homogène et appliquer le calcul précédent.
4. SOMMATION HYPERGÉOMÉTRIQUE INDÉFINIE. ALGORITHME DE GOSPER 253

Exercice 3. Montrer que pour α = 0 la récurrence


3u(n + 2) − nu(n + 1) + (n − 1)u(n) = −2(n − α)3
n’a pas de solution, alors que pour α = 5, elle en a.
3.2. Solutions rationnelles. Comme pour les solutions polynomiales,
l’image d’une fraction rationnelle par L étant une fraction rationnelle, il ne peut y
avoir solution rationnelle de l’équation inhomogène que si le membre droit est ra-
tionnel. Dans ce cas, réduire l’équation au même dénominateur mène à une équation
pour laquelle un multiple du dénominateur des solutions rationnelles est obtenu en
considérant la partie homogène. Après changement de fonction inconnue, le calcul
se ramène à la recherche de solutions polynomiales d’une équation inhomogène.
3.3. L’ordre 1. Lorsque la récurrence est d’ordre 1, il est en outre possible
de prédire un facteur du numérateur, ce qui gagne en efficacité pratique. En effet,
dans la récurrence
a(n)u(n + 1) + b(n)u(n) = c(n),
si b et c ont une racine commune qui n’est ni un pôle de u ni une racine de a, alors
celle-ci est nécessairement racine de u(n + 1). De même, si a et c ont une racine
commune qui n’est ni un pôle de u(n + 1) ni une racine de b, alors elle est racine
de u.
Ces calculs préalables permettent de réduire le degré des coefficients de l’équa-
tion dont on recherche ensuite les solutions polynomiales.
3.4. Équation inhomogène paramétrée. Des polynômes Qi étant donnés,
le problème est ici de trouver s’il existe des constantes λ1 , . . . , λk ∈ K telles que
(L · u)(n) = λ1 Q1 (n) + · · · + λk Qk (n)
admette des solutions polynomiales ou rationnelles.
Pour les solutions polynomiales, la borne sur le degré de u(n) donnée ci-dessus
ne dépend pas des λi . Il ne reste qu’à observer que les équations qu’il faut ensuite
résoudre sont linéaires non seulement en les coefficients du polynôme, mais aussi en
les λi . Une fois encore, le problème est ainsi réduit à un calcul d’algèbre linéaire.
Exercice 4. Résoudre en (u, λ, µ) la récurrence
3u(n + 2) − nu(n + 1) + (n − 1)u(n) = λn3 + µn2 .
Pour les solutions rationnelles, le même argument que ci-dessus mène à une
conclusion similaire : un multiple du dénominateur s’obtient par les méthodes du
cas homogène, et le changement de fonction inconnue ramène à la recherche de
polynômes solutions.

4. Sommation hypergéométrique indéfinie. Algorithme de Gosper


La recherche de formes closes pour la sommation est souvent naturellement
posée en terme de suites hypergéométriques. Après quelques définitions et propriétés
de ces suites, nous abordons leur sommation.
4.1. Suites hypergéométriques.
Definition 1. On appelle suite hypergéométrique une suite P-récursive véri-
fiant au moins asymptotiquement une récurrence linéaire d’ordre 1.
Une telle récurrence, de la forme
P (n)
(2) un+1 = un ,
Q(n)
24.
254SOLUTIONS RATIONNELLES DE RÉCURRENCES ET SOMMATION HYPERGÉOMÉTRIQUE INDÉFINIE

où P et Q sont des polynômes, admet une solution explicite à l’aide de la fonction Γ.


Cette fonction est classiquement définie pour <(z) > 0 par l’intégrale d’Euler
Z +∞
Γ(z) = tz−1 e−t dt.
0
Une intégration par parties aboutit à l’équation fonctionnelle
Γ(z + 1) = zΓ(z).
Une première conséquence de cette équation est de fournir un prolongement méro-
morphe de Γ à C \ Z− . Grâce à la valeur facile à calculer Γ(1) = 1, cette équation
montre aussi que pour tout entier positif n, Γ(n + 1) = n!. Enfin, l’équation fonc-
tionnelle permet de résoudre la récurrence (2) sous la forme
 n Y
lc(P ) Γ(n − α) Y Γ(−β)
un = u0 ,
lc(Q) Γ(−α) Γ(n − β)
P (α)=0 Q(β)=0

où lc(p) désigne le coefficient de tête du polynôme p.


Cette formule est valable tant qu’elle ne requiert pas d’évaluer Γ en des entiers
négatifs ou nuls, c’est-à-dire tant que α 6∈ N et β 6∈ N. Elle continue d’être valable
lorsque α ∈ N à condition d’interpréter le premier quotient impliquant Γ comme
une limite : d’après l’équation fonctionnelle, pour k et n deux entiers positifs ou
nuls,
(
Γ(n − s) 0, si n > k ;
lim = n k!
s→k Γ(−s) (−1) (k−n)! , si n ≤ k.
Cette limite correspond bien à ce qui est attendu : si k ∈ N est une racine de P ,
alors uk+1 = 0 et par suite un = 0 pour n > k.
Lorsque β ∈ N, la même limite peut être utilisée tant que n ≤ β, et la suite
cesse d’être définie pour n > β.
Les suites hypergéométriques jouent un rôle important en analyse classique,
où elles apparaissent comme coefficients de Taylor des séries introduites par la
définition suivante.
Definition 2. On appelle série hypergéométrique généralisée et on note
 
a1 , . . . , ap
F
p q x
b1 , . . . , b q
la série
X (a1 )n · · · (ap )n xn
,
(b1 )n · · · (bq )n n!
n≥0

où la notation (a)n représente le produit a(a − 1) · · · (a − n + 1).


Des cas particuliers de séries qui s’expriment à l’aide de séries hypergéomé-
triques généralisées sont les séries exp(x), log(1 + x), les dilogarithmes et polyloga-
rithmes, les fonctions Jν de Bessel, les fonctions d’Airy, etc. Ainsi :
 

exp(x) = 0 F0 x ,

 x ν  
1 –
Jν (x) = F
0 1 x ,
2 Γ(ν + 1) ν+1
√ √
x 6 3Γ(2/3) – x3 – x3
3
   
3
Ai(x) = − 0 F1 + 0 F1 .
2π 4/3 9 3Γ(2/3) 2/3 9
Exercice 5. Récrire l’identité de Dixon en terme de valeur d’une 3 F2 en 1.
4. SOMMATION HYPERGÉOMÉTRIQUE INDÉFINIE. ALGORITHME DE GOSPER 255

4.2. Algorithme de Gosper. Étant donnée une suite hypergéométri-


que u(n), le problème de sommation indéfinie hypergéométrique de u(n) consiste à
déterminer s’il existe une autre suite hypergéométrique U (n) telle que U (n + 1) −
U (n) = u(n), et si oui, la calculer.
Une observation simple est formulée dans le lemme suivant.
Lemme 1. Si U (n) est une suite hypergéométrique et L un opérateur de récur-
rence linéaire à coefficients polynomiaux, alors il existe une fraction rationnelle r(n)
telle que LU (n) = r(n)U (n).
Démonstration. La fonction r(n) n’est autre que le reste de la division eu-
clidienne non commutative de L par le polynôme unitaire de degré 1 donnant la
récurrence qui annule U (n). Plus explicitement, si U (n) est hypergéométrique, par
définition, il existe une fraction rationnelle R(n) telle que U (n + 1) = R(n)U (n) et
donc par récurrence U (n + k) = R(n + k − 1) · · · R(n)U (n) pour tout k. Le résultat
s’en déduit en additionnant les contributions. 

Ce lemme entraîne qu’une somme hypergéométrique U (n) de u(n) doit être le


produit de u(n) par une fraction rationnelle R(n). Diviser la récurrence U (n + 1) −
U (n) = u(n) par u(n) réduit alors le calcul à celui de la recherche de solutions
rationnelles de l’équation inhomogène
u(n + 1)
(3) R(n + 1) − R(n) = 1,
u(n)
d’ordre 1, problème traité dans la section précédente, particulièrement en 3.3. L’al-
gorithme ainsi obtenu est connu sous le nom d’algorithme de Gosper [4].
Exercice 6. Calculer une somme indéfinie de 2k (k − 1)/k/(k + 1).
Exemple 3. L’algorithme de Gosper permet également de donner des réponses
négatives. Voici
Pn en détail comment il permet de prouver par l’absurde que la suite
des S(n) := k=1 1/k! n’est pas hypergéométrique.
Supposons que S(n) est hypergéométrique. Alors, elle doit être le produit
de 1/n! par une fraction rationnelle r(n). Cette fraction est donc solution de la
récurrence
1 r(n + 1) r(n)
S(n + 1) − S(n) = = − .
(n + 1)! (n + 1)! n!
En chassant les dénominateurs, il reste
r(n + 1) − (n + 1)r(n) = 1.
Le résultat de l’algorithme « Multiple du dénominateur » d’Abramov montre que
r doit être un polynôme : les pôles de plus petite partie réelle de r doivent être des
zéros du pgcd, trivial, de 1 et n+1. Enfin, r ne peut pas non plus être un polynôme :
son terme de plus haut degré ne disparaît pas par évaluation de la récurrence.
4.3. Sommation paramétrée. Soient des suites u1 (n), . . . , uk (n) hypergéo-
métriques et deux à deux similaires, au sens où tous les rapports ui (n)/uj (n) sont
rationnels. Il s’agit de déterminer, si elles existent, une suite hypergéométrique S(n)
et des constantes λ1 , . . . , λk telles que
S(n + 1) − S(n) = λ1 u1 (n) + · · · + λk uk (n).
Comme toutes les ui sont similaires à une même suite u(n), le membre droit de (3)
peut être remplacé par une combinaison linéaire des λi à coefficients des fractions
rationnelles et la méthode de la Section 3.4 s’applique.
24.
256SOLUTIONS RATIONNELLES DE RÉCURRENCES ET SOMMATION HYPERGÉOMÉTRIQUE INDÉFINIE

Notes
L’algorithme originel de Gosper [4] a été introduit avant les travaux d’Abramov.
Sa présentation initiale passe directement par l’équation de l’algorithme d’Abramov
dont on recherche les solutions polynomiales, et tient compte de l’optimisation de
la Section 3.3.

Bibliographie
[1] Abramov (S. A.). – Rational solutions of linear differential and difference equations with po-
lynomial coefficients. USSR Computational Mathematics and Mathematical Physics, vol. 29,
n‌11, , pp. 1611–1620.
[2] Abramov (S. A.). – Rational solutions of linear difference and q-difference equations with
polynomial coefficients. In Levelt (A. H. M.) (editor), ISSAC’95. pp. 285–289. – ACM Press,
New York, .
[3] Chen (William Y. C.), Paule (Peter), and Saad (Husam L.). – Converging to Gosper’s Algo-
rithm. – Technical Report n‌0711.3386, arXiv, .
[4] Gosper (R. William). – Decision procedure for indefinite hypergeometric summation. Procee-
dings of the National Academy of Sciences USA, vol. 75, n‌1, January , pp. 40–42.
[5] van Hoeij (Mark). – Rational solutions of linear difference equations. In Proceedings of the 1998
International Symposium on Symbolic and Algebraic Computation (Rostock). pp. 120–123. –
ACM, New York, .
CHAPITRE 25

Solutions hypergéométriques de récurrences et


sommation hypergéométrique définie

Résumé
Le Chapitre 24 a indiqué comment un petit noyau d’algorithmes relative-
ment simples permet de trouver les solutions polynomiales et rationnelles
de récurrences linéaires, et les a appliqués à la recherche de sommes in-
définies de suites hypergéométriques. Nous adaptons et appliquons ici
tout cet ensemble d’algorithmes à la recherche de solutions hypergéomé-
triques de récurrences linéaires et pour trouver des sommes définies de
suites hypergéométriques. La suite du cours prolongera les méthodes du
présent chapitre aux questions de sommation et d’intégration de suites
et fonctions spéciales plus générales, solutions de systèmes d’équations
différentielles et de récurrence d’ordre quelconque.

Voici deux exemples de sommes dont le traitement algorithmique est détaillé


dans ce cours ; pour la seconde, on adopte la convention que les binomiaux ab sont


nuls lorsque b < 0 ou b > a :


  X ∞
a, b (a)k (b)k Γ(c − a − b)Γ(c)
2 F1 1 = = ,
c (c)k k! Γ(c − a)Γ(c − b)
k=0
   
k a+b a+c b+c (a + b + c)!
X
(−1) = .
a+k c+k b+k a! b! c!
k∈Z

Pour ces deux sommes classiques — la première est due à Gauss, la seconde à
Dixon —, il n’existe pas de somme indéfinie hypergéométrique, mais ces sommes
définies — où toutes les valeurs possibles de l’indice de sommation sont parcourues
— peuvent néanmoins être calculées automatiquement.
Une chaîne complète d’algorithmes permettant de trouver les membres droits
des identités ci-dessus est détaillée.

1. Sommation hypergéométrique définie. Algorithme de Zeilberger


L’algorithme considéré dans cette section s’applique à des suites u dites hyper-
géométriques en deux variables, c’est-à-dire pour lesquelles
u(n + 1, k) u(n, k + 1)
et
u(n, k) u(n, k)
sont deux fractions rationnelles en n et k.
Le problème de sommation définie hypergéométrique est de déterminer si pour
une telle suite u,
X
U (n) = u(n, k)
k
vérifie une récurrence linéaire et si oui, la calculer. L’absence de bornes explicites
de sommation signifie que la somme porte en fait sur toutes les valeurs k ∈ Z, étant
entendu que, bien souvent, ces sommes ont en fait un support fini. Bien souvent
257
25.
258SOLUTIONS HYPERGÉOMÉTRIQUES DE RÉCURRENCES ET SOMMATION HYPERGÉOMÉTRIQUE DÉFINIE

aussi, l’intervalle de sommation s’arrête aux bornes naturelles de sommation, c’est-


à-dire aux indices où par construction la suite et toutes ses décalées par rapport à
l’autre indice, n, s’annulent.
Exemple 1. Des sommes simples sont
X n X n2 2n
= 2n et = .
k k n
k k
Dans ces deux exemples, pour k en dehors de {0, . . . , n}, les binomiaux sont nuls.
Ainsi, les bornes 0 et n sont naturelles.
Un cas très favorable pour obtenir des sommation explicite est lorsque U (n) est
elle-même hypergéométrique. Mais pour bien des applications, il est tout aussi utile
de trouver une récurrence linéaire à laquelle U (n) obéit. C’est ce que réalise l’al-
gorithme de Zeilberger, par une approche dite de télescopage créatif. Trouver si la
somme est hypergéométrique se ramène alors à la recherche de solutions hyper-
géométriques de récurrences linéaires, problème qui est traité par l’algorithme de
Petkovšek en Section 2.
1.1. Principe du télescopage créatif. On cherche un opérateur
(1) P (n, Sn ) − (Sk − 1)Q(n, k, Sn , Sk )
qui annule la suite u(n, k) à sommer (Sn et Sk désignent les opérateurs de décalage
en n et k, (Sn · u)(n, k) = u(n + 1, k) et (Sk · u)(n, k) = u(n, k + 1)). Une fois un
tel opérateur trouvé, la sommation sur k est aisée, et, sous l’hypothèse de bornes
naturelles, conduit à l’égalité
(2) P (n, Sn )U (n) = 0.
Exemple 2. En suivant ce modèle, voici une preuve compliquée que
X n
U (n) = = 2n .
k
k
Le point de départ est l’identité du triangle de Pascal
     
n+1 n n
= + ,
k+1 k+1 k
qui se transpose en l’opérateur annulateur
Sn Sk − Sk − 1.
Ce dernier se récrit
(Sk − 1)(Sn − 1) + (Sn − 2),
opérateur qui traduit la relation explicite
           
n+1 n+1 n n n+1 n
− − − + −2 = 0.
k+1 k k+1 k k k
En sommant sur k ∈ Z, les premiers termes se téléscopent deux à deux, et il reste
((Sn − 2) · U )(n) = U (n + 1) − 2U (n) = 0.
La fin de la preuve se ramène à vérifier la condition initiale S(0) = 1.
En l’absence de bornes naturelles, (2) s’écrit plutôt
(P · U )(n) = (Q · u)(n, b + 1) − (Q · u)(n, a).
Les clôtures du Chapitre 8 fournissent alors un opérateur P̃ (n, Sn ) qui annule le
membre droit de l’égalité ci-dessus. On obtient ainsi une équation homogène, sous
la forme
(P̃ P ) · U = 0.
2. SOLUTIONS HYPERGÉOMÉTRIQUES. ALGORITHME DE PETKOVŠEK 259

1.2. Algorithme de Zeilberger. Il reste à voir comment trouver les opéra-


teurs P et Q de l’équation (1) dans le cas général. L’idée de Zeilberger est que cette
équation,
 
P (n, Sn ) · u (n, k) = (Sk − 1)Q(n, k, Sn , Sk ) · u (n, k),
signifie que Q · u est une somme hypergéométrique indéfinie de P (n, Sn ) · u par
rapport à k. Comme u est supposée hypergéométrique, Q · u est en fait de la
forme q(n, k)u(n, k) pour une fraction rationnelle q : si P était connu, l’algorithme
de Gosper du Chapitre 24 saurait donner q.
La méthode donnée par Zeilberger procède alors incrémentalement sur le degré
de P en Sn . Pour m = 0, 1, . . . , il cherche s’il existe des λi (n) (les coefficients de
P ) tels que
λ0 (n)u(n, k) + λ1 (n)u(n + 1, k) + · · · + λm (n)u(n + m, k)
ait une somme hypergéométrique. L’algorithme pour cela est la variante paramétrée
de l’algorithme de Gosper présenté au Chapitre 24.

1.3. Terminaison. La méthode ne termine pas en général. Wilf et Zeilberger


ont été les premiers à délimiter une classe importante, celle des suites proprement
hypergéométriques sur lesquelles la terminaison et par conséquent le succès de la
méthode sont garantis. Ces suites sont de la forme
Q`
k i=1 (ai n + bi k + ci )!
u(n, k) = P (n, k)Z Qm ,
i=1 (ui n + vi k + di )!

où les ai , bi , ui et vi sont des entiers, ` et m sont des entiers positifs, P est un


polynôme et Z une constante.
Proposition 1. L’algorithme de Zeilberger termine si u est proprement hy-
pergéométrique.
Démonstration. L’idée de la preuve est de prouver un résultat légèrement
plus fort, à savoir l’existence d’un polynôme A(n, Sk , Sn ) qui ne dépend pas de
k et annule u. Une division euclidienne de A par Sk − 1 permet d’en déduire un
couple (P, Q) tel que l’opérateur (1) annule u et de plus Q ne dépend pas de k.
L’existence de A est obtenue en considérant les monômes en n, Sn , Sk par degré
total croissant et leur action sur u. L’application de ces monômes sur u produit un
multiple rationnel de u. Comme les coefficients ai , bi , ui et vi sont des entiers, le
nombre de nouveaux facteurs de ces fractions rationnelles finit par croître moins
vite que le nombre de monômes, et il s’ensuit l’existence d’une relation de liaison.
La partie technique de la preuve se concentre donc sur l’étude soigneuse des facteurs
de ces fractions rationnelles et de leur nombre. De plus, il convient de s’assurer que
le P obtenu est non nul. Pour cela, on montre qu’un tel P peut toujours être obtenu
non nul, moyennant au besoin une légère modification sur A. 

2. Solutions hypergéométriques. Algorithme de Petkovšek


Si (L · u)(n) = 0 avec u(n) hypergéométrique, il existe deux polynômes P et Q
vérifiant
P (n)
u(n + 1) = u(n),
Q(n)
et on peut prendre Q unitaire. Il s’ensuit que
P (n + ` − 1) P (n)
u(n + `) = ... u(n).
Q(n + ` − 1) Q(n)
25.
260SOLUTIONS HYPERGÉOMÉTRIQUES DE RÉCURRENCES ET SOMMATION HYPERGÉOMÉTRIQUE DÉFINIE

Pour une récurrence donnée par un opérateur L = am Snm + · · · + a0 une condition


nécessaire et suffisante d’existence de solution hypergéométrique s’écrit

(3) am (n)P (n + m − 1)P (n + m − 2) · · · P (n)


+ am−1 (n)Q(n + m − 1)P (n + m − 2) · · · P (n)
+ · · · + a0 (n)Q(n + m − 1) · · · Q(n) = 0.
On peut voir cette expression comme une renormalisation du reste de la division
euclidienne de L par Sn −P/Q, après  réduction au même dénominateur. Si on savait
prédire que pgcd P (n), Q(n + i) = 1 pour i = 0, . . . , m − 1, alors on en déduirait
facilement que P (n) divise a0 (n) et Q(n + m − 1) divise am (n). Ceci nous donnerait
un algorithme : toute paire de facteurs unitaires de a0 (n) et am (n−m+1) donnerait
un candidat pour Q(n) et un candidat pour P à une constante près, il suffirait alors
d’injecter ces candidats dans (3) et de chercher s’il existe une constante satisfaisant
à l’équation. En itérant sur les facteurs de a0 et am , le travail serait terminé.
En général, il se peut très bien que P (n) et Q(n+i) aient des facteurs communs.
La solution trouvée par Petkovšek consiste à recourir à une décomposition plus forte
de la fraction rationnelle. On cherche une solution telle que
u(n + 1) A(n) C(n + 1)
=Z ,
u(n) B(n) C(n)
où Z est une constante,
 A, B, C sont des polynômes
 unitaires, pgcd(A, C) = 1,
pgcd B(n), C(n+1) = 1 et pgcd A(n), B(n+i) = 1 pour tout i ∈ N. Cette décom-
position des fractions rationnelles est appelée décomposition de Gosper–Petkovšek.

Exercice 1. Montrer que toute fraction rationnelle peut se décomposer sous


la forme ci-dessus. Donner un algorithme calculant les polynômes A, B, C et la
constante Z correspondant à une fraction rationnelle donnée en entrée. (Indice :
s’inspirer de l’algorithme d’Abramov.)

Avec cette décomposition, l’équation (3) devient

(4) Z m am (n)A(n + m − 1) · · · A(n)C(n + m)+


Z m−1 am−1 (n)B(n + m − 1)A(n + m − 2) · · · A(n)C(n + m − 1)
+ · · · + a0 (n)B(n + m − 1) · · · B(n)C(n) = 0.
Les contraintes de la décomposition permettent de déduire immédiatement
A(n) | a0 (n), B(n + m − 1) | am (n).
L’algorithme de Petkovšek s’en déduit : pour chaque paire (A, B) de facteurs de
a0 et am , le coefficient de tête du polynôme au membre gauche de (4) donne une
équation polynomiale sur Z, une fois Z ainsi fixé, il reste à chercher les solutions
polynomiales C de l’équation, s’il en existe.

Exercice 2. Résoudre ainsi


(n − 1)u(n + 2) − (n2 + 3n − 2)u(n + 1) + 2n(n + 1)u(n) = 0,
u(n + 2) − (2n + 1)u(n + 1) + (n2 − 2)u(n) = 0.

Le cas inhomogène n’est pas traité en cours, mail il n’est pas difficile : le membre
droit doit être hypergéométrique et, outre les solutions hypergéométriques de la
partie homogène, la solution doit être le produit du membre droit par une fraction
rationnelle. Ceci ramène le problème à la recherche de solutions rationnelles.
Bibliographie 261

Notes
Le livre [3] est une bonne introduction aux questions abordées dans ce cours.
L’algorithme de Petkovšek possède une extension intéressante, par réduction de
l’ordre, à une plus grande classe de solutions, appelées solutions d’Alembertiennes.
Cette extension n’a pas été décrite dans le cours, elle l’est dans [2].
La proposition 1 ne donne qu’une condition suffisante pour l’existence d’un
P (n, Sn ) et conséquemment pour la terminaison de l’algorithme de Zeilberger. Il
existe des suites qui ne sont pas proprement hypergéométriques et pour lesquelles
la méthode fonctionne quand même. Cela a donné lieu à une série de travaux,
et le dernier mot revient à un travail récent d’Abramov [1] où il donne un test
algorithmique de terminaison de l’algorithme.
De nombreuses généralisations de l’algorithme de Zeilberger sont possibles :
par exemple la suite à sommer peut ne pas être hypergéométrique, tout en étant
P-récursive, ou il peut s’agir d’une suite de fonctions D-finies et l’on cherche une
équation différentielle satisfaite par la somme définie, etc. Ces questions seront
abordées dans un chapitre ultérieur du cours.

Bibliographie
[1] Abramov (S. A.). – When does Zeilberger’s algorithm succeed ? Advances in Applied Mathe-
matics, vol. 30, n‌3, , pp. 424–441.
[2] Abramov (Sergei A.) and Petkovšek (Marko). – D’alembertian solutions of linear differential
and difference equations. In Proceedings of the international symposium on Symbolic and
algebraic computation. pp. 169–174. – ACM Press, .
[3] Petkovšek (Marko), Wilf (Herbert S.), and Zeilberger (Doron). – A = B. – A. K. Peters,
Wellesley, MA, , xii+212p.
CHAPITRE 26

Équations fonctionnelles linéaires et polynômes


tordus

Résumé
Une certaine variété de polynômes non commutatifs fournit une repré-
sentation unifiée pour une large classe d’équations fonctionnelles linéai-
res. Celle-ci s’avère bien adaptée pour les calculs. Nous réinterprétons
nombre des algorithmes vus dans ce cours dans ce point de vue.

1. Des polynômes non commutatifs pour calculer avec des opérateurs


linéaires
Dans les années 1930, le mathématicien Oystein Ore (1899–1968) s’est intéressé
(j)
à la résolution de systèmes linéaires liant des dérivées fi (x), des décalées fi (x+j),
ou les substitutions fi (q j x) de fonctions inconnues fi (x). À cette fin, il a introduit de
nouvelles familles de polynômes en une variable ayant la propriété que cette variable
ne commute pas avec les coefficients des polynômes. Ce défaut de commutativité
reflète une sorte de loi de Leibniz.
Rappelons la relation de Leibniz pour deux fonctions quelconques f et g :
(f g)0 (x) = f 0 (x)g(x) + f (x)g 0 (x).
En notant D l’opérateur de dérivation, M celui qui à une fonction f associe la
fonction donnée par M (f )(x) = xf (x), id l’opérateur identité sur les fonctions,
et ◦ la composition d’opérateurs, la règle de Leibniz donne, pour f (x) = x et
g quelconque,
 
(D ◦ M )(g) = D M (g) = M D(g) + g = (M ◦ D + id)(g).
L’identité étant vérifiée par toute g, on obtient l’égalité D ◦ M = M ◦ D + id
entre opérateurs linéaires différentiels. D’autres opérateurs vérifient des analogues
de la règle de Leibniz : l’opérateur ∆ de différence finie, donné par ∆(f )(x) =
f (x + 1) − f (x) ; l’opérateur S = ∆ + id de décalage, donné par S(f )(x) = f (x + 1) ;
pour une constante q fixée autre que 0 et 1, l’opérateur H de dilatation, donné
par H(f )(x) = f (qx). On a les relations :

∆(f g)(x) = f (x + 1)∆(g)(x) + ∆(f )(x)g(x),


(f g)(x + 1) = f (x + 1)g(x + 1), (f g)(qx) = f (qx)g(qx),
qui mènent aux relations ∆ ◦ M = (M + id) ◦ ∆ + id, S ◦ M = (M + id) ◦ S,
H ◦ M = Q ◦ M ◦ H entre opérateurs linéaires, après avoir introduit un nouvel
opérateur Q donné par Q(f )(x) = qf (x).
Le point de vue d’Ore est d’abstraire ces différents contextes d’opérateurs dans
un même cadre algébrique.
Définition. Soit A un anneau commutatif unitaire de caractéristique zéro,
que nous supposons muni d’un endomorphisme injectif σ et d’une σ-dérivation δ,
263
264 26. ÉQUATIONS FONCTIONNELLES LINÉAIRES ET POLYNÔMES TORDUS

au sens où pour tout a et tout b de A,


σ(a + b) = σ(a) + σ(b), σ(ab) = σ(a)σ(b), δ(ab) = σ(a)δ(b) + δ(a)b.
Pour une nouvelle variable ∂, on appelle anneau de polynômes tordus l’algèbre
sur A engendrée par ∂ et les relations, pour tout a de A,
∂a = σ(a)∂ + δ(a).
On note cet anneau Ah∂; σ, δi.
La terminologie « polynôme tordu » est la traduction de l’anglais « skew po-
lynomial », où « skew » signifie « de biais », « oblique ». Certains auteurs ont
proposé la traduction « polynôme gauche », où « gauche » a le sens de « voilé »,
par opposition à « plan ». Mais nous voulons éviter ici toute confusion avec des
notions algébriques de multiple, module, fraction, etc, pour lesquelles « gauche »
a le sens opposé de « droite ». De plus, la littérature note généralement les an-
neaux de polynômes tordus avec des crochets, par A[∂; σ, δ], mais les chevrons nous
semblent mieux évoquer que l’anneau en question est une algèbre sur A donnée
par le générateur ∂ et des relations induites par σ et δ, et n’est en général pas
commutatif.
Une conséquence immédiate de la définition est que tout élément f d’un anneau
de polynômes tordus admet une récriture canonique de la forme
f = ar ∂ r + · · · + a0
pour des ai dans A, avec ar non nul sauf si la somme ne comprend aucun terme (et
alors f = 0). On montre que les ai et l’entier r ainsi définis (sauf pour f = 0) sont
uniques et que r a les propriétés d’un degré. En particulier, le degré d’un produit
est la somme des degrés de ses facteurs.
Des choix adéquats de σ et δ nous font retrouver les quelques exemples donnés
plus haut. Pour simplifier la notation, nous supposons que A peut s’identifier à un
bon espace de fonctions. On a alors, en notant 0 l’application qui a toute fonction
associe la fonction constante nulle :
– Q(x)h∂; id, Di représente l’algèbre des opérateurs différentiels linéaires ;
– Q(x)h∂; S, 0i représente l’algèbre des opérateurs de récurrence ;
– Q(x)h∂; S, ∆i représente l’algèbre des opérateurs de différence finie ;
– Q(x)h∂; H, 0i pour q ∈ Q \ {0, 1} représente l’algèbre des opérateurs de q-
dilatation ;
– Q(x)h∂; id, 0i n’est autre que l’anneau commutatif Q(x)[∂] des polynômes
usuels.
Toutes ces algèbres d’opérateurs sont à coefficients dans Q(x) ; on dispose aussi
d’analogues pour A = Q[x] et, pour A ne faisant pas intervenir S, pour A =
Q[x, x−1 ].
On fera attention à la notation. Si la composition entre opérateurs est notée
par ◦, nous ne ferons qu’une simple juxtaposition pour le produit de polynômes
tordus, et nous noterons 1 l’élément neutre pour le produit de polynômes tordus.
Néanmoins, on fera l’abus de notation de noter de la même façon, Dx , la dérivation
par rapport à x quel que soit l’anneau A, et id, sans indice, pour l’identité de
n’importe quel A. De plus, nous noterons simplement x pour M . Ainsi, on a :
– ∂x = x∂ + 1 dans Q(x)h∂; id, Di, car plus généralement, pour u ∈ Q(x),
∂u = σ(u)∂ + δ(u) = id(u)∂ + D(u) = u∂ + u0 ;
– ∂x = (x + 1)∂ dans Q(x)h∂; S, 0i, car plus généralement, pour u ∈ Q(x),
∂u = σ(u)∂ + δ(u) = S(u)∂ + 0(u) = u(x + 1)∂;
– ∂x = (x + 1)∂ + 1 dans Q(x)h∂; S, ∆i ;
2. CLÔTURES PAR MORPHISMES ENTRE ANNEAUX DE POLYNÔMES TORDUS 265

– ∂x = qx∂ dans Q(x)h∂; H, 0i ;


– ∂x = x∂ dans Q(x)h∂; id, 0i = Q(x)[∂].
Le cas δ = 0 est fréquent, et on écrit alors Ah∂; σi, sans référence au 0. De même
que dans le cas commutatif on définit les polynômes de Laurent, dont l’algèbre est
notée A[X, X −1 ], et dans laquelle XX −1 = X −1 X = 1, le cas où σ est inversible et
autre que l’identité permet de représenter des opérateurs qui possèdent un inverse.
Dans ce cas, on notera Ah∂, ∂ −1 ; σi l’algèbre où ∂a = σ(a)∂, ∂ −1 a = σ −1 (a)∂ −1 ,
∂∂ −1 = ∂ −1 ∂ = 1.
Pour finir de se détacher de la notation en termes d’opérateurs, on fait agir
les anneaux de polynômes tordus sur les espaces de fonctions, au sens de l’action
d’un anneau sur un module. Rappelons qu’un module M sur un anneau A est
un ensemble non vide, muni d’une loi + en faisant un groupe additif, stable sous
l’action d’une produit externe par les éléments de A, tel que l’action par produit
externe par 1 soit l’identité, et vérifiant les formules (P Q) · f = P · (Q · f ) et
(P + Q) · f = (P · f ) + (Q · f ). Un anneau de polynômes tordus n’a pas d’action
unique sur un espace de fonctions donné, aussi adoptons-nous quelques conventions.
Convention. Dans toute la suite du texte :
– un anneau de la forme Ah∂; σi agit par ∂ · f = σ(f ) pour une extension
convenable de σ,
– un anneau de la forme Ah∂; σ, δi agit par ∂ · f = δ(f ) pour une extension
convenable de δ,
– les coefficients dans A agissent par simple multiplication, a · f = af .
Remarquons que l’algèbre des suites AN ne peut pas être vue comme un module
sur l’algèbre Ah∂, ∂ −1 ; σi quand σ est le décalage avant. En effet, l’action de ∂ sur
la suite valant 1 en 0 et nulle ensuite donne la suite nulle : l’action de ∂ ne peut
donc pas être inversée. Ce problème technique peut être contourné en considérant
les classes de suites identifiées lorsqu’elles sont égales après un certain rang (qui
dépend des deux suites). (On parle de « germe de suite à l’infini ».) Mais on perd
alors la possibilité d’exprimer certaines suites, celles à support fini, justement.
À l’aide de ces notations génériques, nous allons maintenant réexprimer des
algorithmes déjà vus et petit à petit introduire de nouveaux calculs.

2. Clôtures par morphismes entre anneaux de polynômes tordus


Dans cette section, nous sommes amenés à considérer simultanément des fonc-
tions de x et des fonctions d’une autre variable. Aussi indiquerons-nous en indice
de D, S, ∂, σ, δ, etc, la variable à laquelle ces objets font référence. De plus, les
anneaux A qui servent à construire les anneaux de polynômes tordus sont de la
forme Q[x] ou Q[x, x−1 ].

2.1. Récurrence sur les coefficients extraits d’une série D-finie et


série Pgénératrice d’une suite P-récursive. On a déjà vu que lorsqu’une série
n
f = n≥0 un x est D-finie, ses coefficients vérifient une relation de récurrence
finie. Autrement dit, la suite u = (un )n≥0 est P-récursive. La preuve repose sur les
identités
X X
xf = un−1 xn = (∂n−1 · u)(n) xn
n≥1 n≥1

et
X X
Dx (f ) = f 0 = (n + 1)un+1 xn = (n + 1)∂n · u (n) xn ,


n≥0 n≥0
266 26. ÉQUATIONS FONCTIONNELLES LINÉAIRES ET POLYNÔMES TORDUS

où nous avons introduit l’anneau Q[n]h∂n , ∂n−1 ; Sn i. Par récurrence, ceci donne
X β 
xα Dxβ (f ) = ∂n−α (n + 1)∂n · u (n) xn
n≥α
X
(n + 1 − α) · · · (n + β − α)∂nβ−α · u (n) xn .

=
n≥α

Pour une série f solution de l’équation différentielle


ar (x)f (r) (x) + · · · + a0 (x)f (x) = 0
où les ai sont dans Q[x], nous obtenons ainsi une récurrence sur u, valable pour des n
assez grands. Cette récurrence s’exprime en termes de polynômes tordus de la façon
suivante. On représente l’opérateur différentiel associé à l’équation par le polynôme
tordu L = ar (x)∂xr + · · · + a0 (x) dans Q[x]h∂x ; id, Dx i sur Q. De la sorte, l’équation
différentielle s’écrit L · f = 0. On introduit aussi l’algèbre Q[n]h∂n , ∂n−1 ; Sn i et le
morphisme d’algèbres µ défini par µ(x) = ∂n−1 et µ(∂x ) = (n + 1)∂n . Alors, la
suite u des coefficients est solution pour n assez grand de la récurrence représentée
par l’image µ(L). Pour comprendre pour quels n cette récurrence est valide, écrivons
µ(L) = bp (n)∂np + · · · + bq (n)∂nq
pour p ≤ q et bp bq 6= 0, de sorte que la récurrence prend la forme

µ(L) · u (n) = bp (n)un+p + · · · + bq (n)un+q = 0
et est vérifiée pour tout n si p ≥ 0 et pour tout n ≥ −p si p < 0.
De façon duale, une suite P-récursive u a une série génératrice f = n≥0 un xn
P
D-finie, ce que nous allons retrouver en termes de polynômes tordus. Pour ce point,
nous supposons en fait que la suite u est prolongée aux indices négatifs par un = 0
pour n < 0, et qu’elle est P-récursive sur Z tout entier. Ceci ne constitue aucune
perte de généralité : une récurrence valable pour la suite initiale devient valable
pour la suite prolongée après multiplication par un polynôme de la forme (n +
1)(n + 2) . . . (n + r). Les formules
X X
nun xn = x∂x · f et un+1 xn = x−1 f
n∈Z n∈Z

donnent par récurrence


X
nα un+β xn = (x∂x )α x−β · f = x−β (x∂x − β)α · f,
n≥0

et fournissent un autre morphisme, ν, de Q[n]h∂n ; Sn i dans Q[x, x−1 ]h∂x ; id, Dx i,


donné par ν(n) = x∂x et par ν(∂n ) = x−1 . Pour une suite u solution sur Z de
l’équation de récurrence
bp (n)un+p + · · · + b0 (n)un = 0
où les bi sont dans Q[n], nous introduisons le polynôme tordu P = bp (n)∂np +
· · · + b0 (n) de Q[n]h∂n ; Sn i. Pour obtenir une relation différentielle sur la série
génératrice f , nous considérons ν(P ) que nous écrivons
ν(P ) = a0 (x) + · · · + ar (x)∂xr .
· u)(n)xn = 0, la série f vérifie la relation différentielle
P
Alors, comme n∈Z (P

a0 (x)f (x) + · · · + ar (x)f (r) (x) = 0.


Algébriquement, les propriétés précédentes s’expriment par le fait que µ s’étend
en un isomorphisme d’algèbres entre Q[x, x−1 ]h∂x ; id, Dx i et Q[n]h∂n , ∂n−1 ; Sn i, dont
i
l’inverse étend ν. Ce morphisme vérifie µ(xi ) = ∂n−i et µ(∂xi ) = (n + 1)∂n =
3. DIVISION EUCLIDIENNE 267

(n + 1) . . . (n + i)∂ni . Les deux algèbres isomorphes peuvent être vues comme agis-
sant naturellement sur Q((x)) = { x−r f | r ∈ N, f ∈ Q[[x]] }, qui n’est autre
que l’algèbre des suites sur Z nulles pour les indices n strictement inférieurs à un
entier −r (dépendant de la suite considérée).

2.2. Séries binomiales.

Exercice 1. Une série binomiale est une série de la forme n≥0 un nx . Mon-
P 

trer que les solutions en série binomiale d’une équation fonctionnelle à différence

ar (x)f (x + r) + · · · + a0 (x)f (x) = 0

ont des coefficients un qui vérifient une récurrence et expliciter le morphisme entre
algèbres de polynômes tordus correspondant.

2.3. Changements de variables. Lorsqu’une série D-finie f (x) est solution


d’une équation différentielle L · f = 0 donnée par un polynôme tordu

L = L(x, ∂x ) = ar (x)∂xr + · · · + a0 (x),

la série g(x) := f (λx) vérifie g (i) (x) = λi f (i) )(λx) pour chaque i ∈ N. En sub-
stituant λx pour x dans L · f = 0, on obtient que g est solution de l’équation
différentielle associée à

L(λx, λ−1 ∂x ) = ar (λx)λ−r ∂xr + · · · + a0 (λx).

C’est encore le résultat d’un morphisme d’algèbres, Λ, défini cette fois par Λ(x) =
λx et Λ(∂x ) = λ−1 ∂x .
Lorsque f est une fonction D-finie, la fonction z 7→ f (1/z) est elle aussi D-
finie, en z cette fois, pour autant que la fonction composée ait un sens. En effet,
pour toute fonction g, notons g̃(z) = g(1/z) (avec la même réserve de définition).
Puisque g(x) = g̃(1/x), par dérivation on a g 0 (x) = −g̃ 0 (1/x)/x2 , ce qui est l’éva-
luation en z = 1/x de −z 2 ∂z · g̃. Autrement dit, on a ge0 = −z 2 ∂z · g̃, d’où par
récurrence gg(β) = (−z 2 ∂ )β · g̃. Ainsi, f˜ est D-finie, donnée comme vérifiant l’équa-
z
tion différentielle associée à l’image de L par le morphisme de Q[x]h∂x ; id, Dx i
dans Q[z, z −1 ]h∂z ; id, Dz i qui envoie x sur z −1 et ∂x sur −z 2 ∂z .

Exercice 2. Plus généralement, la fonction  obtenue par substitution ration-


nelle de la variable, donnée par h(u) = f r(u) , est encore D-finie. Nous laissons
en exercice le soin de montrer ce résultat par la même approche dans le cas où la
dérivée r0 s’exprime comme une fraction rationnelle en r.

3. Division euclidienne
Dans cette section et les suivantes, nous nous appuyons sur des propriétés
particulières des anneaux de polynômes tordus quand l’anneau A de la construction
est un corps, que nous prendrons de la forme Q(x).
La commutation ∂a = σ(a)∂ + δ(a) dans Q(x)h∂; σ, δi permet d’écrire tout
polynôme tordu sous la forme a0 (x)+· · ·+ar (x)∂ r , pour des fractions rationnelles ai
de Q(x) uniques. Une conséquence de l’injectivité de σ est l’existence d’un degré
en ∂ bien défini : l’entier r de l’écriture précédente lorsque ar est non nulle. En
particulier, le degré d’un produit L1 L2 de polynômes tordus est la somme des
degrés des Li . Il s’ensuit que la division euclidienne du cas commutatif, et toute la
théorie qui en découle, se transpose avec peu d’altérations dans le cas tordu.
268 26. ÉQUATIONS FONCTIONNELLES LINÉAIRES ET POLYNÔMES TORDUS

Procédé de division. La différence principale avec le cas commutatif est qu’on


distingue division euclidienne à gauche et division euclidienne à droite. Vu notre
interprétation en termes d’opérateurs linéaires, nous ne considérerons que la division
à droite, qui se fait en retranchant des multiples à gauche. Soit à diviser A =
ar (x)∂ r + · · · + a0 (x) de degré r par B = bs (x)∂ s + · · · + b0 (x) de degré s. On
suppose s ≤ r. Alors,
∂ r−s B = σ r−s bs (x) ∂ r + termes d’ordres inférieurs,


où la puissance de σ représente une itération (par composition), et ainsi


−1 r−s
A − ar (x)σ r−s bs (x) ∂ B
est de degré strictement inférieur à r. Cette étape de réduction est l’étape élémen-
taire de la division euclidienne. En itérant le procédé, on aboutit à un reste R de
degré strictement inférieur à s. En regroupant les facteurs gauches, on obtient un
quotient à gauche Q tel que A = QB + R.
Exemple 1. On considère l’anneau Q(n)h∂n ; Sn i des polynômes tordus repré-
sentant les opérateurs de décalage. La division de A = (n2 − 1)∂n2 − (n3 + 3n2 +
n − 2)∂n + (n3 + 3n2 + 2n), qui annule les combinaisons linéaires de n! et n, par
B = n∂n2 − (n2 + 3n + 1)∂n + (n2 + 2n + 1), qui annule les combinaisons linéaires
de n! et 1, s’écrit
A = n−1 (n2 − 1)B − n−1 (n2 + n + 1) ∂n − (n + 1) .


Le reste est multiple de ∂n − (n + 1), qui représente la récurrence un+1 = (n + 1)un ,


vérifiée par la factorielle.
Notons une propriété de cette division : si A est multiplié à gauche par un
facteur m(x) sans que B ne soit changé, alors Q et R sont multipliés à gauche
par le même facteur m(x). Ceci ne vaut plus (en général) pour un facteur faisant
intervenir ∂.

Réduction d’une grande puissance de ∂. La division euclidienne nous donne une


nouvelle interprétation du calcul du N -ième terme d’une suite P-récursive u =
(un ) relativement à Q(n)h∂n ; Sn i. Supposons que u soit solution de l’équation de
récurrence
ar (n)un+r + · · · + a0 (n)un = 0.
En déroulant la récurrence, on voit que uN peut, pour tout N sauf annulation mal-
venue de ar , se mettre sous la forme αr−1,N ur−1 + · · · + α0,N u0 . Plus généralement,
on a une relation qui récrit un+N en terme de un+r−1 , . . ., un . Pour l’obtenir, as-
socions à la récurrence sur u le polynôme tordu P = ar (n)∂nr + · · · + a0 (n). Pour
un N donné, la division euclidienne de ∂nN par P s’écrit
∂nN = QN (n)P + αr−1,N (n)∂nr−1 + · · · + α0,N (n)
pour des fractions rationnelles αi,N (n). Après application sur u et évaluation en n,
nous obtenons
un+N = 0 + αr−1,N (n)un+r−1 + · · · + α0,N (n)un ,
d’où le résultat annoncé pour αi,N = αi,N (0).
Exercice 3. Nous laissons le lecteur se convaincre que la récriture d’une déri-
vée f (N ) d’une fonction D-finie f décrite par une équation différentielle d’ordre r en
terme de ses dérivées d’ordre strictement inférieur à r s’interprète de façon analogue
comme le calcul d’un reste de division euclidienne.
4. RECHERCHE DE SOLUTIONS ET FACTORISATION D’OPÉRATEURS 269

Clôture par addition. Le même ingrédient se retrouve dans l’algorithme donnant la


clôture par addition de deux fonctions D-finies ou de deux suites P-récursives : pour
deux objets f et g à additionner, décrits comme solutions des équations respectives
Lf · f = 0 et Lg · g = 0 pour des polynômes tordus de degrés respectifs r et s dans
un anneau adéquat Ah∂; σ, δi, l’algorithme exprime, pour des i successifs, ∂ i ·(f +g)
sous la forme (∂ i mod Lf ) · f + (∂ i mod Lg ) · g, où la notation A mod B note le
reste de la division euclidienne à droite de A par B. Lorsque suffisamment de i ont
été considérés, l’algorithme qui a été donné au Chapitre 8 calcule par de l’algèbre
linéaire des cofacteurs a0 , . . ., ar+s tels que, simultanément,
r+s
X r+s
X
i
ai (∂ mod Lf ) = 0 et ai (∂ i mod Lg ) = 0.
i=0 i=0
Pr+s i
Notons que P = i=0 ai ∂ est un multiple commun à gauche de Lf et de Lg ,
puisque P mod Lf = P mod Lg = 0. Puisque l’algorithme fonctionne en recher-
chant un P d’ordre minimal, l’algorithme de clôture par addition est donc un algo-
rithme de calcul de p. p. c. m. (à gauche).

4. Recherche de solutions et factorisation d’opérateurs


Comme pour les anneaux de polynômes commutatifs usuels, une notion de
factorisation est présente pour les anneaux de polynômes tordus. Une nuance im-
portante réside dans le lien entre les « zéros » des polynômes tordus et la position
des facteurs. Nous allons voir que la factorisation de polynômes tordus se relie aux
algorithmes vus en cours pour la recherche de solutions polynomiales, rationnelles,
et hypergéométriques dans le cas de récurrences. Par ailleurs, il n’y a plus d’uni-
cité des facteurs, même à ordre près et modulo multiplication par des unités. Un
exemple est donné dans le cas différentiel par l’infinité de factorisations
  
1 1
∂2 = ∂ + ∂−
x+r x+r
quand r est une constante.
Dans le cas d’un polynôme commutatif w se factorisant sous la forme uv pour
des facteurs polynomiaux de degré au moins 2, tout zéro de u et tout zéro de v est
zéro de w ; à l’inverse, quitte à se placer dans une clôture algébrique, tout zéro α
de w en fournit un facteur x−α et un quotient exact u(x) tel que w(x) = u(x)(x−α).
Le phénomène est différent dans le cas tordu, comme attesté par l’inégalité
  
2 1 1
∂ 6= ∂ − ∂+
x+r x+r
quand r est une constante. Plus généralement, une factorisation L = P Q
dans Ah∂; σ, δi (où A est un corps) a des propriétés différentes selon le facteur :
une solution f de l’équation Q · f = 0 est encore solution de L · f = 0, car
L · f = P · (Q · f ) = P · 0 = 0 ; mais une solution g de P ne donne lieu à des
solutions f de L que par la relation Q · f = g. Inversement, une solution f de L
donne lieu à un facteur droit d’ordre 1 de L, à condition d’étendre A par f et tous
ses itérés par σ et δ. Ce facteur est de la forme ∂ − (∂ · f )/f , c’est-à-dire ∂ − δ(f )/f
ou ∂ − σ(f )/f selon l’action de l’anneau de polynômes tordus sur les fonctions.
Les algorithmes de recherche de solutions dans des classes particulières four-
nissent donc implicitement, pour chaque solution trouvée, un facteur droit d’ordre 1.
Ils interviennent donc naturellement comme base des algorithmes de factorisa-
tion [3, 2]. Plus précisément, dans le cas différentiel, une solution polynomiale
ou rationnelle f d’une équation L · f = 0 pour L dans l’anneau Q(x)h∂x ; id, Dx i
fournit un facteur droit D = ∂x − (Dx · f )/f où (Dx · f )/f est rationnel ; dans
le cas à récurrence, une solution polynomiale, rationnelle ou hypergéométrique f
270 26. ÉQUATIONS FONCTIONNELLES LINÉAIRES ET POLYNÔMES TORDUS

d’une équation L · f = 0 pour L dans l’anneau Q(x)h∂x ; Sx i fournit un facteur


droit D = ∂x − Sx (f )/f où Sx (f )/f est rationnel. Dans les deux cas, le quotient Q
tel que L = QD est aussi à coefficients rationnels.
Exemple 2. Un exemple simple, en réalité sans extension stricte de A, est
donné dans A = Q[x]h∂x ; id, Dx i par l’opérateur
L = x2 (4x2 + 5)∂x3 − x(8x4 + 14x2 − 5)∂x2 − (4x4 + 17x2 + 5)∂x − 2x3 (4x2 + 9),
dont une solution particulière est f = exp x2 . Cette solution se vérifie à partir de
Dx · f = 2xf , Dx2 · f = (4x2 + 2)f et Dx3 · f = (8x3 + 12x)f , en établissant la nullité
de
x2 (4x2 +5)(8x3 +12x)−x(8x4 +14x2 −5)(4x2 +2)−(4x4 +17x2 +5)(2x)−2x3 (4x2 +9).
Par division euclidienne, on trouve
L = x2 (4x2 + 5)∂x2 − x(4x2 − 5)∂x + 4x4 + 13x2 − 5 (∂x − 2x).


On montre que L n’a pas d’autre facteur droit non-trivial unitaire ; l’exercice 4
fournit les facteurs gauches d’ordre 1 :
L = x(4x2 + 5)∂x − (2x2 + 5)(4x2 + 1) (x∂x2 + ∂x + x).


Exemple 3. L’opérateur L = 2(2x+3)∂x2 +3(5x+7)∂x +9(x+1) fournit un autre


exemple, pour A = Q[x]h∂x ; Sx i. Comme une solution particulière est (−3)x , ce qui
s’obtient par l’algorithme de Petkovšek et peut s’établir simplement en observant la
nullité de L en ∂x = −3, un facteur droit de L est ∂x + 3, et une division euclidienne
montre

L = 2(2x + 3)∂x + 3(x + 1) (∂x + 3).
On montre que L n’a pas d’autre facteur droit non-trivial unitaire.
Exercice 4. Un antimorphisme φ entre anneaux est une application Q-
linéaire qui renverse les produits : φ(P Q) = φ(Q)φ(P ). Montrer l’existence d’an-
timorphismes µ : Q(x)h∂x ; id, Dx i → Q(u)h∂u ; id, Du i et ν : Q(x)h∂x ; Sx i →
Q(u)h∂u ; Su i, définis par les relations
µ(x) = u, µ(∂x ) = −∂u , et ν(x) = −u, ν(∂x ) = ∂u .
Expliquer comment ces antimorphismes fournissent des facteurs gauches d’ordre 1
de polynômes tordus.

5. Algorithme d’Euclide
Rappelons qu’un idéal d’un anneau commutatif unitaire A est un sous-groupe
additif de A clos par multiplication par les éléments de A. Il est classique que les
anneaux commutatifs euclidiens — ceux dans lesquels l’existence d’un degré permet
une division euclidienne — sont principaux : tout idéal peut être engendré par un
unique générateur. C’est le cas des anneaux de polynômes commutatifs à coefficients
dans un corps. Le p. g. c. d. p de deux polynômes f et g est alors l’unique polynôme
unitaire engendrant l’idéal (f, g), somme des idéaux (f ) et (g). Il se calcule comme
dernier reste non nul par l’algorithme d’Euclide.
Pour un anneau de polynômes tordus A = Kh∂; σ, δi sur un corps K, la si-
tuation est la même si on prend soin de ne considérer que des idéaux à gauche,
c’est-à-dire avec la clôture par multiplication à gauche par les éléments de A. Les
notions qui en découlent sont celles de divisions euclidiennes à droite et de plus
grands communs diviseurs à droite (p. g. c. d. d.). Soient P0 et P1 deux polynômes
de A. Si P1 n’est pas nul, on écrit la division euclidienne de P0 par P1 , sous la forme
6. RELATIONS DE CONTIGUÏTÉ 271

P0 = Q0 P1 + P2 . Tant que Pi+2 n’est pas nul, on itère en divisant Pi+1 par Pi+2 .
Soit j la valeur finale de i, telle que Pj+1 6= 0 et Pj+2 = 0. Alors :
         
P0 Q0 1 P1 Q0 1 Qj 1 Pj+1
= = ··· = ... ,
P1 1 0 P2 1 0 1 0 0
d’où on déduit que Pj+1 divise P0 et P1 à droite : P0 = F Pj+1 et P1 = GPj+1 pour
des polynômes tordus F et G adéquats. Puis en inversant les matrices
          
Pj+1 U V P0 U V 0 1 0 1
= pour = ... .
0 R S P1 R S 1 −Qj 1 −Q0
En particulier, Pj+1 = U P0 + V P1 est élément de l’idéal à gauche AP0 + AP1 .
Un élément quelconque L = M P0 + N P1 de cet idéal est aussi multiple de Pj+1 :
L = (M F +N G)Pj+1 . En normalisant Pj+1 pour le rendre unitaire, on obtient donc
un p. g. c. d. d. distingué de P0 et P1 . Par ailleurs, le polynôme tordu RP0 = −SP1
est un plus petit multiple commun à gauche (p. p. c. m. g.) de P0 et P1 , par le même
argument que dans le cas commutatif, en suivant de près les degrés tout au long de
l’algorithme.
On a vu que les algorithmes de clôture par addition entre fonctions D-finies
ou entre suites P-récursives renvoient un multiple commun à gauche des polynômes
tordus Lf et Lg décrivant les deux objets f et g additionner. Comme ces algorithmes
opèrent par degrés croissants, le polynôme renvoyé est de degré minimal en ∂, parmi
ceux qui annulent la somme f +g. Le polynôme annulateur de la somme f +g renvoyé
par ces algorithmes est donc le p. p. c. m. g. de Lf et de Lg .
Exemple 4. Nous repartons des polynômes A et B de l’exemple 1 pour en
calculer un p. g. c. d. d. et un p. p. c. m. g. On pose P0 = A, P1 = B ; on a déjà
calculé P2 = −n−1 (n2 + n + 1) ∂n − (n + 1) avec P0 = n−1 (n2 − 1)P1 + P2 . Il vient
ensuite  
n(n + 1) n(n + 1)
P1 = − 2 ∂n + 2 P2 + 0.
n + 3n + 3 n +n+1
Ainsi, le p. g. c. d. d. unitaire est ∂n − (n + 1). Remarquons qu’il annule les solutions
communes de A et B, à savoir les multiples de n!. Le p. p. c. m. g. unitaire s’obtient
par renormalisation de Q1 P0 = (Q1 Q0 + 1)P1 :
n3 + 6n2 + 8n + 5 2 2n3 + 9n2 + 13n + 7 (n2 + 3n + 3)(n + 1)
∂n3 − ∂n + ∂ n − .
n2 + n + 1 n2 + n + 1 n2 + n + 1
Notons que ses solutions sont toutes les solutions de A et B : les combinaisons
linéaires de n!, n et 1.

6. Relations de contiguïté
Un grand nombre de fonctions spéciales sont en fait des fonctions fn (x) d’une
variable continue x et d’une variable discrète n. Les familles de telles fonctions dont
l’intérêt a été révélé, par exemple par la physique mathématique, sont telles que la
dépendance en x est liée à la dépendance en n. Il apparaît que très fréquemment,
la fonction fn+α (x), pour α = ±1, est reliée à la fonction fn (x) et à ses dérivées.
C’est le cas pour la classe importante des fonctions hypergéométriques, c’est-à-dire,
essentiellement, pour les séries génératrices de suites hypergéométriques, et pour
des fonctions limites de fonctions hypergéométriques, dont un certain nombre de
familles de polynômes orthogonaux classiques, et pour des généralisations.
Dans cette section, nous considérons des fonctions D-finies paramétrées et ré-
solvons algorithmiquement des problèmes tels que la détermination d’une relation
de la forme
r−1
X
fn+1 (x) = ai (x)fn(i) (x)
i=0
272 26. ÉQUATIONS FONCTIONNELLES LINÉAIRES ET POLYNÔMES TORDUS

pour la suite de polynômes


n  2  2
X n n+k
fn (x) = (−1)k xk .
k k
k=0
Ici, la relation explicite est
x3 (x + 1) 000 x2 (2n + 2xn + 11 + 14x) 00
fn+1 (x) = 12 f n (x) + 4 fn (x)
(n + 1)3 (n + 1)3
x(5xn2 − n2 − 4n − 6 + 2xn − 9x) 0 16xn − n − 1 + 4x
−4 fn (x) − fn (x).
(n + 1)3 n+1
L’opérateur différentiel linéaire implicitement au membre droit s’appelle un opé-
rateur de montée ; un opérateur qui donnerait fn−1 (x) s’appelle un opérateur de
descente. Une relation linéaire entre les decalées fn+i (x) et ne faisant intervenir
aucune dérivation s’appelle une relation de contiguïté.
6.1. Fonction hypergéométrique de Gauss. La plus simple des fonctions
hypergéométriques est la fonction hypergéométrique de Gauss, définie par
(a)k (b)k xk
  X
a, b
F (a, b; c; x) = 2 F1 x = .
c (c)k k!
k≥0

La notation 2 F1 a déjà été introduite au Chapitre 24, ainsi que le symbole de


Pochhammer
Γ(s + n)
(s)n = s(s + 1) · · · (s + n − 1) = ,
Γ(s)
lequel vérifie
(s)n+1 (s + 1)n s+n
=s+n et = .
(s)n (s)n s
Oublions la dépendance en b et c du coefficient de xk dans cette somme, coef-
ficient que nous notons ua,k . Nous avons
 
(a + k)(b + k) k
ua,k+1 = ua,k et ua+1,k = + 1 ua,k .
(c + k)(k + 1) a
La première de ces identités nous fournit le polynôme tordu
(c + k)(k + 1)∂k − (a + k)(b + k) ∈ Q(a, b, c)[k]h∂k ; Sk i
qui annule u. Pour k = −1, cette récurrence impose ua,−1 = 0, ce qui permet
d’étendre la suite u à toute valeur k ∈ Z tout en continuant de vérifier la récurrence.
Par le morphisme qui effectue le passage à la série génératrice, nous obtenons
(c + x∂x )(x∂x + 1)x−1 − (a + x∂x )(b + x∂x )
= (x∂x )2 + (c + 1)x∂x + c x−1 − (x∂x )2 + (a + b)x∂x + ab
 

= x(1 − x)∂x2 + c − (a + b + 1)x ∂x − ab




∈ Q(a, b, c)[x, x−1 ]h∂x ; id, Dx i.


Notons L ce polynôme tordu en ∂x . La deuxième identité sur u donne, après som-
mation, F (a + 1, b; c; x) = (a−1 x∂x + 1) · F (a, b; c; x) ; c’est-à-dire qu’un opérateur
de montée est donné par le polynôme tordu L↑ = a−1 x∂x + 1.
Définissons G(a, b; c; x) comme étant F (a + 1, b; c; x). Supposons qu’il existe un
inverse V de L↑ modulo L à droite. Alors V L↑ − 1 est un multiple à gauche de L,
qui annule donc F . Ainsi, F = V L↑ · F = V · G, autrement dit, V représente un
opérateur de descente de G. On obtient un opérateur de descente pour F par un
simple décalage arrière de a dans V . Pour un calcul effectif, la division euclidienne
L = Q(a−1 x∂x +1)−(c−a−1)ax−1 où Q = a(1−x)∂x +(c−a−1)ax−1 −ab
NOTES 273

donne l’opérateur de descente après avoir décalé a dans (c − a − 1)−1 a−1 xQ par
x(1 − x) bx
L↓ = ∂x − − 1.
a−c a−c
Notre objectif est maintenant de calculer une relation de contiguïté pour F .
Nous avons obtenu L↑ (a) · F = ∂a · F , où nous avons noté explicitement la dépen-
dance en a du polynôme tordu L↑ . Il s’ensuit la relation
∂ai · F = L↑,i (a) · F où L↑,i (a) = L↑ (a + i − 1) · · · L↑ (a + 1)L↑ (a),
dans laquelle nous pouvons, comme toujours, remplacer un polynôme agissant sur
la fonction F par le reste de la division euclidienne de ce polynôme par L, qui
annule F . Ainsi, une relation de contiguïté s’obtient en recherchant une combinaison
linéaire, à coefficients dans Q(a, b, c, x) des restes modulo L à droite des L↑,i (a) pour
i = 0, 1, 2.
Exercice 5. Terminer ce calcul pour retrouver :

(a + 1)(1 − x)F (a + 2, b; c; x) + c − xb + (a + 1)(x − 2) F (a + 1, b; c; x)
+ (a − c + 1)F (a, b; c; x) = 0.
6.2. Extension aux séries partiellement hypergéométriques. Nous con-
sidérons maintenant des sommes
X
fn (x) = un,k xk
k≥0

dans lesquelles u n’est hypergéométrique qu’en n, mais est seulement P-récursive


en k, et satisfait à la relation
ap (n, k)un,k+p + · · · + a0 (n, k)un,k = 0.
Comme dans le cas doublement hypergéométrique, cette relation fournit une re-
lation purement différentielle sur f . Comme précédemment, aussi, la relation de
récurrence du premier ordre en n sur u donne une expression de fn+1 (x) comme
combinaison linéaire de dérivées. On procède donc comme dans la section précé-
dente pour calculer opérateurs de montée, de descente, et relations de contiguïté.
Exercice 6 (Assez calculatoire). Calculer l’opérateur de montée annoncé dans
l’introduction de cette section.

Notes
La structure d’anneau de polynômes tordus a été introduite et étudiée par Ore
dans [8], avec le dessein explicite de traiter (et résoudre ?) des systèmes fonctionnels
linéaires [7]. Dans ces travaux, les polynômes tordus sont simplement appelés « non
commutatifs ». Dans la littérature moderne, on parle souvent de « polynômes » ou
d’« opérateurs de Ore », et encore d’« opérateurs pseudo-linéaires » [4].
L’interprétation de la Section 2 du lien par morphisme entre série et suite de
coefficients est implicite dans les travaux sur la théorie des D-module (voir [5] pour
une exposition simple). Elle a été utilisée de façon explicite (pour le cadre binomial)
dans [1].
La question du calcul algorithmique de relations de contiguïté a été abordée
d’abord dans le cas purement hypergéométrique dans [10], puis dans le cas partiel-
lement hypergéométrique dans [6].
Les questions de factorisation d’opérateurs linéaires et de résolution mènent
à une théorie de Galois : la théorie de Galois différentielle [12, 9] comme celle à
différence [11] étudient les applications linéaires qui échangent les solutions d’une
équations fonctionnelle linéaire. Un succès de la théorie différentielle est l’étude des
274 26. ÉQUATIONS FONCTIONNELLES LINÉAIRES ET POLYNÔMES TORDUS

solutions dites « liouviliennes » d’une équation linéaire différentielle, données ex-


plicitement en termes de compositions d’opérations élémentaires (exponentiations,
prises de logarithmes, extensions algébriques). La théorie fournit aussi des informa-
tions sur les développements asymptotiques des solutions, notamment en présence
de singularités faisant intervenir des exponentielles.

Bibliographie
[1] Bostan (A.), Chyzak (F.), Salvy (B.), and Cluzeau (T.). – Low complexity algorithms for
linear recurrences. Proceedings of ISSAC’06, , pp. 31–38.
[2] Bronstein (M.) and Petkovšek (M.). – On Ore rings, linear operators and factorisation. Pro-
grammirovanie, vol. 1, , pp. 27–44. – Also available as Research Report 200, Informatik,
ETH Zürich.
[3] Bronstein (Manuel). – Linear ordinary differential equations : breaking through the order 2
barrier. In Proceedings of ISSAC’92. pp. 42–48. – ACM Press, .
[4] Bronstein (Manuel) and Petkovšek (Marko). – An introduction to pseudo-linear algebra.
Theoretical Computer Science, vol. 157, , pp. 3–33.
[5] Cartier (Pierre). – Démonstration “automatique” d’identités et fonctions hypergéométriques
(d’après D. Zeilberger). Astérisque, vol. 1991/92, n‌206, , pp. Exp. No. 746, 3, 41–91. –
Séminaire Bourbaki.
[6] Chyzak (Frédéric) and Salvy (Bruno). – Non-commutative elimination in Ore algebras proves
multivariate holonomic identities. Journal of Symbolic Computation, vol. 26, n‌2, August ,
pp. 187–227.
[7] Ore (Oystein). – Linear equations in non-commutative fields. Annals of Mathematics, vol. 32,
, pp. 463–477.
[8] Ore (Oystein). – Theory of non-commutative polynomials. Annals of Mathematics, vol. 34,
n‌3, , pp. 480–508.
[9] Singer (M. F.). – Introduction to the Galois Theory of Linear Differential Equations. ArXiv
e-prints, December .
[10] Takayama (Nobuki). – Gröbner basis and the problem of contiguous relations. Japan Journal
of Applied Mathematics, vol. 6, n‌1, , pp. 147–160.
[11] van der Put (Marius) and Singer (Michael F.). – Galois theory of difference equations. –
Springer-Verlag, Berlin, , Lecture Notes in Mathematics, vol. 1666, viii+180p.
[12] van der Put (Marius) and Singer (Michael F.). – Galois theory of linear differential equa-
tions. – Springer-Verlag, Berlin, , Grundlehren der Mathematischen Wissenschaften
[Fundamental Principles of Mathematical Sciences], vol. 328, xviii+438p.
CHAPITRE 27

Algorithmes pour les fonctions spéciales dans les


algèbres de Ore

1. Algèbres de Ore rationnelles


Une généralisation à plusieurs dérivations et décalages de la notion d’anneau
de polynômes tordus du chapitre précédent est donnée par la définition qui suit.
Définition (Algèbre de Ore). Étant donnés
– un corps (commutatif ) k(x) = k(x1 , . . . , xr ) de fractions rationnelles,
– r endomorphismes σi de k-algèbre de k(x), commutant deux à deux,
– pour chaque i une σ-dérivation δi relative à σi , c’est-à-dire pour chaque i
un endomorphisme linéaire pour lequel δi (ab) = σi (a)δi (b) + δi (a)b dès que
a et b sont dans k(x), toutes ces σ-dérivations commutant deux à deux et
δi commutant avec σj chaque fois que i 6= j,
– r indéterminées ∂i ,
l’algèbre de Ore (rationnelle) notée k(x1 , . . . , xr )h∂1 , . . . , ∂r ; σ1 , . . . , σr , δ1 , . . . , δr i
ou plus simplement k(x)h∂; σ, δi est la k(x)-algèbre associative engendrée par les ∂i
modulo les relations
∂i a = σi (a)∂i + δi (a), ∂i ∂j = ∂j ∂i ,
quand a est dans k(x). On note plus simplement k(x1 , . . . , xr )h∂1 , . . . , ∂r ; σ1 , . . . , σr i
ou encore k(x)h∂; σi le cas où tous les δi sont nuls.
Donnons un exemple : en notant x pour l’opérateur de multiplication par x
et n pour celui de multiplication par n, on vérifie l’existence d’une algèbre de Ore
A = C(n, x)h∂n , ∂x ; Sn , id, 0, Dx i avec Sn (n) = n + 1, Sn (x) = x, Dx (n) = 0,
Dx (x) = 1, et plus généralement Sn (a) = a(n + 1, x) et Dx (a) = da/dx quand a =
a(n, x) ∈ C(n, x).

2. Idéal annulateur et module quotient


Les éléments des algèbres de Ore représentent des opérateurs linéaires, diffé-
rentiels, de récurrence, ou autres, et agissent donc sur des fonctions, suites, suites
de fonctions, etc. Donnons un exemple qui montre que ces objets sont une bonne
représentation polynomiale des opérateurs linéaires, l’exemple de la famille des po-
lynômes orthogonaux de Laguerre qui va nous servir pour toute la suite du chapitre.
Pour chaque paramètre strictement positif α, l’intégrale
Z ∞
hf, gi = f (x)g(x)xα e−x dx
0
définit un produit scalaire sur les fonctions polynomiales réelles. Par la théorie des
polynômes orthogonaux, on déduit l’existence de bases orthogonales échelonnées en
degré. On a par exemple la base des polynômes orthogonaux de Laguerre, donnée
par
 n n  
(α) 1 −α x d −x n+α 1 X k n
(α + k + 1) · · · (α + n)xk .

Ln (x) = x e e x = (−1)
n! dx n! k
k=0

275
276
27. ALGORITHMES POUR LES FONCTIONS SPÉCIALES DANS LES ALGÈBRES DE ORE

On vérifie que ces polynômes vérifient les relations (linéaires)


(α) (α)
(n + 2)Ln+2 − (2n + α + 3 − x)Ln+1 + (n + α + 1)L(α)
n = 0,
0 (α)
xL(α)
n − (n + 1)Ln+1 + (n + α + 1 − x)L(α)
n = 0,
00 0
xL(α)
n + (α + 1 − x)L(α)
n + nL(α)
n = 0,
(α) (α)
avec les conditions initiales L0 = 1 et L1 = α + 1 − x. Dans l’algèbre de Ore A
ci-dessus, ces équations se recodent en les polynômes tordus suivant, qui annulent
la suite de fonctions polynomiales L(α) :
p1 = (n + 2)∂n2 − (2n + α + 3 − x)∂n + (n + α + 1),
p2 = x∂x − (n + 1)∂n + (n + α + 1 − x),
p3 = x∂x2 + (α + 1 − x)∂x + n.
Ces trois polynômes engendrent un idéal à gauche dans A, l’idéal annulateur de L(α)
dans A. Pour mémoire, un idéal à gauche I d’un anneau R est un sous-ensemble
non vide de R stable par addition et par multiplication à gauche par tout élément
de R. Cette stabilité reflète le fait que l’addition terme à terme de deux relations li-
néaires vérifiées par L(α) est une nouvelle relation linéaire vérifiée par L(α) , de même
qu’en appliquant un opérateur linéaire sur une relation linéaire vérifiée par L(α) ,
on retrouve une relation linéaire vérifiée par L(α) .
Exemple 1. En partant de la troisième équation donnée pour caractériser les
polynômes de Laguerre, un décalage avant de n et une dérivation par rapport à x
donnent respectivement
(α) (α) (α)
xLn+1 00 + (α + 1 − x)Ln+1 0 + (n + 1)Ln+1 = 0
et
000
xL(α)
n + (α + 2 − x)Ln(α) 00 + (n − 1)L(α)
n
0
= 0.
L’addition de ces deux équations donne l’équation fonctionnelle linéaire
000 00 0 00 (α) 0 (α) (α)
xL(α)
n +(α+2−x)L(α)
n +(n−1)L(α)
n +xLn+1 +(α+1−x)Ln+1 +(n+1)Ln+1 = 0,
laquelle correspond au polynôme tordu
(∂x + ∂n )p3 = x∂ 3 + (α + 2 − x)∂x2 + (n − 1)∂x + x∂x2 ∂n + (α + 1 − x)∂x ∂n + (n + 1)∂n .
Dans le cas commutatif, le quotient d’une algèbre A de polynômes par l’un de
ses idéaux (bilatères) I reste munie d’un produit canonique et est donc une algèbre.
Cette propriété n’est plus réalisée dans le cas d’une algèbre de Ore A = k(x)h∂; σ, δi.
Mais, en voyant A comme un idéal à gauche trivial de lui-même, le quotient A/I
conserve une addition canonique, ainsi que la stabilité par multiplication à gauche
par tout élément de A, ce qui fait de ce quotient un module à gauche sur A. Ce
module est en particulier un espace vectoriel sur k(x).
Dans le cas commutatif, un cadre particulier important est celui d’un quo-
tient de dimension finie comme espace vectoriel, car il représente une famille finie
de points solutions. Le cas d’un quotient d’une algèbre de Ore qui est un espace
vectoriel sur k(x) de dimension finie est lui-aussi important ; dans l’interprétation
en opérateurs linéaires, il correspond en règle générale à un espace vectoriel de
solutions de dimension finie sur k.
Dans la Section 4, nous allons détailler ce lien dans le cas d’opérateurs différen-
tiels ; d’autres cadres fournissent le même genre de résultats. Nous irons plus loin
sur le sujet dans la Section 5 sur les fonctions ∂-finies.
Toute autre famille de polynômes orthogonaux classique se traiterait de la même
manière et aurait pu servir de support à ce chapitre. La même nature de système
3. BASES DE GRÖBNER POUR LES IDÉAUX À GAUCHE 277

linéaire avec une dérivation sur une variable et un décalage sur une autre permet
de traiter de la même façon nombre de famille de fonctions spéciales paramétrées,
telles les fonctions de Bessel, de Hankel, etc.

3. Bases de Gröbner pour les idéaux à gauche


La propriété essentielle qui fait fonctionner toute la théorie des bases de Gröbner
et l’algorithme de Buchberger dans le cadre de polynômes commutatifs est que le
monôme de tête d’un produit de polynômes est le produit des monômes de tête des
termes du produit. Cette propriété reste vérifiée sur des polynômes non commutatifs
sujets aux relations de définition des algèbres de Ore rationnelles, dès lors qu’on
considère des ordres monomiaux sur les ∂i . En refaisant la théorie en s’efforçant
de faire toutes les combinaisons linéaires avec des facteurs à gauche, on obtient le
résultat suivant (cf. le Chapitre 16 et la Section 3 du Chapitre 17 sur les bases de
Gröbner classiques) :
Théorème. Soit A une algèbre de Ore rationnelle.
(i) Tout idéal à gauche I de A admet pour chaque ordre monomial (admis-
sible) sur les ∂i une unique base de Gröbner minimale réduite G, au sens où l’une
quelconque des propriétés équivalentes suivantes est vérifiée :
1. la partie stable du monoïde des monômes en les ∂i engendrée par les mo-
nômes de tête des éléments de G est égale celle engendrée par ceux de I ;
2. tout f non nul de I est réductible par G ;
3. pour tout f dans A, il existe un unique r dans A dont aucun monôme ne
soit divisible par un monôme de tête d’un élément de G et tel que f − r soit
dans l’idéal I ;
4. pour tout f dans I, le reste de la division (à droite) de f par G est nul.
(ii) Soit P = {pk }1≤k≤r un système de générateurs non nuls d’un idéal à
gauche I de A. Tous les S-polynômes Spoly(pi , pj ) (définis par des combinaisons
linéaires à gauche) se réduisent à 0 par P si et seulement si P est une base de
Gröbner de l’idéal.
(iii) Une variante de l’algorithme de Buchberger termine et renvoie une base
de Gröbner de tout idéal à gauche I de A.
Une spécificité du cas non commutatif réside dans le calcul des S-polynômes.
Considérons le cas commutatif et faisons l’hypothèse que les calculs, pour des rai-
sons d’efficacité, écrivent tous les polynômes en chassant les dénominateurs. (Ceci
suppose donc que le corps des coefficients peut être vu comme l’anneau des frac-
tions d’un certain anneau, en règle générale Z[α, . . . ] pour des paramètres α, . . .)
Le S-polynôme de deux polynômes non nuls f1 et f2 se définit alors par
c2 m2 c1 m1
Spoly(f1 , f2 ) = f1 − f2 ,
c1 ∧ c2 m1 ∧ m2 c1 ∧ c2 m1 ∧ m2
où u ∧ v est une notation pour le p. g. c. d., ci dénote le coefficient de tête de fi et
mi son monôme de tête, pour i = 1, 2. Cette formule doit être adaptée dans le cas
de polynômes tordus : chacun des ci dénote maintenant le coefficient de tête de
m3−i
fi ,
m1 ∧ m2
qui peut dépendre des σj , mais où les notions divisions et p. g. c. d. sont vues comme
si les mi étaient dans un monde commutatif.
Plutôt que de poursuivre la théorie dans le détail, montrons le calcul sur un
exemple.
En repartant des polynômes p1 et p2 qui annulent la suite des polynômes or-
thogonaux de Laguerre, montrons que le polynôme p3 s’obtient par élimination
278
27. ALGORITHMES POUR LES FONCTIONS SPÉCIALES DANS LES ALGÈBRES DE ORE

de S par un calcul pour l’ordre lex(∂n , ∂x ). Pour cet ordre, le terme de tête de p1
est (n+2)×∂n2 , celui de p2 est −(n+1)×∂n . On calcule donc d’abord le S-polynôme
de p1 et de p2 , sous la forme
Spoly(p1 , p2 ) = p1 + ∂n p2 = x∂x ∂n − (n + 1)∂n + (n + α + 1).
Remarquons que ce S-polynôme n’est pas (n + 1)p1 + (n + 2)∂n p2 , lequel aurait
(n + 2)∂n2 comme terme de tête, et non pas ∂x ∂n pour monôme de tête. Il est
réductible par p2 ; après multiplication par (n + 1) et ajout de x∂x p2 , on obtient
x2 ∂x2 + (n + α + 2 − x)x∂x − (n + 1)2 ∂n + (n + 1)(n + α + 1) − x.
Ce polynôme a ∂n pour monôme de tête et est réductible par p2 ; après retranche-
ment de (n + 1)p2 , on aboutit à
x2 ∂x2 + (α + 1 − x)x∂x + nx,
qui n’est autre que xp3 . En poursuivant, on montre que les S-polynômes de p1 et p2
avec p3 se réduisent à 0 ; puisque le monôme de tête de p2 , ∂n , divise celui de p1 ,
∂n2 , une base de Gröbner minimale pour l’ordre lex(∂n , ∂x ) est {p2 , p3 }.
De façon analogue, une base de Gröbner pour l’ordre lex(∂x , ∂n ) de l’idéal en-
gendré par p2 et p3 est {p1 , p2 }. Les bases de Gröbner permettent de déterminer la
redondance du système {p1 , p2 , p3 }.
Exercice 1. Calculer une base de Gröbner pour l’ordre lex(∂x , ∂n ) de l’idéal
engendré par p2 et p3 et vérifier le point ci-dessus.
Les polynômes p1 , p2 , p3 qui annulent la suite des polynômes orthogonaux de
Laguerre sont encore plus contraints qu’il n’y paraît jusqu’à présent : p2 se déduit
en fait de p1 . En effet, ne connaissant que p1 , on peut rechercher le polynôme p2
sous la forme indéterminée
p2 = ∂x − u(n, x)∂n − v(n, x),
pour des fractions rationnelles à déterminer u et v, et faire l’hypothèse heuristique
que {p1 , p2 } est une base de Gröbner pour l’ordre lex(∂x , ∂n ). (Cette hypothèse
heuristique est en fait naturelle dès qu’on sait qu’on a affaire à une famille de
polynômes orthogonaux.)
Exercice 2 (Presque un problème). Utiliser la théorie des bases de Gröbner
pour donner un système de récurrence linéaires sur u et v qui, après résolution,
redonne le polynôme p2 . (Pour la résolution, on se souviendra des conditions initiales
(α) (α)
L0 = 1 et L1 = α + 1 − x.)

4. ? Module quotient et dimension de l’espace des solutions ?


4.1. ? Séries formelles solutions en un point régulier dans le cas dif-
férentiel ?. Considérons une algèbre de Ore
A = C(x1 , . . . , xr )h∂1 , . . . , ∂r ; id, . . . , id, Dx1 , . . . , Dxr i,
un idéal à gauche I de cette algèbre, donné par un système différentiel linéaire.
Nous voulons décrire les solutions séries annulées par tous les éléments de I, où
une série est ici un élément de C[[x1 , . . . , xr ]], c’est-à-dire une combinaison linéaire
formelle éventuellement infinie de monômes à exposants entiers positifs. Dans cette
objectif, cette section ébauche un analogue en plusieurs variables de la conversion
entre équation différentielle décrivant une fonction D-finie d’une variable et équation
de récurrence vérifiée par la suite P-récursive des coefficients.
Fixons un ordre monomial sur les monômes en les ∂i , puis, pour cet ordre, une
base de Gröbner B de I, donnée par des éléments de A sans fractions, c’est-à-dire
4. ? MODULE QUOTIENT ET DIMENSION DE L’ESPACE DES SOLUTIONS ? 279

avec des coefficients polynomiaux. Cette base de Gröbner B fournit un escalier ; no-
tons S l’ensemble des multi-exposants s = (s1 , . . . , sr ) des monômes ∂ s = ∂1s1 · · · ∂rsr
sous l’escalier, c’est-à-dire des monômes qui ne sont pas réductibles par B. Le mo-
dule quotient A/I a alors une base d’espace vectoriel sur C(x) constituée des ∂ s +I,
les classes des ∂s modulo I, pour s décrivant S. Soit u le polynôme produit des coef-
ficients de tête des éléments de B et faisons l’hypothèse que u ne s’annule pas pour
x1 = · · · = xr = 0. Nous affirmons qu’alors, l’idéal I admet un espace vectoriel de
solutions séries dans C[[x1 , . . . , xr ]] de dimension le cardinal de S, c’est-à-dire la
dimension sur C(x) de A/I vu comme espace vectoriel. On dit dans ce cas que le
point (0, . . . , 0) est régulier pour le système différentiel linéaire définissant l’idéal I.
En effet, pour tout multi-exposant n P = (n1 , . . . , nr ), la réduction du monôme ∂ n
par B fournit une combinaison linéaire s∈S vn,s ∂ s congrue à ∂ n modulo I. Ceci
généralise la récriture d’un ∂ N faite en Section 3 du Chapitre 26. Notons que par
construction, les coefficients vn,s sont éléments de C[x1 , . . . , xr , u−1 ] et ont ainsi une
évaluation bien définie en x1 = · · · = xr = 0. Maintenant, puisque chaque élément
de I s’annule sur toute solution série
X
φ= cn1 ,...,nr xn1 1 · · · xnr r
n1 ∈N,...,nr ∈N
n
vn,s ∂ s ont la même action sur φ :
P
de I, le monôme ∂ et la somme s∈S
X
∂n · φ = vn,s ∂ s · φ.
s∈S

Une évaluation en x1 = · · · = xr = 0 donne la relation


X
n1 ! . . . nr ! cn1 ,...,nr = vn,s (0, . . . , 0)s1 ! . . . sr ! cs1 ,...,sr .
s∈S

Autrement dit, la série φ est totalement déterminée par ses quelques premiers co-
efficients cs pour s ∈ S, en nombre donné par la dimension de A/I.
Illustrons cette idée en reprenant l’exemple des polynômes orthogonaux de La-
guerre, qui étendent déjà légèrement le cadre purement différentiel qui précède.
Posons
n
X
Ln(α) (x) = `n,k xk .
k=0

En multipliant chaque pi pour i = 1, 2, 3 par ∂xk , il vient


∂xk p1 = (n + 2)∂n2 ∂xk − (2n + α + 3 − x)∂n ∂xk + k∂n ∂xk−1 + (n + α + 1)∂xk ,
∂xk p2 = x∂xk+1 − (n + 1)∂n ∂xk + (n + α + k + 1 − x)∂xk − k∂xk−1 ,
∂xk p3 = x∂xk+2 + (α + k + 1 − x)∂xk+1 + (n − k)∂xk .

Après application sur L(α) , évaluation en x = 0 et division par k!, on trouve les
relations de récurrence sur la famille doublement indexée des `n,k
(n + 2)`n+2,k − (2n + α + 3)`n+1,k + `n+1,k−1 + (n + α + 1)`n,k = 0,
−(n + 1)`n+1,k + (n + α + k + 1)`n,k − `n,k−1 = 0,
(k + 1)(α + k + 1)`n,k+1 + (n − k)`n,k = 0.
En décalant la dernière vers l’arrière en k puis éliminant `n,k−1 entre la relation
obtenue et la deuxième récurrence ci-dessus, on obtient la récurrence
(n + 1 − k)`n+1,k − (n + α + 1)`n,k = 0.
Ce jeu de récurrences fournit tous les `n,k .
280
27. ALGORITHMES POUR LES FONCTIONS SPÉCIALES DANS LES ALGÈBRES DE ORE

4.2. ? Solutions en séries des systèmes hypergéométriques de


Gel’fand, Kapranov et Zelevinsky ?. Prenons un exemple concret, celui des
systèmes hypergéométriques dans la formulation de Gel’fand, Kapranov et Zele-
vinsky. L’algèbre de Ore qui intervient dans cet exemple est l’algèbre A engendrée
par quatre indéterminées ∂1 , . . ., ∂4 sur le corps C(x1 , . . . , x4 ), chaque ∂i représen-
tant l’opérateur de dérivation par rapport à xi . Le système GKZ est le système
p1 = ∂2 ∂3 − ∂1 ∂4 ,
p2 = x1 ∂1 − x4 ∂4 + (1 − c),
p3 = x2 ∂2 + x4 ∂4 + a,
p4 = x3 ∂3 + x4 ∂4 + b,
pour des paramètres complexes a, b et c génériques. L’objectif de l’exemple est
de montrer que ce système admet un espace vectoriel de solutions formelles de
dimension exactement 2, où par solution formelle nous entendons maintenant une
série plus générale de la forme
X
xa1 1 . . . xa4 4 cn1 ,...,n4 xn1 1 · · · xn4 4 ,
n1 ∈Z,...,n4 ∈Z

pour des ai et des coefficients complexes, ou une combinaison linéaire de telles séries.
(Il y a bien un espace vectoriel sur C où vivent ces séries, mais pas de produit sur
ces séries. En revanche, toute série peut être multipliée par un polynôme en les xi
et leurs inverses x−1i , ainsi que dérivée formellement par rapport à chacune des
indéterminées, tout en restant dans l’espace vectoriel.)
Soit I l’idéal engendré par le système {p1 , . . . , p4 } et calculons à partir de ce
système une base de Gröbner de I pour l’ordre lex(∂1 , . . . , ∂4 ). Les monômes de tête
respectifs de p1 et p2 sont ∂1 ∂4 et ∂1 . Le S-polynôme de p1 et de p2 est donc
Spoly(p1 , p2 ) = x1 p1 + ∂4 p2 = x1 ∂2 ∂3 − x4 ∂42 − c∂4 ,
dont le monôme de tête est ∂2 ∂3 ; il est donc réductible par p3 . Après multiplication
par −x2 et ajout de x1 ∂3 p3 , on obtient
x1 x4 ∂3 ∂4 + ax1 ∂3 + x2 x4 ∂42 + cx2 ∂4 .
Ce polynôme a ∂3 ∂4 pour monôme de tête et est donc réductible par p4 . Après
multiplication par x3 et retranchement de x1 x4 ∂4 p4 , on aboutit à
ax1 x3 ∂3 + (x2 x3 − x1 x4 )x4 ∂42 + cx2 x3 − (b + 1)x1 x4 ∂4 ,


qui est encore réductible par p4 . Après retranchement de ax1 p4 , on a finalement un


polynôme qui n’est pas réductible par {p1 , . . . , p4 }, à savoir
p5 = (x2 x3 − x1 x4 )x4 ∂42 + cx2 x3 − (a + b + 1)x1 x4 ∂4 − abx1 .


Par ailleurs, les S-polynômes entre les polynômes p2 , p3 et p4 pris deux à deux sont
tous nuls, comme on le vérifie en observant que les xi ∂i commutent deux à deux. En
poursuivant les calculs sur les S-polynômes Spoly(pi , p5 ), on montre que tous ces
derniers se réduisent à 0 par {p1 , . . . , p5 }. On obtient ainsi qu’une base de Gröbner
minimale est {p2 , p3 , p4 , p5 }, avec les monômes de tête respectifs ∂1 , ∂2 , ∂3 et ∂42 .
Le module quotient A/I a donc une base d’espace vectoriel sur C(x1 , . . . , x4 )
constituée de 1+I et ∂4 +I, les classes respectives de 1 et ∂4 modulo I. La structure
de module est donnée explicitement par l’action des ∂i sur ces deux éléments de
base.
Exercice 3. Donner l’expression explicite de cette action en récrivant chaque
∂i · (1 + I) et chaque ∂i · (∂4 + I) sur la base (1 + I, ∂4 + I).
5. LES FONCTIONS ∂-FINIES ET LEURS CLÔTURES 281

Revenons sur les solutions séries du système GKZ. Le polynôme p2 agit sur un
monôme par
p2 · (xλ1 1 · · · xλ4 4 ) = (λ1 − λ4 + 1 − c)xλ1 1 · · · xλ4 4 .
(Notons la distinction entre le produit dans A noté p2 xλ1 1 · · · xλ4 4 et l’opération de p2 ,
ici sur une serie h en x, notée p2 · h ; on comparera par exemple ∂1 x51 = x51 ∂1 + 5x41
et ∂1 ·x51 = 5x41 .) Ainsi, un monôme xλ1 1 · · · xλ4 4 ne peut apparaître avec un coefficient
non nul dans une série φ solution du système GKZ que si λ1 − λ4 + 1 − c est nul.
En poursuivant ce type de raisonnement avec p3 et p4 , on obtient de même les
contraintes λ2 + λ4 + a = 0 et λ3 + λ4 + a = 0 et on aboutit à ce que les seuls
monômes pouvant apparaître avec un coefficient non nul sont de la forme

xc−1

λ4 +c−1 −λ4 −a −λ4 −b λ4 1 x1 x4 4
x1 x2 x3 x4 = a b ,
x2 x3 x2 x3
et une solution φ est nécessairement de la forme
xc−1
 
x1 x4
φ = a1 b f ,
x2 x3 x2 x3
pour une série formelle f en y à exposants entiers relatifs. Reste à exploiter que
φ est solution de p1 , ou de manière équivalente, puisque sous la forme ci-dessus
φ est déjà solution de p2 , p3 et p4 , de p5 . Après avoir évalué en y = x1 x4 /x2 x3 , on a
xa2 xb3 00
 0
0= c−2 p5 · φ = (1 − y)yf (y) + c − (a + b + 1)y f (y) − abf (y).
x1
On reconnaît là l’équation hypergéométrique de Gauss, annulée par la série

X (a)n (b)n y n
f1 = 2 F1 (a, b; c; y) =
n=0
(c)n n!
déjà rencontré en Section 6.1 du Chapitre 26. On vérifie qu’une solution formelle
linéairement indépendante avec f1 est f2 = y 1−c 2 F1 (a − c + 1, b − c + 1; 2 − c; y).
On a ainsi obtenu deux solutions formelles linéairement indépendantes du système
GKZ, φi = xc−1 a b
1 /x2 x3 × fi (x1 x4 /x2 x3 ) pour i = 1 et i = 2.
Pour tout système différentiel représenté par un idéal I de A, un résultat d’ana-
lyse, le théorème de Cauchy–Kovalevskaya, affirme l’existence, au voisinage de tout
point en dehors d’une certaine variété singulière, d’un C-espace vectoriel de so-
lutions analytiques de dimension celle sur C(x) de l’espace vectoriel A/I. Or, on
montre que cette variété singulière est incluse dans le lieu des zéros du produit des
coefficients polynomiaux de tête d’une base de Gröbner de I écrite sans fractions.
Dans le cas de notre exemple, la dimension de A/I est 2 et la variété singulière
est incluse dans le lieu des zéros de x1 · · · x4 (x2 x3 − x1 x4 ). Hors de ce lieu, y n’est
ni nul, ni infini, ni égal à 1, et les fonctions φ1 et φ2 sont donc analytiques puisque,
moyennant quelques hypothèses sur les paramètres a, b et c, les deux séries solutions
de l’équation de Gauss, f1 et f2 , représentent des fonctions analytiques sur C \
{0, 1}. On a donc trouvé un espace de solutions analytiques de dimension 2, et par
le théorème de Cauchy–Kovalevskaya, toutes les solutions analytiques du système
GKZ en dehors de sa variété singulière pour a, b et c génériques.

5. Les fonctions ∂-finies et leurs clôtures


Nous poursuivons maintenant avec le cas particulier important des système
fonctionnels linéaires correspondant à des modules A/I de dimension finie sur C(x).
L’objectif est ici de montrer que pour une algèbre A donnée, leurs solutions, que
nous appellerons « fonctions ∂-finies », forment une algèbre sur C. Nous allons
donner un algorithme pour calculer les clôtures correspondantes. Voici tout de suite
282
27. ALGORITHMES POUR LES FONCTIONS SPÉCIALES DANS LES ALGÈBRES DE ORE

la définition, déjà motivée par les sections et chapitres précédents sur les fonctions
D-finies et les suites P-récursives (en particulier, le Chapitre 8).
Définition (Fonction ∂-finie). Étant donnée une algèbre de Ore (rationnelle)
A = C(x1 , . . . , xr )h∂1 , . . . , ∂r ; σ1 , . . . , σr , δ1 , . . . , δr i
agissant sur un C(x1 , . . . , xr )-espace vectoriel V , un élément f de V est dit ∂-fini
lorsque les conditions équivalentes suivantes sont vérifiées :
1. pour chaque i entre 1 et r, il existe un polynôme Pi = Pi (x1 , . . . , xr , ∂i )
dont l’action annule f ;
2. la famille des ∂ a · f , où ∂ a décrit les monômes de A, engendre un espace
vectoriel de dimension finie sur C(x) ;
3. le module quotient A/I où I note l’idéal annulateur de f pour l’action de A
est un espace vectoriel de dimension finie sur C(x).
Par commodité, nous appellerons « fonctions » les éléments de l’espace vec-
toriel V , ce quand bien même il ne s’agirait pas de fonctions de l’analyse, mais
afin d’éviter la terminologie plus lourde et moins imagée d’« éléments ∂-finis d’un
module sur A ».
Exercice 4. Vérifier l’équivalence entre les trois points de la définition ci-
dessus.
5.1. Méthode du vecteur cyclique et généralisation multivariée. L’al-
gorithme envisagé pour les clôtures des fonctions ∂-finies s’appuie le calcul de vec-
teur cyclique. Rappelons-en l’idée. Classiquement, étant donné un espace vecto-
riel V sur un corps k, sur lequel on suppose donnée une action de k[X], un vec-
teur v ∈ V est dit cyclique si la famille {X i ·v} engendre V comme k-espace vectoriel.
Alors, v engendre V comme k[X]-module. Pour calculer, on suppose que V est de
dimension finie d et que l’action de X est donnée sur une base B = (b1 , . . . , bd )
de V par une matrice M telle que X · w = (a1 , . . . , ad )M tB pour tout vec-
teur w = a1 b1 + · · · + ad bd = (a1 , . . . , ad ) tB. Pour tester si v est cyclique et le
cas échéant rendre explicite la structure de module de V , on range dans une ma-
trice les lignes (a1 , . . . , ad )M i pour 0 ≤ i ≤ m avec m à déterminer et on cherche,
par exemple par l’algorithme de Gauss, une dépendance linéaire entre les lignes de
la matrice obtenue. En procédant successivement avec m = 0, 1, 2, . . . , la première
dépendance linéaire fournit le polynôme minimal de v sous l’action de X sur V ;
son degré m vérifie m ≤ d.
Ce calcul s’étend au cadre commutatif de l’action d’une algèbre k[X] =
k[X1 , . . . , Xr ] de polynômes en plusieurs indéterminées. Chaque Xi correspond alors
à une matrice Mi et la commutativité des Xi dans k[X] induit la commutativité
entre les matrices Mi . Au lieu d’itérer sur les monômes X i par ordre croissant
de i, on itère maintenant sur les monômes X a = X1a1 · · · Xrar selon tout ordre qui
assure qu’un monôme n’est considéré qu’après tous ses diviseurs. Soit a(0), a(1),
etc, l’ordre dans lequel les multi-exposants des monômes sont énumérés. À chaque
étape, on recherche une dépendance linéaire entre des vecteurs
X a(0) · v, . . . , X a(m) · v.
En cas d’échec, on conserve ces m + 1 vecteurs et on reprend la recherche après
avoir ajouté le nouveau vecteur X a(m+1) · v ; en cas de succès, on retire le dernier
vecteur introduit, X a(m) · v, on évite par la suite tous les multiples de ce monôme,
et on introduit le nouveau vecteur X a(m+1) · v pour reprendre la recherche sur la
famille
X a(0) · v, . . . , X a(m−1) · v, X a(m+1) · v.
5. LES FONCTIONS ∂-FINIES ET LEURS CLÔTURES 283

Ce calcul termine si et seulement si le quotient k[X]/I, vu comme k-espace vectoriel,


est de dimension finie. Chaque dépendance linéaire calculée fournit un polynôme P
tel que P (X1 , . . . , Xr ) · v = 0. Lorque l’itération sur les monômes X a suit l’ordre
croissant selon un ordre monomial (admissible), l’ensemble des polynômes annula-
teurs obtenus constitue une base de Gröbner de I pour l’ordre choisi, car l’itération
maintient une famille de X a qui sont tous strictement sour l’escalier, sauf au plus
un élément qui est alors sur l’escalier.

5.2. Algorithmes de clôture des fonctions ∂-finies. Le procédé du vec-


teur cyclique s’étend au cas de l’action d’une algèbre de Ore (rationnelle) en pré-
sence de fonctions ∂-finies. Pour une algèbre de Ore
A = C(x)h∂1 , . . . , ∂r ; σ1 , . . . , σr , δ1 , . . . , δr i,
l’espace vectoriel utilisé est un module du type A/I, vu comme espace vectoriel
sur C(x), ou plutôt un module obtenu à partir de quelques constructions de base
sur des modules de la forme A/I, comme on va le voir sur l’exemple plus bas.
L’espace V étant d’une certaine dimension finie d et une base B = (b1 , . . . , bd ) de V
étant fixée, l’action de chaque ∂i sur un vecteur v = a1 b1 + · · · + ad bd est donnée
par une matrice Mi indépendante de v sous la forme
∂i · v = σi (a1 , . . . , ad )Mi + δi (a1 , . . . , ad ) tB,


en adoptant une notation selon laquelle les σi et δi agissent distributivement sur les
coefficients de vecteurs ou de matrices. Pour le choix particulier v = b` , c’est-à-dire
ai = 1 quand i = ` et ai = 0 sinon, on observe que la `-ième ligne de Mi n’est
autre que le vecteur ligne des composantes de ∂i · b` sur la base B, de sorte que
∂i · tB = Mi (avec enore une notation où ∂i agit distributivement sur les coefficients
du vecteur).
En faisant maintenant agir ∂j et en posant a = (a1 , . . . , ad ), on a

∂j ∂i · v = ∂j · σi (a)Mi + δi (a) tB


= σj σi (a)Mi + δi (a) ∂j · tB + δj σi (a)Mi + δi (a) tB


  

= σj σi (a)σj (Mi ) + σj δi (a) Mj + σj σi (a)δj (Mi ) + δj σi (a)Mi + δj δi (a) tB


 

= σj σi (a)σj (Mi )Mj + σj δi (a)Mj + σj σi (a)δj (Mi ) + δj σi (a)Mi + δj δi (a) tB.




En tenant compte, pour i 6= j de la commutation ∂i ∂j = ∂j ∂i et des commutations


entre endomorphismes et σ-dérivations données par la définition des algèbres de Ore,
on déduit la relation suivante, qui remplace la commutation entre les matrices M`
du cas commutatif,
σj (Mi )Mj + δj (Mi ) = σi (Mj )Mi + δi (Mj ).
(La simplification par σi σj (a) se justifie quand les σ` sont surjectifs.) Lorsque de
telles relations sont assurées, la même méthode de recherche de dépendances li-
néaires par la méthode de Gauss que dans le cas commutatif s’applique et fournit
un calcul de l’addition et du produit de fonctions ∂-finies, ou même d’une expression
polynomiale en des fonctions ∂-finies. Dans la pratique, les matrices Mi sont le plus
souvent obtenues à partir de bases de Gröbner : les b` correspondent à des points
sous un escalier. Plutôt que de faire une présentation formelle de ces algorithmes,
nous en donnons l’idée sur un exemple.
Prenons celui du calcul du produit des deux fonctions f et g en deux variables x
et y, données par f (x, y) = exp(xy) et g(x, y) = Jµ (x + y), où, pour un paramètre µ
complexe, Jµ est la fonction de Bessel de première espèce, solution de l’équation
différentielle
z 2 Jµ00 (z) + zJµ0 (z) + (z 2 − µ2 )Jµ (z) = 0
284
27. ALGORITHMES POUR LES FONCTIONS SPÉCIALES DANS LES ALGÈBRES DE ORE

qui admet à l’origine le développement asymptotique



1 X (−1)n (z/2)2n
Jµ (z) ∼ µ .
2 n=0 n! Γ(n + µ + 1)
Considérons l’algèbre de Ore A = C(µ, x, y)h∂x , ∂y ; id, id, Dx , Dy i, où µ est mainte-
nant un paramètre formel. Des bases de Gröbner des annulateurs I et J dans A de
f et g pour l’ordre lex(∂y , ∂x ) sont respectivement
{∂x − y, ∂y − x} et {(x + y)2 ∂x2 + (x + y)∂x + (x + y)2 − µ2 , ∂y − ∂x }.
On désigne encore maintenant par f et g les vecteurs cycliques générateurs des
modules A/I et A/J, avec un petit abus de notation. Pour pouvoir parler d’un pro-
duit entre ces objets a priori seulement algébriques,
 on introduit l’espace vectoriel
sur C(µ) de base B = f ⊗ g, f ⊗ (∂x · g) , où l’on voit le produit h = f ⊗ g comme
donné par ses coordonnées (1, 0). (Pour mémoire, on peut voir un produit tensoriel
comme un produit bilinéaire sans commutativité : en général, u ⊗ v 6= v ⊗ u, mais,
pour tout λ ∈ C(µ), (λu)⊗v = u⊗(λv) = λ(u⊗v), que l’on note donc par simplicité
λu ⊗ v.) Sur cet espace de base B, qui n’est autre que A/I ⊗ A/J, la dérivée d’un
produit tensoriel est donnée par
∂x · (u ⊗ v) = (∂x · u) ⊗ v + u ⊗ (∂x · v),
ce que l’on peut résumer en ∂x = ∂x ⊗ id + id ⊗∂x , pour des domaines de définitions
adéquats qu’on n’a pas mentionnés. Cette action fait du produit tensoriel A/I ⊗A/J
un nouveau module sur A. Puisque
∂x · (f ⊗ g) = (∂x · f ) ⊗ g + f ⊗ (∂x · g) = yf ⊗ g + f ⊗ (∂x · g)
et
∂x · f ⊗ (∂x · g) = yf ⊗ (∂x · g) + f ⊗ (∂x2 · g)


= yf ⊗ (∂x · g) + (x + y)−2 µ2 − 1 f ⊗ g − (x + y)−1 f ⊗ (∂x · g),




et des relations similaires pour l’action de ∂y , on trouve les matrices


 
y 1
Mx =
(x + y)−2 µ2 − 1 y − (x + y)−1
et
 
x 1
My = .
(x + y)−2 µ2 − 1 x − (x + y)−1
Choisissons d’itérer selon un ordre raffinant le degré total en ∂x et ∂y . On fait
d’abord agir ∂y pour trouver ∂y · h = (1, 0)My + d(1, 0)/dy tB = (x, 1) tB, qui
avec (1, 0) ne constitue pas une famille liée. De même, on trouve ∂x · h = (y, 1) tB,
qui fournit la liaison p1 · h = 0 pour p1 = ∂x − ∂y + (x − y). Pour la suite du calcul,
on exclut alors tous les monômes divisibles par ∂x ; le monôme considéré suivant
est ∂y2 . Son action sur h donne
∂y2 · h = (x, 1)My + d(x, 1)/dy tB = (x + y)−2 µ2 + x2 − 1, 2x − (x + y)−1 tB,
 

et l’on obtient un second annulateur de h,


p2 = (x + y)2 ∂y2 − (x + y)(2x2 + 2xy − 1)∂y + (x + y)(x3 + x2 y + y) − µ2 .
Pour la suite du calcul, on exclut donc tous les monômes divisibles par ∂y2 , si
bien qu’il ne reste plus aucun monôme à considérer. L’idéal annulateur de h est
l’idéal Ap1 + Ap2 , dont {p1 , p2 } est une base de Gröbner pour l’ordre lex(∂y , ∂x ), de
monômes de tête respectifs ∂x et ∂y2 ; le module A/I est donné comme C(x, y)-espace
vectoriel par sa base (1 + I, ∂x + I).
Bibliographie 285

Le calcul qui précède se revisite en abandonnant l’écriture matricielle et en fai-


sant apparaître plus explicitement les calculs de restes modulo une base de Gröbner.
On récrit d’abord ∂y · h sous la forme
∂y · h = (∂y · f ) ⊗ g + f ⊗ (∂y · g) = xf ⊗ g + f ⊗ (∂x · g),
après réductions par les bases de Gröbner pour I et J ; ce vecteur et h constituent
donc une famille linéairement indépendante. On procède ensuite de même pour ∂x ·h,
de façon à avoir
∂x · h = (∂x · f ) ⊗ g + f ⊗ (∂x · g) = yf ⊗ g + f ⊗ (∂x · g);
on retrouve ainsi l’annulateur p1 . Le monôme considéré suivant est ∂y2 , d’action
sur h
∂y2 · h = x2 f ⊗ g + 2xf ⊗ (∂x · g) − (x + y)−2 f ⊗ (x + y)∂x + (x + y)2 − µ2 g;


ce vecteur, h et ∂y · h forment donc une famille linéairement liée, et l’on retrouve


le second annulateur p2 . Le calcul se termine de la même manière.
Pour l’algorithme d’addition, les mêmes idées algorithmiques fonctionnent en
calculant dans la somme directe A/I ⊕ A/J.

Notes
Les clôtures multivariées ont été largement exploitées dans le traitement d’iden-
tités en fonctions spéciales à partir de [4]. L’algorithmisation de ces méthodes s’est
ensuite peu à peu fait jour, d’abord dans le cas différentiel dans [3], puis dans le
cas de polynômes tordus généraux dans [1], où la définition des fonctions ∂-finies a
été posée. La présentation matricielle de la Section 5 nous a paru plus synthétique
que la présentation classique à base de récriture par bases de Gröbner dans [1].
Un autre cadre de bases de Gröbner est disponible pour des algèbres de
Ore polynomiales, de la forme k[x1 , . . . , xr ]h∂1 , . . . , ∂r ; σ1 , . . . , σr , δ1 , . . . , δr i et non
k(x1 , . . . , xr )h∂1 , . . . , ∂r ; σ1 , . . . , σr , δ1 , . . . , δr i. Les ordres monomiaux garantissant
la terminaison d’un algorithme de Buchberger sont alors sujet à plus de contraintes.
Tout ceci est raconté de façon relativement accessible dans [2], d’où est aussi tirée
la Section 4.

Bibliographie
[1] Chyzak (Frédéric) and Salvy (Bruno). – Non-commutative elimination in Ore algebras proves
‌ , August ,
multivariate holonomic identities. Journal of Symbolic Computation, vol. 26, n2
pp. 187–227.
[2] Saito (Mutsumi), Sturmfels (Bernd), and Takayama (Nobuki). – Gröbner deformations of
hypergeometric differential equations. – Springer-Verlag, Berlin, , viii+254p.
[3] Takayama (Nobuki). – An approach to the zero recognition problem by Buchberger algorithm.
Journal of Symbolic Computation, vol. 14, n‌2-3, , pp. 265–282.
[4] Zeilberger (Doron). – A holonomic systems approach to special functions identities. J. Comput.
Appl. Math., vol. 32, n‌3, , pp. 321–368.
CHAPITRE 28

Sommation et intégration symboliques des


fonctions spéciales

Résumé

Dans ce chapitre, nous décrivons un algorithme qui peut se voir comme


une extension de l’algorithme de Zeilberger pour des sommants ∂-finis,
et qui traite dans le même formalisme sommation et intégration. Les
quelques sommes et intégrales suivantes, que nous envisageons de traiter
avec cet algorithme, montrent une variété d’applications qui vont de la
combinatoire à la physique mathématique en passant par la théorie des
fonctions spéciales :
n k
!!3 !
X X n 3n−1 3n n−2 2n
= n2 + 2 − 3n2 ,
j=0
j n
k=0
 
∞ 4u(xy−u(x2 +y 2 ))
X u n exp 1−4u2
Hn (x)Hn (y) = √ ,
n=0
n! 1 − 4u2
1 1
J0 (x)2 + J1 (x)2 + J2 (x)2 + · · · = ,
2 2
Z +1 −px
e Tn (x)
√ dx = (−1)n πIn (p),
−1 1 − x2
Z +∞  2
c − b2
  
2 1 bc
xe−px Jn (bx)In (cx) dx = exp Jn ,
0 2p 4p 2p
Z +∞
ln(1 − a4 )
xJ1 (ax)I1 (ax)Y0 (x)K0 (x) dx = − ,
0 2πa2
n 2 n 2
X qk X (−1)k q (5k −k)/2
= .
(q; q)k (q; q)n−k (q; q)n−k (q; q)n+k
k=0 k=−n

Ici, J, Y , I et K sont des variantes de fonctions de Bessel, qui ap-


paraissent fréquemment pour décrire des modèles physiques à symé-
trie cylindrique ou sphérique ; H et T sont des familles de polynômes
orthogonaux de Hermite et Tchébichev ; (q; q)n représente le produit
(1 − q) · · · (1 − q n ). La première identité intervient dans une discrétisa-
tion d’une question de probabilités sur la position du maximum de trois
variables aléatoires gaussiennes ; la dernière est une variante finie d’une
des identités de Rogers–Ramanujan, en théorie des partitions.

1. Expression du télescopage créatif en termes d’algèbres de Ore


rationnelles
On a déjà exposé dans ce cours la méthode du télescopage créatif, en l’ap-
pliquant à la sommation hypergéométrique définie par une combinaison de l’algo-
rithme de Gosper et d’une idée due à Zeilberger. Cette approche se généralise en
des algorithmes de sommation et intégration pour les suites et fonctions ∂-finies.
287
288 28. SOMMATION ET INTÉGRATION SYMBOLIQUES DES FONCTIONS SPÉCIALES

Rappelons le principe de la méthode. Soit à évaluer une somme paramétrée


b
X
Fn = fn,k .
k=a

En toute généralité, le principe du télescopage créatif est de déterminer une suite


auxiliaire g = (gn,k ) ainsi que des coefficients η0 , . . ., ηr , fonctions de la variable n,
tels que se trouve vérifiée la relation
ηr (n)fn+r,k + · · · + η0 (n)fn,k = gn,k+1 − gn,k .
Ici, nous ne faisons pas plus d’hypothèses sur les ηi et g que celle de pouvoir évaluer
la relation ci-dessus pour tout n quand k décrit les entiers de a à b. Dans ce cas,
une sommation sur k fournit l’égalité
ηr (n)Fn+r + · · · + η0 (n)Fn = gn,b+1 − gn,a .
Si le membre de droite n’est pas déjà nul, on recherche un opérateur annulateur de
ce second membre ; par composition, on obtient une récurrence homogène sur F .
Dans bien des cas, on sait prédire à partir de conditions analytiques sur f la nullité
du terme gn,b+1 − gn,a .
Des algorithmes d’efficacités différentes ont été donnés selon le domaine de
recherche des ηi et de g, et selon le compromis choisi entre efficacité et richesse de
la classe de suites f en entrée. En particulier, l’algorithme de Zeilberger, optimisé
pour une suite f hypergéométrique, revient à rechercher des ηi polynomiaux et une
suite g similaire à f , c’est-à-dire un multiple φf pour une fraction rationnelle φ
en n et k. La suite g = φf devant être une somme indéfinie, la recherche de φ
et des ηi se fait par une variante paramétrée de l’algorithme de Gosper. Notons
que le domaine de recherche de g est l’espace vectoriel C(n, k)f , qui n’est autre,
dans le cas hypergéométrique, que le module engendré par f sur l’algèbre de Ore
A = C(n, k)h∂n , ∂k ; Sn , Sk i. Nous considérons ici la généralisation au cas où f est
une fonction ∂-finie et où le module A · f est un espace vectoriel de dimension finie
sur C(n, k), mais pas forcément de dimension 1. Soit v1 , . . ., vd les éléments d’une
base vectorielle de A·f ; l’algorithme de Zeilberger étendu recherche g sous la forme
indéterminée φ1 v1 + · · · + φd vd , pour des fractions rationnelles φi en n et k. Cette
recherche se fait par une extension ∂-finie de la variante paramétrée de l’algorithme
de Gosper.
Tout ce qui a été dit s’étend au monde différentiel pour l’évaluation d’une
intégrale paramétrée
Z b
F (x) = f (x, y) dy.
a
On cherche alors une relation
∂rf ∂g
ηr (x) r
(x, y) + · · · + η0 (n)f (x, y) = (x, y),
dx dy
qui après intégration fournit l’égalité
Z b
(r)
ηr (n)F (x) + · · · + η0 (n)F (x) = g(x, y) dy.
a

La même méthode permet aussi de traiter des sommations paramétrées continû-


ment,
b
X
F (x) = fk (x),
k=a
2
2. L’ALGORITHME SUR L’EXEMPLE 1
2 J0 (x) + J1 (x)2 + J2 (x)2 + · · · = 1
2 289

et des suites d’intégrales de la forme


Z b
Fn = fn (y) dy.
a

Exercice 1. Formuler la relation entre f et g à rechercher dans ces deux


derniers cas.

1 2 1
2. L’algorithme sur l’exemple 2 J0 (x) + J1 (x)2 + J2 (x)2 + · · · = 2

Nous allons montrer que la famille paramétrée des fonctions de Bessel de pre-
mière espèce, Jν , où chaque Jν est une solution que nous allons préciser de l’équation
de Bessel
x2 y 00 (x) + xy 0 (x) + (x2 − ν 2 )y(x) = 0,
a une somme 21 J0 (x)2 + J1 (x)2 + J2 (x)2 + · · · qui s’évalue à 12 .
L’équation de Bessel et les fonctions de Bessel peuvent être considérées pour
des valeurs complexes du paramètre ν, mais vu la nature de la somme à étudier,
nous nous limiterons dorénavant à des valeurs entières ν ∈ N. En étudiant l’équa-
tion indicielle de l’équation de Bessel, on s’aperçoit qu’il existe pour chaque ν des
solutions dans les séries formelles C[[x]] et que ces solutions constituent un espace
vectoriel de dimension 1 sur C de séries. Une base de ces solutions formelles est
donnée par la série de Bessel

X (−1)n (x/2)2n
Jν (x) = (x/2)ν ,
n=0
n! (n + ν)!
de valuation ν, qui vu la décroissance de ses coefficients est pour chaque entier ν
une série entière.
Exercice 2. Vérifier ces résultats.
On vérifie par simple substitution et évaluation que ces fonctions Jν satisfont
aussi aux relations
xJν0 (x)+xJν+1 (x)−νJν (x) = 0 et xJν+2 (x)−2(ν +1)Jν+1 (x)+xJν (x) = 0.
En introduisant l’algèbre de Ore A = C(ν, x)h∂ν , ∂x ; Sν , id, 0, Dx i où Sν est le dé-
calage avant sur ν et Dx est la dérivation par rapport à x, on a donc un système
d’annulateurs pour J,
p1 = x2 ∂x2 + x∂x + x2 − ν 2 ,
p2 = x∂x + x∂ν − ν,
p3 = x∂ν2 − 2(ν + 1)∂ν + x.
Les deux premiers forment une base de Gröbner de l’idéal engendré pour l’ordre
lex(∂ν , ∂x ) ; les deux derniers pour l’ordre lex(∂x , ∂ν ).
Exercice 3. Pour chacun des idéaux Ap1 + Ap2 et Ap2 + Ap3 , calculer la base
de Gröbner minimale réduite pour chacun des deux ordres lex(∂ν , ∂x ) et lex(∂x , ∂ν ).
Bien évidemment, J est une fonction ∂-finie. Le module A · J est donné, par
exemple, comme l’espace vectoriel sur C(ν, x) de base (J, ∂ν · J). Pour représenter
le carré de J en vue d’une sommation, on peut observer que, en tant  qu’espace
vectoriel, le module A · J 2 admet la base J 2 , J × (∂ν · J), (∂ν · J)2 et utiliser
l’algorithme de clôture par produit pour obtenir une base de Gröbner. En fait, le
calcul qui suit n’a même pas besoin d’une représentation aussi explicite de f = J 2 :
pour calculer la somme 21 J0 (x)2 + J1 (x)2 + J2 (x)2 + · · · comme fonction de x, on
recherche une fonction η de x, indépendante de ν, telle que f 0 + ηf soit la différence
290 28. SOMMATION ET INTÉGRATION SYMBOLIQUES DES FONCTIONS SPÉCIALES

finie en ν d’un élément g de A · J 2 . Pour la suite du calcul, nous fixons cet élément
sous la forme indéterminée donnée par
g(ν) = φ0 (ν)Jν2 + φ1 (ν)Jν+1
2
+ φ2 (ν)Jν Jν+1 ,
où nous avons omis de faire référence à la variable x dans les évaluations de g,
des φi et de J, car cette variable ne va intervenir que comme paramètre dans le
calcul des fractions rationnelles φi . (On peut penser qu’on travaille temporairement
dans l’algèbre de Ore A0 = C(ν, x)h∂ν ; Sν i.)
En supposant le problème résolu, on a alors par construction la relation f 0 +
ηf = (∂ν − 1) · g, puis, après réduction de chaque occurence des dérivées et décalées
de J par la base de Gröbner {p2 , p3 },
2Jν Jν0 + ηJν2 = (∂ν − 1) · φ0 (ν)Jν2 + φ1 (ν)Jν+1
2

+ φ2 (ν)Jν Jν+1
2
2
= φ0 (ν + 1)Jν+1 − φ0 (ν)Jν2 + φ1 (ν + 1)x−2 2(ν + 1)Jν+1 − xJν − φ1 (ν)Jν+1 2

+ φ2 (ν + 1)x−1 Jν+1 2(ν + 1)Jν+1 − xJν − φ2 (ν)Jν Jν+1 ,




laquelle se récrit
2νx−1 + η Jν2 − 2Jν Jν+1


= φ1 (ν + 1) − φ0 (ν) Jν2 − 4(ν + 1)x−1 φ1 (ν + 1) + φ2 (ν + 1) + φ2 (ν) Jν Jν+1


 

+ φ0 (ν + 1) + 4(ν + 1)2 x−2 φ1 (ν + 1) − φ1 (ν) + 2(ν + 1)x−1 φ2 (ν + 1) Jν+1


 2
.
De l’indépendance linéaire des fonctions Jν2 , Jν+1
2
et Jν Jν+1 sur C(ν, x), on déduit
les relations nécessaires
−φ0 (ν) + φ1 (ν + 1) = 2νx−1 + η,
4(ν + 1)x−1 φ1 (ν + 1) + φ2 (ν) + φ2 (ν + 1) = 2,
φ0 (ν + 1) − φ1 (ν) + 4(ν + 1)2 x−2 φ1 (ν + 1) + 2(ν + 1)x−1 φ2 (ν + 1) = 0.
En résolvant les deux premières respectivement en φ0 et en φ1 , puis en substituant
dans la dernière, on trouve la récurrence
x2 (ν + 1)φ2 (ν + 3) − (ν + 1)(4ν 2 + 20ν + 24 − x2 )φ2 (ν + 2)
+(ν +3)(4ν 2 +12ν +8−x2 )φ2 (ν +1)−x2 (ν +3)φ2 (ν) = −4x(ην 2 +4ην +3η +x).
Nous résolvons maintenant celle-ci en ses solutions rationnelles par l’algorithme
d’Abramov, dans sa variante paramétrée qui résoud en φ2 ∈ C(n, ν) et simultané-
ment en η ∈ C. Les coefficients extrêmes de la partie homogène indiquent que toute
solution rationnelle doit être polynomiale, puisque le p. g. c. d. entre (ν − 3) + 1
et ν + 3 vaut 1. La mise sous forme de différences finies de la partie homogène
indique que l’opérateur associé accroît de 2 le degré d’un polynôme. Le degré de la
partie inhomogène étant 2, toute solution rationnelle ne peut être qu’une constante.
On trouve φ2 = 1 et η = 0, d’où après report φ1 = 0 et φ0 = −2ν/x. Autrement
dit, on a
∂x · Jν2 = (∂ν − 1) · Jν Jν+1 − 2νx−1 Jν2 ,


qui par sommation fournit


N
X
Jν2 = JN +1 JN +2 − 2(N + 1)x−1 JN +1 − J0 J1 .

∂x ·
ν=0

Comme la série JN ∈ C[[x]] a valuation N , le membre droit tend vers −J0 J1 =


1 2
2 ∂x · J0 quand N tend vers ∞ pour la topologie usuelle donnée par la métrique
−v
|s| = 2 pour toute série non nulle s de valuation v. On a donc
∂x · 12 J0 (x)2 + J1 (x)2 + J2 (x)2 + · · · = 0

3. BASES DE GRÖBNER DE MODULES ET DÉCOUPLAGE DE SYSTÈMES 291

qui caractérise la somme par une condition initiale. Une simple évaluation en 0
montre que la somme vaut 12 , ce qui achève la preuve de l’identité annoncée.

3. Bases de Gröbner de modules et découplage de systèmes


Dans l’exemple qui précède, on a pour le moment effectué le découplage « à la
main », mais un procédé systématique et automatique est disponible, par le biais des
bases de Gröbner de modules, qui généralisent la notion de base de Gröbner pour les
idéaux. Cette notion existe tant dans le domaine des polynômes commutatifs que
dans le cadre non commutatif des algèbres de Ore ; nous la présentons directement
dans ce second cas.
Dans le cas d’un idéal I d’une algèbre de Ore A, les éléments de I s’inter-
prètent comme autant d’équations vérifiées par une fonction inconnue φ. Dans une
perspective algorithmique, chaque idéal est engendré par un nombre fini de géné-
rateurs. Une question naturelle est celle de systèmes linéaires sur un vecteur de
fonctions inconnues (φ1 , . . . , φd ), à coefficients dans A. On considère des systèmes
d’un nombre fini d’équations de la forme gi = gi,1 · φ1 + · · · + gi,d · φd pour des
polynômes tordus gi,j de A. Un tel système se représente de façon compacte par
une matrice (gi,j ) à entrées dans A. Les questions qui sont alors naturelles sont
celle de l’algèbre linéaire pour ces matrices, dont en particulier celle de donner un
algorithme du pivot de Gauss pour des coefficients dans A, c’est-à-dire non plus
dans un corps, mais dans un anneau, et non commutatif de surcroît.
Pour ce faire, au lieu de considérer simplement un ordre monomial sur les mo-
nômes ∂ a d’une algèbre de Ore A = k(x)h∂; σ, δi, pour lequel tout idéal à gauche
admet une base de Gröbner, on s’intéresse plus généralement à un module libre
de rang fini sur A, donné par une base sous la forme Ad = Ae1 + · · · + Aed et
muni d’un ordre sur les ∂ a ei , dans lequel on va étendre la notion de base de Gröb-
ner pour des sous-modules à gauche de Ad . La notion d’ordre monomial conserve
formellement la même définition, si ce n’est que les ei ne peuvent apparaître que
linéairement dans les monômes ∂ a ei et qu’ils ne peuvent servir pour des multipli-
cations à gauche. La notion de S-polynôme s’étend aussi mot pour mot, à ceci près
que deux polynômes de monômes de tête ∂ a ei et ∂ b ej ont un S-polynôme nul dès
lors que i et j sont différents. Les définitions et caractérisations équivalentes des
bases de Gröbner d’idéaux restent alors valables pour les sous-modules du module
libre Ad . L’algorithme de Buchberger, modifié pour suivre ces nouvelles définitions,
termine sur tout sous-module en fournissant une base de Gröbner. Pour certains
ordres, ce calcul correspond à l’algorithme de Gauss.
Un point de vue presque équivalent, mais qui donne une variante des calculs
avec un peu plus de réductions, est que le calcul est celui d’une base de Gröbner
dans l’anneau A[e1 , . . . , ed ] des polynômes en les indéterminées commutatives ei à
coefficients dans l’anneau A pour l’idéal à gauche engendré par les gi initiaux et
tous les produits ei ej = 0.
Reprenons l’exemple du découplage des relations entre les coordonnées φi don-
nant g dans la section précédente sur la somme des carrés fonctions de Bessel. Ces
relations se recodent par les éléments
g1 := −e0 + ∂ν e1 − (2νx−1 + η)e3 ,
g2 := 4(ν + 1)x−1 ∂ν e1 + (∂ν + 1)e2 − 2e3 ,
g3 := ∂ν e0 + 4(ν + 1)2 x−2 ∂ν − 1 e1 + 2(ν + 1)x−1 ∂ν e2 ,


g4 := (∂ν − 1)e3 ,
du module libre A4 pour l’algèbre de Ore A = C(n, k)h∂n , ∂k ; Sn , Sk i. Ici, chaque ei
représente la fonction rationnelle inconnue φi , et l’on a astucieusement représenté les
292 28. SOMMATION ET INTÉGRATION SYMBOLIQUES DES FONCTIONS SPÉCIALES

second membres de équations inhomogènes d’origine comme multiple d’une nouvelle


inconnue représentée par e3 et contrainte par g4 à être constante.
Le découplage effectué dans la section précédente revient au calcul d’une base
de Gröbner pour l’ordre lex(e0 , e1 , e2 , e3 , ∂ν ). Les monômes de tête respectifs des gi
sont e0 , ∂ν e1 , ∂ν e0 et ∂ν e3 , si bien que le seul S-polynôme non nul est Spoly(g1 , g3 ).
Il est donné par
Spoly(g1 , g3 ) = ∂ν g1 + g3
= ∂ν2 + 4(ν + 1)2 x−2 ∂ν − 1 e1 + 2(ν + 1)x−1 ∂ν e2 − 2(ν + 1)x−1 + η ∂ν e3 .
 

Après réductions par g2 et g3 , ce polynôme devient


x2 − 4ν 2 − 12ν − 8
   
x 2 ν+1 x
g5 = −e1 − ∂ + ∂ν + e2 + − η e3 ,
4(ν + 2) ν 4x(ν + 2) x 2(ν + 2)
qui est adjoint à la base de Gröbner en cours de calcul. L’unique nouvel S-polynôme
à considérer est celui entre ce g5 et g2 , qui est Spoly(g2 , g4 ) = g2 +4(ν +1)x−1 ∂ν g5 et
a pour monôme de tête ∂ν3 e2 . Après réduction par e3 et renormalisation, le dernier
polynôme introduit dans la base de Gröbner est
(ν + 1)x2 ∂ν3 + (ν + 1)(x2 − 4ν 2 − 20ν − 24)∂ν2
− (ν + 3)(x2 − 4ν 2 − 12ν − 8)∂ν − (ν + 3)x2 e2


+ 4 (ν 2 + 4ν + 3)η + x xe3 .


Ce polynôme n’est autre qu’un recodage de l’équation inhomogène du troisième


ordre qui a permis de déterminer φ2 dans la section précédente.

Bibliographie
[1] Chyzak (Frédéric). – An extension of Zeilberger’s fast algorithm to general holonomic functions.
Discrete Mathematics, vol. 217, n‌1-3, , pp. 115–134.
Quatrième partie

Compléments
CHAPITRE 29

Réduction de réseaux et algorithme LLL

Résumé

La recherche de vecteurs courts dans des réseaux de vecteurs à coeffi-


cients entiers permet, en calcul formel, la factorisation en temps poly-
nomial et la recherche de dépendances linéaires entre constantes réelles
données par des approximations, et, dans des domaines plus proches de
la cryptanalyse, la mise en évidence de faiblesses de cryptosystèmes et de
générateurs pseudo-aléatoires. Nous présentons l’algorithme LLL main-
tenant célèbre pour la réduction de réseaux et analysons sa complexité.
Ce texte suit d’assez près mais dans un autre ordre les chapitres 16
et 17 du livre Modern computer algebra de von zur Gathen et Gerhard.

1. Réseaux, vecteurs courts et résultats principaux


Pn
On appelle réseau de Zn un Z-module i=1 Zvi engendré par des vecteurs vi
linéairement indépendants sur Z. Le thème de ce cours est la recherche de vecteurs
« courts » dans un réseau donné : par exemple, le réseau engendré par les vecteurs
(12, 2) et (13, 4) contient le vecteur plus court (1, 2). Ici, court s’entend pour la
norme euclidienne : un vecteur v = (v1 , . . . , vn ) a pour norme kvk = (v12 + · · · +
vn2 )1/2 .
Cette question est motivée par un certain nombre d’applications :
– factorisation en temps polynomial ;
– cassage d’un cryptosystème basé sur le problème du sac-à-dos ;
– mise en évidence de la faiblesse de générateurs pseudo-aléatoires ;
– recherche de dépendances linéaires entre nombres donnés par des approxi-
mations numériques, dont la recherche du polynôme minimal d’un nombre
algébrique.
La deuxième et la dernière de ces applications sont détaillées dans la section qui
suit.
La recherche d’un vecteur de norme minimale dans un réseau donné est un pro-
blème difficile, en fait, même NP-dur. Il est donc naturel de relâcher la contrainte
de minimalité et de considérer le problème de la recherche approchée √ à un fac-
teur constant près, mais le problème de la recherche à un facteur 2 près reste
NP-dur. En revanche, le problème redevient polynomial si on autorise le facteur
d’approximation à croître avec la dimension n du réseau.
De façon précise, on décrit dans la suite l’algorithme LLL, qui pour une base
(v1 , . . . , vn ) d’un réseau L renvoie en particulier un vecteur u approximant les plus
courts vecteur du réseau à pas plus d’un facteur 2(n−1)/2 près :

kuk ≤ 2(n−1)/2 min{ kf k : f ∈ L, f 6= 0 }.

Cet algorithme termine après O(n4 log A) opérations arithmétiques correspondant


à Olog (n5 log2 A) opérations binaires, où la constante A borne chacun des vi . (Seule
la complexité arithmétique est démontrée dans ce qui suit.)
295
296 29. RÉDUCTION DE RÉSEAUX ET ALGORITHME LLL

2. Applications
2.1. Cassage du cryptosystème de Merkle et Hellman. Merkle et Hell-
man ont proposé en 1978 un cryptosystème basé sur le problème du sac-à-dos.
Ce cryptosystème devait nécessiter des calculs moins lourds que le célèbre sys-
tème RSA. Néanmoins, une faiblesse du système reposait sur l’existence d’un vec-
teur court dans un réseau.
L’idée de Merkle et Hellman est la suivante. Bob se dote d’une clé secrète, une
famille d’entiers positifs b1 , . . ., bn , telle que chaque bi soit supérieur à la somme
des précédents. Bob se donne aussi un multiplicateur c et un module m, eux deux
aussi secrets. Il publie la clé privée constituée des restes positifs ai de cbi modulo m.
Quand Alice veut lui envoyer le message constitué de la suite de bits (x1 , . . . , xn ),
elle construit la somme s = x1 a1 + · · · + xn an qui constitue le message crypté. Bob
n’a plus qu’à multiplier par l’inverse de c modulo m et à tester si les bi sont dans
la somme restante (en commençant par les plus grands) pour déterminer les xi .
Le problème sur lequel s’appuie ce cryptosystème, celui du sac-à-dos, consiste
précisément à décider l’existence des xi ∈ {0, 1} tels que s = x1 a1 + · · · + xn an .
Ce problème est NP-complet en l’absence d’hypothèse sur la famille des ai . Mais
dans le cas présent, l’origine des ai crée une faiblesse cryptographique. Considérons
les vecteurs (0, . . . , 0, 1, 0, . . . , 0, −ai ) ∈ Zn+1 , où 1 est en i-ième position, ainsi
que le vecteur (0, . . . , 0, s). Tous ces vecteurs sont « longs », puisque de l’ordre
de m, mais le réseau qu’ils engendrent contient le vecteur (x1 , . . . , xn , 0), lequel est
manifestement très court. L’algorithme LLL qui va suivre permet de le retrouver
en complexité polynomiale.
2.2. Relations de dépendance entre constantes numériques. Étant
donnés n nombres réels non nuls, r1 , . . ., rn , une relation de dépendance linéaire à
coefficients entiers entre ces réels est une relation de la forme
c1 r1 + · · · + cn rn = 0
pour des coefficients ci entiers non tous nuls. Lorsqu’on se donne une approximation
rationnelle de chaque réel ri , ou mieux, la possibilité d’obtenir autant de chiffres
décimaux que souhaité, la recherche des vecteurs courts dans un réseau permet
la détermination de relations de dépendance linéaire entre les ri . Pour cela, on
considère les combinaisons linéaires à coefficients entiers des vecteurs lignes de la
matrice  
1 0 ... 0 a1
0 1 . . . 0 a2 
 
F =
 .. ..  ,
 . . 

0 . . . 0 1 an−1 
0 ... 0 0 an
où chaque ai est une troncature entière de N ri pour un grand entier N . (Par
exemple, N est une grande puissance de 10.)
Un vecteur court est alors de la forme

v = (c1 , . . . , cn−1 , c1 a1 + · · · + cn an ) ' c1 , . . . , cn−1 , N (c1 r1 + · · · + cn rn ) .
En particulier,
|c1 r1 + · · · + cn rn | ' N −1 (c1 a1 + · · · + cn an ) ≤ N −1 |v|
se doit d’être petit, ce qui fait de
c1 r1 + · · · + cn rn = 0
un bon candidat pour une relation de dépendance entre les ri . Bien qu’un tel argu-
ment ne constitue pas une preuve, la preuve formelle de relation entre constantes a
2. APPLICATIONS 297

dans un bon nombre de cas été grandement facilitée une fois que la bonne relation
a pu être découverte expérimentalement par la méthode proposée ci-dessus. Dans
un certain nombre de cas, même, des identités n’ont pu être prouvées que parce
qu’elles avaient été découvertes heuristiquement en utilisant l’algorithme LLL.
Donnons un exemple. Des arguments théoriques donnent la certitude que le
nombre Z ∞√
x ln5 x
V = dx
0 (1 − x)5
peut se représenter comme l’évaluation en π d’une fonction polynomiale à coeffi-
cients rationnels. Il s’agit donc de trouver une dépendance linéaire entre
V, 1, π, . . . , π d
pour un degré de polynôme d à déterminer. Tout système de calcul formel gé-
néraliste connait des approximations pour π et permet de calculer aisément une
approximation numérique de V . On prend donc par exemple a1 = N = 1025 , a2 =
31415926535897932384626434 ' N π, . . ., a9 = 94885310160705740071285755038 '
N π 8 , a10 = −166994737192290704961872433 ' N V pour construire la matrice F .
Les normes des vecteurs lignes de cette matrice sont toutes supérieures à N = 1025 .
Par l’algorithme LLL, on trouve une base du même réseau de vecteurs, dont le
premier vecteur ligne,
v = (c1 , . . . , cn−1 , c1 a1 + · · · + cn an ) = (0, 0, 120, 0, 140, 0, −15, 0, 0, 33),
est de norme inférieure à 200, tous les autres vecteurs de base étant de norme
supérieure à 400. Les ai étant connus, on trouve
(c1 , . . . , cn ) = (0, 0, 120, 0, 140, 0, −15, 0, 0, 24),
d’où la relation linéaire
∞ √
x ln5 x 5π 2
Z
V = dx = (3π 4 − 28π 2 − 24)
0 (1 − x)5 24
qui résout le problème posé.

2.3. Polynôme minimal de nombres algébriques. Un nombre complexe α


est dit algébrique (sur les nombres rationnels) lorsqu’il est solution d’un polynôme P
à coefficients rationnels
P (α) = p0 + · · · + pd αd = 0.
Pour pouvoir utiliser l’approche de la section précédente, on se limite au cas de
nombres réels.
Étant donnée une approximation numérique (réelle) d’un nombre α qu’on a
de bonnes raisons de penser être algébrique, la détermination heuristique de P
peut se voir comme la recherche d’une relation de dépendance linéaire sur des
approximations numériques rationnelles de
1, α, . . . , αd .
Dès lors qu’on a une borne supérieure sur le degré d de P , on peut donc employer
la méthode de la section précédente.
Par exemple, soit à déterminer si un nombre
r ' 0,26625264629019611453024776557584454817650128610395 . . .
est algébrique. Par la méthode esquissée, en testant jusqu’à d = 6 et pour N = 1028 ,
on trouve (à partir de vecteurs lignes de norme supérieure à 1020 ), le vecteur court
v = (−1, 0, 0, 54, 0, 0, −10),
298 29. RÉDUCTION DE RÉSEAUX ET ALGORITHME LLL

de norme inférieure à 55, tous les autres vecteurs calculés étant de norme supérieure
à 5000. En poursuivant avec la méthode, on trouve
(c1 , . . . , c7 ) = (−1, 0, 0, 54, 0, 0, −54),
soit
P = 54X 6 − 54X 3 + 1.
En effet, le nombre r s’avère être une approximation du nombre algébrique
s √
3 1 5 3
α= − .
2 18

3. Le procédé d’orthogonalisation de Gram–Schmidt


L’algorithme LLL aura fort à voir avec le procédé d’orthogonalisation de Gram–
Schmidt qui, partant d’une base (f1 , . . . , fn ) d’un espace vectoriel sur Q, calcule
une base orthogonale du même espace vectoriel.
Le contexte de cette méthode est celui de l’espace vectoriel Qn muni du produit
scalaire euclidien (a, b) 7→ (a|b) = a1 b1 + · · · + an bn qui a servi à définir la norme eu-
clidienne par kak2 = (a|a). Rappelons que les vecteurs a et b sont dits orthogonaux
lorsque leur produit scalaire est nul et que l’orthogonal d’un ensemble S ⊂ Qn est
l’ensemble noté S ⊥ des vecteurs orthogonaux à tous les éléments de S. On intro-
duit les espaces vectoriels emboîtés Ui = Qf1 ⊕ · · · ⊕ Qfi . La projection orthogonale
sur Ui est le projecteur linéaire sur Ui parallèlement à Ui⊥ . On définit alors fi∗
comme la projection orthogonale de fi sur Ui⊥ (donc parallèlement à Ui⊥ ⊥ , qui
n’est autre que Ui ).
Les considérations qui précèdent définissent uniquement les fi∗ à partir des fi
et des Ui ; pour le calcul, on détermine les fi∗ pour des i successifs par les formules
i−1
X (fi |fj∗ )
fi∗ = fi − µi,j fj∗ où µi,j = ,
j=1
(fj∗ |fj∗ )
où µi,j est ajusté à l’unique valeur convenable pour avoir orthogonalité entre fi∗
et fj∗ quand i > j.
Après avoir posé µi,i = 1 et µi,j = 0 quand i < j, on obtient une matrice
 
1 0
M = (µi,j ) = 
 .. .

.
µi,j 1
vérifiant la relation  ∗  
f1 f1
 ..   .. 
M  .  =  . .
fn∗ fn
En particulier, les espaces vectoriels sur Q engendrés par les fi d’une part et par
les fi∗ d’autre part sont les mêmes.
Soit maintenant un vecteur non nul f du réseau engendré par les fi , qui s’écrit
donc f = λ1 f1 + · · · + λn fn pour des entiers λi non tous nuls. En passant au carré
de la norme et en utilisant le théorème de Pythagore, on a
n  2
X n
kf k2 = λ2i kfi∗ k2 ≥ kfk∗ k2 ≥ min kfj∗ k
j=1
i=1

dès lors que λk 6= 0, car alors λ2k ≥ 1.


À ce stade, nous aurions trouvé des vecteurs parmi les plus courts, si ce n’est
que les fi∗ sont généralement éléments de l’espace vectoriel engendré par les fi (avec
4. L’ALGORITHME LLL 299

des coefficients rationnels), mais hors du réseau engendré par les même fi (avec des
coefficients entiers). Il n’en reste pas moins que l’algorithme LLL qui va suivre
s’appuie sur l’orthogonalisation de Gram–Schmidt de façon à contrôler des trans-
formations de la base du réseau, car, à un niveau intuitif, plus une base de réseau
est « orthogonale », plus elle est à même de contenir un vecteur court. Cette heu-
ristique se justifie par la notion de déterminant d’un réseau : étant donné une base
(f1 , . . . , fn ) d’un réseau, le déterminant de cette famille, c’est-à-dire le déterminant
de la matrice F = (fi,j ) obtenue en plaçant les vecteurs lignes fi = (fi,1 , . . . , fi,n )
les uns au dessus des autres, est, au signe près, invariant par changement de base.
En effet, soit (g1 , . . . , gn ) une autre base du même réseau et G = (gi,j ) la matrice
associée, avec des notations évidentes ; il existe alors une matrice U à coefficients
entiers, admettant un inverse à coefficients entiers, telle que F = U G. En pas-
sant aux déterminants, on a que det U vaut 1 au signe près, donc que F et G ont
même déterminant au signe près. Toujours au signe près, ce déterminant n’est autre
que le volume du parallèloïde construit en s’appuyant sur les fi . Les côtés de ce
parallèloïde sont d’autant plus courts que ce parallèloïde est orthogonal.
Une base (f1 , . . . , fn ) d’un réseau est dite réduite lorsque les images fi∗ des fi
par le procédé d’orthogonalisation de Gram–Schmidt ont la propriété que kfi∗ k2 ≤

2kfi+1 k2 pour tout i entre 1 et n−1. En particulier, fi∗ n’est dans ce cas pas plus de
2 (i−1)/2
fois plus petit que f1∗ , c’est-à-dire que f1 . Il s’ensuit que pour tout vecteur
non nul f du réseau, les inégalités suivantes sont vérifiées :
n n
kf k ≥ min kfj∗ k ≥ min 2−(j−1)/2 kf1 k ≥ 2−(n−1)/2 kf1 k.
j=1 j=1

Autrement dit, le premier élément d’une base réduite est un vecteur court, au sens
où pour tout f non nul du réseau
kf1 k ≤ 2(n−1)/2 kf k.

4. L’algorithme LLL
L’algorithme qui suit a été introduit par Lenstra, Lenstra et Lovász en 1982
dans l’objectif de réaliser la factorisation de polynômes d’une variable à coefficients
entiers en complexité arithmétique polynomiale. Pour un réel x, on note dxc l’entier
de plus proche de x (par défaut, l’entier immédiatement inférieur si x est un demi-
entier).

Algorithme : LLL
Entrée : f1 , . . ., fn , des vecteurs de Zn engendrant un réseau
Sortie : g1 , . . ., gn , des vecteurs de Zn constituant une base réduite du même
réseau
Complexité : O(n4 log A) opérations arithmétiques et O(n5 log2 A) opérations
binaires, où A = maxni=1 kfi k
1. initialiser gi à fi pour chaque i de 1 à n
2. calculer l’orthogonalisation de Gram–Schmidt (gi∗ ) de (gi ), ainsi que la
matrice M des µi,j telle que M t (g1∗ , . . . , gn∗ ) = t (g1 , . . . , gn )
3. pour i à partir de 2, tant que i ≤ n, faire

(a) pour j de i − 1 à 1, remplacer gi par gi − dµi,j cgj et réaliser la même


transformation sur les lignes de M

(b) si i ≥ 2 et si kgi−1 k2 > 2kgi∗ k2 ,

(i) échanger gi−1 et gi


300 29. RÉDUCTION DE RÉSEAUX ET ALGORITHME LLL


(ii) recalculer gi−1 et gi∗ et les lignes correspondantes de M par le
procédé de Gram–Schmidt
(iii) décrémenter i
sinon incrémenter i
4. renvoyer (g1 , . . . , gn )

Traitons l’exemple donné par les deux vecteurs f1 = (12, 2) et f2 = (13, 4)


de Z2 . Après les étapes (1) et (2), on a la relation
    
1 0 12 2 12 2
41 11 66 = .
37 1 − 37 37 13 4
Comme d 4137 c = 1, la transformation (de réduction) de l’étape (3)(a) revient à des
1 0

multiplications à gauche par la matrice −1 1 et transforme la relation matricielle
ci-dessus en     
1 0 12 2 12 2
4 = .
37 1 − 1137
66
37 1 2
Les normes à considérer vérifient kg1∗ k2 = 4 × 37 > 2kg2∗ k2 = 2 × 112 /37, ce
qui provoque un échange en (3)(b)(i) avec recalcul en (3)(b)(ii) par le procédé de
Gram–Schmidt, et fournit la nouvelle relation matricielle
    
1 0 1 2 1 2
16 = .
5 1 445 − 22
5 12 2
Comme d 16 5 c = 3, une nouvelle transformation (de réduction) à l’étape (3)(a) re-
1 0

vient à des multiplications à gauche par la matrice −3 1 et transforme la relation
matricielle ci-dessus en
    
1 0 1 2 1 2
1 = .
5 1 44 5 − 22
5 9 −4
Comme kg1∗ k2 = 5 ≤ 2kg2∗ k = 2 × 112 × 4, l’algorithme termine en renvoyant
g1 = (1, 2) et g2 = (9, −4).

5. Preuve de l’algorithme LLL


Nous développons maintenant des invariants et des variants de l’algorithme qui
permettent de montrer la correction et la terminaison de l’algorithme, puis une
borne polynomiale sur sa complexité arithmétique.

5.1. Correction. À l’entrée de la boucle (3), la base de réseau (gi ) et


son orthogonalisée (gi∗ ) par la méthode de Gram–Schmidt vérifient la relation
M t (g1∗ , . . . , gn∗ ) = t (g1 , . . . , gn ). Observons d’abord que cet invariant reste respecté
à chaque sortie du corps de boucle. Il est immédiat que la relation matricielle reste
vérifiée après la transformation de l’étape (3)(a) ; montrons que, pour λ quelconque
et tout j < i, le remplacement de gi par gi − λgj et de chaque µi,k par µi,k − λµj,k
quand 1 ≤ k ≤ j fait de la nouvelle famille des gi∗ l’orthogonalisée de la nouvelle
famille des gi . (Dans l’algorithme, on choisit λ = dµi,j c.) Puisque la famille d’es-
paces emboîtés Qg1 ⊕ · · · ⊕ Qgk , d’une part, et celle des Qg1∗ ⊕ · · · ⊕ Qgk∗ , d’autre
part, n’ont pas changé, il suffit pour cela de vérifier que le nouveau gi∗ vérifie bien
sa définition. En termes des anciennes valeurs, ceci se résume, pour j < i, à vérifier
la relation
Xi−1 i−1  j 
∗ ∗
 X  ∗ X

gi = gi − µi,k gk = gi − λgj − µi,k − λµj,k gk + λ gj − µj,k gk .
k=1 k=1 k=1
5. PREUVE DE L’ALGORITHME LLL 301

La dernière parenthèse étant nulle, l’invariant recherché reste préservé par la trans-
formation (3)(a). Quand à l’étape (3)(b), on observe de nouveau que la famille
d’espaces emboîtés Qg1 ⊕ · · · ⊕ Qgk , d’une part, et celle des Qg1∗ ⊕ · · · ⊕ Qgk∗ , d’autre
part, ne sont pas perturbées par l’échange (3)(b)(i), sauf peut-être pour k = i

ou k = i − 1. C’est pourquoi l’algorithme recalcule explicitement gi−1 puis gi∗ par
les formule de Gram–Schmidt pour restaurer l’invariant.
Un second invariant respecté par la même boucle (3) est la suite d’inégalités
kg1∗ k2 ≤ 2kg2∗ k2 , . . ., kgi−2

k2 ≤ 2kgi−1∗
k2 . Cet invariant se réduit en effet à une
absence de contraintes à l’entrée de la boucle (3), pour i = 2. Puis, la stratégie
de l’étape (3)(b) est de simplement incrémenter i si la suite d’inégalité peut se

prolonger par kgi−1 k2 ≤ 2kgi∗ k2 , ou au contraire de décrémenter i lorsque gi−1∗
est
modifié.
Ainsi, si une exécution de l’algorithme sort de la boucle (3), la base (gi ) est
réduite, ce qui prouve la correction de l’algorithme.

5.2. Terminaison. Pour montrer que l’algorithme termine, on va montrer


que l’échange et la mise à jour (3)(b)(i–ii), seule étape qui modifie les gi∗ , les réduit
en norme, et réduit dans le même temps une grandeur entière positive associée
aux carrés des normes kgi k2 . Le nombre d’échange ne pourra donc être que fini. Un
invariant entre nombre d’incrémentations et de décrémentations dans l’étape (3)(b)
montre alors la terminaison de la boucle (3), et donc de l’algorithme.

Pour un passage dans l’étape (3)(b) avec i ≥ 2 et kgi−1 k2 > 2kgi∗ k2 , notons

(hk ) la base du réseau obtenue après l’échange (3)(b)(i) et (hk ) l’orthogonalisée de
Gram–Schmidt obtenue après le recalcul (3)(b)(ii). On a hi = gi−1 , hi−1 = gi , et
hk = gk sinon. De même, on a les égalités entre espaces vectoriels Qg1 ⊕ · · · ⊕ Qgk =
Qh1 ⊕ · · · ⊕ Qhk , sauf pour k = i − 1. Ainsi, les vecteurs orthogonalisés h∗k et gk∗
sont égaux, sauf peut-être pour k = i et k = i − 1. Posons U = Qg1 ⊕ · · · ⊕ Qgi−2 .
Par la définition du procédé d’orthogonalisation de Gram–Schmidt, on a d’abord
gi = hi−1 = h∗i−1 + u1 pour u1 ∈ U , et aussi gi = gi∗ + µi,i−1 gi−1∗
+ u2 pour u2 ∈ U .
Comme u1 et u2 sont les projetés orthogonaux du même vecteur orthogonalement
à U , ils sont égaux, de même que h∗i−1 et gi∗ + µi,i−1 gi−1

. En passant aux carrés des
∗ 2 ∗ 2 2 ∗ 2 ∗ ∗
normes, on obtient khi−1 k = kgi k +µi,i−1 kgi−1 k < kgi−1 k2 /2+(1/2)2 kgi−1 k2 , où
on a utilisé l’hypothèse que le test en (3)(b) a été positif et le fait que l’étape (3)(a)
a forcé la relation µi,i−1 ≤ 1/2. En résumé, kh∗i−1 k2 < 3kgi−1 ∗
k2 /4. Par la même
méthode, en considérant des projections orthogonales de gi−1 sur U 0 = U ⊕ Qgi−1 ,
on montre la relation kh∗i k ≤ kgi∗ k.
Notons Gi la matrice obtenue en superposant les i premiers vecteurs g1 , . . .,
gi , et G∗i celle obtenue à partir des gk∗ correspondants. La matrice de Gram des
vecteurs g1 , . . ., gi est la matrice de taille i × i dont l’entrée (u, v) est le produit
scalaire (gu |gv ). C’est donc une matrice de Zi×i , qui s’exprime aussi Gi t Gi . Puisque
le bloc Mi de taille i × i en haut à gauche dans la matrice M est encore trigonal
avec des 1 sur la diagonale, donc de déterminant 1, on a
di = det(Mi G∗i t G∗i t Mi ) = det(Mi ) det(G∗i t G∗i ) det(t Mi ) = kg1∗ k2 . . . kgi∗ k2 .
Ce nombre est donc un entier strictement positif.
Le variant qui va s’avérer adéquat est le produit D = d1 . . . dn−1 , de nouveau
un entier strictement positif. Ce nombre est divisé par au moins 4/3 à chaque
échange aux étapes (3)(b)(i–ii), tout en restant entier strictement positif. Il ne peut
donc y avoir qu’un nombre fini d’échanges lors d’une exécution de l’algorithme
LLL. Considérons les nombres e d’échanges en (3)(b)(i) et v de passages en (3)(b)
avec un test négatif effectués depuis le début d’une exécution de l’algorithme. En
observant ces valeurs à chaque entrée de la boucle (3), on a l’invariant i = 2 − e + v.
Chaque passage dans la boucle incrémente l’un ou l’autre de ces deux nombres.
302 29. RÉDUCTION DE RÉSEAUX ET ALGORITHME LLL

Mais comme le nombre e ne peut croître indéfiniment, le nombre v doit ultimement


ne plus cesser de croître, et i avec, ce jusqu’à la valeur i = n + 1 qui provoque la
fin de la boucle (3). L’algorithme termine donc.
5.3. Complexité arithmétique. Au début de l’algorithme, le nombre D qui
vient d’être introduit pour montrer la terminaison vaut
D0 = kg1∗ k2(n−1) kg2∗ k2(n−2) . . . kgn−1

k2 .
Mais chaque gi∗ étant alors une certaine projection de l’entrée fi , on a
D0 ≤ kf1 k2(n−1) kf2 k2(n−2) . . . kfn−1 k2 ≤ An(n−1) .
Après e échanges en (3)(b)(i), on a l’encadrement 1 ≤ D ≤ (3/4)e D0 , d’où la borne
supérieure n(n − 1) log4/3 A sur e.
Notons efinal et vfinal les valeurs finales de e et v. On vient de prouver la rela-
tion efinal = O(n2 log A) ; par ailleurs l’invariant sur i donne n+1 = 2−efinal +vfinal ,
d’où vfinal = O(n2 log A). Comme l’orthogonalisation initiale se fait en O(n3 ) opéra-
tions arithmétiques et que chacune des étapes (3)(a) et (3)(b)(i–ii) se fait en O(n2 )
opérations arithmétiques, la complexité arithmétique totale de l’algorithme LLL est
O(n3 ) + (efinal + vfinal )O(n2 ) = O(n4 log A).
La borne sur la complexité en bits est réellement plus technique et n’est pas
présentée ici. L’idée de la preuve est que les entiers utilisés dans l’algorithme ne
dépassent pas la taille O(n log A). La borne annoncée n’est ensuite que le produit
de la borne sur la complexité arithmétique par cette borne sur les entiers utilisés.
CHAPITRE 30

Factorisation des polynômes

1. Introduction
Le but de la dernière partie du cours est de montrer comment factoriser des po-
lynômes dans Z[X]. Pour factoriser un polynôme F à coefficients entiers, la majorité
des algorithmes actuels procèdent ainsi :
1.: Factorisation de F mod p dans Z/pZ[X], p étant un nombre premier.
2.: Remontée de Hensel, pour passer à une factorisation modulo une puissance
suffisante de p.
3.: Recombinaison (par recherche exhaustive ou réduction de réseau) pour
retrouver les « vrais » facteurs, c’est-à-dire ceux sur Z.

Le mieux est de donner un exemple : soit F = x4 − 2x3 + 9x2 − 8x + 20. Modulo


p = 5, on a
F ≡ x(x + 1)(x + 3)(x + 4) mod 5.
Ensuite, on obtient successivement
– F ≡ (x + 10)(x + 11)(x + 13)(x + 14) mod 52
– F ≡ (x + 260)(x + 261)(x + 363)(x + 364) mod 54
– F ≡ (x + 220885)(x + 220886)(x + 169738)(x + 169739) mod 58 .
58
On renormalise tous les coefficients entre -195312 et 195312 (ici, 195312 = 2 ) :
F ≡ (x − 169740)(x − 169739)(x + 169738)(x + 169739) mod 58
≡ f1 f2 f3 f4 mod 58 .
En effectuant toutes les combinaisons possibles, on constate que
f2 f4 ≡ x2 + 4 mod 58 et f1 f3 ≡ x2 − 2x + 5 mod 58 .
Voilà la factorisation.
Dans le cours présent, on s’intéresse à la première partie, la factorisation dans
un corps fini. Il existe quantité d’algorithmes pour cette question, probabilistes ou
déterministes. Après quelques rappels / compléments sur les corps finis, on présente
l’algorithme de Berlekamp, algorithme « classique » (et déterministe) pour cette
question.

2. Corps finis, quelques rappels


Préliminaires : groupes commutatifs finis, arithmétique. Soit G un groupe com-
mutatif fini, noté multiplicativement (dans la suite, G sera le groupe K − {0}, K
étant un corps fini). On appelle ordre d’un élément a de G le plus petit entier positif
(non nul) ω tel que aω = 1. On utilisera dans la suite les résultats suivants :
Lemme 1. L’ordre de tout élément divise le cardinal |G| de G, et donc a|G| = 1
pour tout a de G.
303
304 30. FACTORISATION DES POLYNÔMES

Démonstration. L’ensemble des puissances de a est un sous-groupe de G, de


cardinal ω. On utilise alors le théorème de Lagrange, qui dit que le cardinal d’un
sous-groupe de G divise |G|. 
Le résultat suivant n’est pas bien difficile non plus ; n’importe quel cours sur la
théorie des groupes se doit d’en donner une preuve.
Lemme 2. Soit Ω le ppcm des ordres des éléments de G. Alors, il existe un
élément d’ordre Ω ; en particulier, Ω divise |G|.
Enfin, on utilisera le résultat arithmétique suivant.
Lemme 3. Soit p, m, n trois entiers positifs, avec p > 1. Si pm − 1 divise pn − 1
alors m divise n.
Démonstration. L’hypothèse dit que pn ≡ 1 modulo pm − 1. On pose n =
qm + r, avec 0 ≤ r < m. Modulo pm − 1, on a donc pr ≡ pn , donc pr ≡ 1. Puisque
r < m, on a donc pr = 1 et r = 0. 

Corps finis. L’exemple le plus simple de corps fini est un quotient de la forme
Z/pZ, où p est un nombre premier, et on le note à l’anglaise Fp .
Soit ensuite P un polynôme irréductible de Fp [X], de degré d. Alors, K =
Fp [X]/P est également un corps ; puisque 1, X, . . . , X d−1 forment une base de K
comme espace vectoriel sur Fp , le cardinal de K est q = pd .
Proposition 1. Soit K un corps fini à q éléments. Pout tout a dans K − {0},
on a aq−1 = 1 ; par suite, on a
Y
Xq − X = (X − a).
a∈K

Démonstration. Soit alors a non nul dans K. Le corps K ayant cardinal q,


K −{0} est un groupe fini de cardinal q −1, donc aq−1 = 1 (Lemme 1). On en déduit
que aq = a pout tout a de K, nul ou pas. Q Ceci montre que le polynôme Xq − X
q
s’annule sur les q éléments de K, donc a∈K (X − a) divise X − X. Comme les
deux polynômes sont unitaires et de même degré, ils sont égaux. 
p

Corollaire 1. Pour tout i = 1, . . . , p − 1, le coefficient binomial i vaut zéro
modulo p.
Démonstration. Rappelons que ce coefficient est le coefficient de X i dans
(X + 1)p . La proposition précédente entraîne les égalités
Xp − X =
Q
(X − a)
Qa∈Fp
= (X − a + 1)
Qa∈Fp
= a∈Fp ((X + 1) − a)
= (X + 1)p − (X + 1).
On en déduit que (X + 1)p = X p + 1, qui est ce que l’on voulait montrer. 
Le corollaire suivant est, d’une manière ou d’une autre, à la base de la plupart
des résultats « arithmétiques » sur les corps finis.
Corollaire 2. Soit P un polynôme quelconque dans Fp [X] et soit K le quo-
tient Fp [X]/P (qui n’est pas nécessairement un corps). L’application
K → K
φ:
a 7 → ap
est Fp -linéaire.
3. PARTIE SANS CARRÉ ET DÉCOMPOSITION SANS CARRÉ 305

Démonstration. Soient λ dans Fp et a, b dans K. L’égalité φ(λa) = λφ(a) est


une conséquence de la Proposition 1, appliquée à Fp . L’égalité φ(a+b) = φ(a)+φ(b)
est une conséquence du corollaire précédent (développer le produit (a + b)p ). 
Voyons quelques conséquences de ce corollaire.
Proposition 2. Pour tous q0 , . . . , qn dans Fp , on a
!p
X X
i
qi X = qi X ip .
i i

Démonstration. Conséquence facile de la Proposition 1 et du Corollaire 1.



Le résultat suivant n’est pas utilisé dans l’algorithme de Berlekamp, mais on
s’en servira ultérieurement (phase « Distinct Degree Factorization » d’algorithmes
probabilistes).
n
Proposition 3. Pour n > 0, le polynôme X p −X est le produit des polynômes
unitaires et irréductibles de Fp [X] dont le degré divise n.
Démonstration. Soit P un polynôme irréductible de degré m, avec m | n, et
soit K le quotient Fp [X]/P ; on se rappelle que |K| = pm . Soit ensuite x la classe
m m
de X dans K ; la Proposition 1 appliquée à x montre que xp −1 = 1 donc xp = x,
n n
d’où on déduit xp = x. Donc P divise X p − X.
Réciproquement, soit P un polynôme irréductible de degré m tel que P divise
n
X p − X ; on veut montrer que m divise n. Soit K le quotient K = Fp [X]/P et soit
n
x l’image de X dans K. Puisque P (x) = 0, xp − x est nul. On en tire que pour
tous λi dans Fp , on a les égalités :
n n
( i λi xi )p = Pi λi (xi )p
P P
n
= Pi λi (xp )i
i
= i λi x ,
la première égalité s’obtenant en appliquant n fois le Corollaire 2. Donc tout élément
n
de K est racine de X p − X, de sorte que tout élément non nul de K est racine de
n
X p −1 − 1.
Soit maintenant Ω l’exposant du groupe K − {0} ; d’après le Lemme 2, Ω divise
|K − {0}| = pm − 1. Par ailleurs, par définition, tout élément non nul de K annule
X Ω − 1, donc Ω est plus grand que pm − 1 : Il s’en suit que Ω = pm − 1. Le Lemme 2
montre alors qu’il existe un élément α d’ordre pm − 1 dans K − {0}.
n
On a vu que αp −1 = α ; on en déduit que pm − 1 divise pn − 1. Le Lemme 3
permet de conclure que m divise n.
n
À ce stade, on sait donc que les facteurs irréductible de X p −X sont exactement
les polynômes irréductibles de degré divisant n. Il reste à montrer qu’il n’y a pas
n
de facteur multiple. Pour cela, il suffit de constater que la dérivée de X p − X
n
vaut −1, et en particulier que son pgcd avec X p − X vaut 1. On utilise ensuite la
Proposition 4. 

3. Partie sans carré et décomposition sans carré


Une première étape des algorithmes de factorisation est souvent de se ramener
à un polynôme sans facteurs multiples, que l’on appellera ici polynômes sans carré.
Pour cette question, on peut distinguer deux niveaux de raffinement, illustrés
sur un exemple : soit par exemple
P = (X + 1)(X + 2)(X + 3)2 (X + 4)2 (X + 5)3 (X + 6)3 ,
306 30. FACTORISATION DES POLYNÔMES

sur un corps dans lequel 1, 2, 3, 4, 5 et 6 sont tous distincts. La partie sans carré de
P sera le produit où on a « supprimé » toutes les multiplicités, c’est-à-dire
(X + 1)(X + 2)(X + 3)(X + 4)(X + 5)(X + 6).
La décomposition sans carré va plus loin, et sépare les facteurs selon leur multipli-
cité. Ici, elle donne donc :
[(X + 1)(X + 2), 1], [(X + 3)(X + 4), 2], et [(X + 5)(X + 6), 3].
On voit bien que le calcul de décomposition sans carré est l’amorce de la factorisa-
tion ; en outre, c’est un calcul sensiblement plus facile que celui de la factorisation.
En effet, on va voir plus bas un algorithme de calcul de la partie sans carré,
de complexité essentiellement linéaire en le degré, qui repose uniquement sur des
calculs de pgcd bien choisis.
Il n’est pas difficile d’en déduire un algorithme pour la décomposition sans
carré : on divise P par sa partie sans carré, on calcule la partie sans carré du
résultat, etc . . . Ce faisant, on n ’est plus en complexité linéaire, ce qui n’est pas
très bon ; il est possible de faire mieux, et de rester essentiellement linéaire, en
utilisant un algorithme dû à Yun, que je ne donnerai pas ici faute de temps.

Polynômes sans carrés. Soit P un polynôme de Fp [X]. On dit que P est sans
carré s’il n’existe pas de polynôme Q de Fp [X] tel que Q2 divise P .
Lemme 4. Soit P dans Fp [X]. La dérivée P 0 vaut 0 si et seulement si P s’écrit
sous la forme Qp .
Démonstration. Si P = Qp , on a bienPP 0 = pQ0 Qp−1 = 0. Réciproquement,
on voit que si P 0 = 0, P est de la forme P = i qi X pi , qui est une puissance p-ième
d’après la Proposition 2. 
Proposition 4. P est sans carré si et seulement si pgcd(P, P 0 ) = 1.
Démonstration. Écrivons la factorisation en irréductibles de P :
P = P1a1 · · · Psas ,
où tous les ai sont ≥ 1. En dérivant, on obtient
X P
P0 = ai Pi0 .
i
Pi
Si P admet un facteur carré, il existe au moins un ai ≥ 2, pour lequel Pi divise
P P 0 0
Pi . Alors, Pi divisant tous les autres Pj , il divise P , de sorte que pgcd(P, P ) est
différent de 1.
Pour la réciproque, on note pour commencer que les Pi étant irréductibles,
leurs dérivées ne sont pas nulles (proposition précédente). Supposons que alors
pgcd(P, P 0 ) est différent de 1. Alors, il existe un Pi qui divise P 0 . Puisqu’il divise
tous les autres PPj , il divise ai Pi0 PPi .
Puisque Pi0 est non nul, Pi ne peut pas le diviser (raison de degré), donc Pi
divise ai PPi . Si ai est non nul, Pi divise PPi , donc Pi2 divise P , et on a fini. Si ai
est nul (dans Fp ), cela signifie que p divise ai dans N, donc ai ne vaut pas 1 ; à
nouveau, on a fini. 

Décomposition et partie sans carré. Soit toujours P dans Fp [X], et écrivons sa


factorisation en irréductibles :
P = P1a1 · · · Psas .
3. PARTIE SANS CARRÉ ET DÉCOMPOSITION SANS CARRÉ 307

On regroupe alors les Pi apparaissant avec des exposants similaires. On note ainsi
Q1 le produit des Pi apparaissant à la puissance 1, Q2 le produit des Pi apparaissant
à la puissance 2, . . . Qs le produit des Pi apparaissant à la puissance s. Il est alors
possible de réécrire P sous la forme :
(1) P = Q1 Q22 · · · Qss .
Attention il est possible que certains Qi soient égaux à 1. Par ailleurs, tous les Qi
sont sans carré, et ils sont tous premiers entre eux deux à deux.
On appelle décomposition sans carré de P la donnée des polynômes Q1 , . . . , Qs ,
et partie sans carré de P le produit Q1 · · · Qs ; il s’agit manifestement d’un polynôme
sans carré.
Proposition 5. Si p est plus grand que s, alors la partie sans carré de P est
P/pgcd(P, P 0 ).
Démonstration. En dérivant P = Q1 Q22 · · · Qss , on obtient
P 0 = Q2 · · · Qs−1
 0
s (Q1 Q2 · · · Qs + · · · + sQ1 · · · Qs−1 Q0s ) .
Les Q0i ne sont pas nuls (car les Qi sont sans carré). Puisque 1, . . . , s ne sont pas
nuls modulo p, le membre de droite est donc premier avec tous les Qi , donc avec
P . Le pgcd de P et P 0 est donc Q2 · · · Qss−1 , ce qui donne le résultat. 
Si p est plus petit que (ou égal à) s, il est possible que ce résultat soit pris
en défaut : dans F2 [X], on a X 2 + 1 = (X + 1)2 et (X 2 + 1)0 = 0. Dans ce cas,
P/pgcd(P, P 0 ) vaut 1, alors que la partie sans carré est X + 1.
La proposition suivante précise ce type de comportement.
Proposition 6. Le quotient P/pgcd(P, P 0 ) vaut
Y
Qi .
i non multiple de p

Démonstration. En reprenant la preuve précédente, on voit que le pgcd de


P et P 0 vaut (Q2 · · · Qs−1
s ) multiplié par
Y
Qi .
i multiple de p


Il reste cependant possible d’obtenir les parties manquantes par calcul de pgcd.
Proposition 7. Soient n le degré de P , U = pgcd(P, P 0 ) et V = P/U . Soit
ensuite W = pgcd(U, V n ). Alors U/W vaut
Y
Qii .
i multiple de p

Démonstration. D’après la proposition précédente, V n vaut


Y
Qni ,
i non multiple de p

et U vaut Y
(Q2 · · · Qss−1 ) Qi .
i multiple de p
Puisque n est une borne supérieure sur les multiplicités s, on en déduit que W vaut
Y
Qi−1
i ,
i non multiple de p

d’où le résultat. 
308 30. FACTORISATION DES POLYNÔMES

Remarque : le W de la proposition est une puissance p-ième, d’après la Proposi-


tion 2.
Il est enfin possible de déduire un algorithme de calcul de la partie sans carré
de toutes ces considérations.
Partie sans carré d’un polynôme.:
Entrée :: P dans Fp [X].
Sortie :: La partie sans carré de P .
1. Calculer U = pgcd(P, P 0 ), V = P/U et W = pgcd(U, V n ) ;
2. Calculer la racine p-ième W0 de W ;
3. Calculer récursivement la partie sans carré S de W0 ;
4. Renvoyer V S.
Proposition 8. Cet algorithme calcule la partie sans carré de P en
O(M(n) log(n)) opérations, où M est une fonction de multiplication.
Démonstration. La correction de cet algorithme provient des propositions
précédentes, seule la complexité est plus délicate à analyser. Les calculs de pgcd se
font en O(M(n) log(n)) opérations ; remarquer qu’il suffit de calculer V n modulo
U , et que cela se fait en O(log(n)) multiplications modulo U par exponentiation
binaire.
Ensuite, W0 s’obtient sans calcul (voir la Proposition 2) ; son degré est au plus
égal à n/p. On en déduit que le temps de calcul T (n) satisfait la récurrence
 
n
T (n) ≤ T + C M(n)(log(n)),
p
C étant une constante. On en déduit le résultat. 

4. Algorithme de Berlekamp
On va exposer ici un algorithme historique de factorisation, l’algorithme de
Berlekamp. Son analyse de complexité mène au résultant suivant.
Proposition 9. Soit P un polynôme sans carré de Fp [X]. On peut factoriser
P par un algorithme déterministe dont la complexité est de
O(nω + n M(n) log(n) p)
opérations de Fp , où ω est l’exposant de l’algèbre linéaire sur Fp et M une fonction
de multiplication.
Quelques remarques :
– L’hypothèse que P est sans carré n’est pas une limitation ici : même en
utilisant la version « naïve » de décomposition sans carré suggérée dans la
section précédente, on reste dans une complexité inférieure au nω qui apparaît
ici.
– La complexité de cet algorithme est linéaire en p : cela le rend rapidement
peu pratique, dès lors que p atteint quelques milliers ou quelques millions.
À l’heure actuelle, on ne connaît pas d’algorithme de factorisation détermi-
niste de complexité logarithmique en p (borne qu’atteignent les algorithmes
probabilistes).
4. ALGORITHME DE BERLEKAMP 309

Rappel : restes chinois. Soient P1 , . . . , Pr des polynômes définis sur un corps k


quelconque. Supposons que P1 , . . . , Pr sont tous premiers entre eux deux-à-deux,
et soit P leur produit. Soit φ l’application « restes modulo P1 , . . . , Pr » :
k[X] → k[X]/P1 × · · · × k[X]/Pr
φ:
a 7→ (a mod P1 , . . . , a mod Pr ).
Les Pi étant premiers entre eux deux à deux, on sait que :
– φ est surjective,
– son noyau est l’ensemble des multiples de P .
Autrement dit, φ induit un isomorphisme
k[X]/P ≡ k[X]/P1 × · · · × k[X]/Pr .

L’application de Berlekamp. Soit P un polynôme sans carré. En vertu du Corol-


laire 2, l’application
φ : Fp [X]/P → Fp [X]/P
a 7→ ap − a
est une application Fp -lináire. L’étude de son noyau va permettre de factoriser P ,
à partir de la proposition suivante. On note P1 , . . . , Pr les facteurs (inconnus) de
P :
P = P1 · · · Pr .
Proposition 10. Soit a ∈ Fp [X], non constant, de degré plus petit que P , et
tel que φ(a mod P ) = 0. Alors :
– pour i = 1, . . . , r, a mod Pi est une constante ;
– ces constantes ne sont pas toutes égales.
Démonstration. Puisque tous les Pi sont distincts et irréductibles, on a
d’après le paragraphe précédent un isomorphisme
Fp [X]/P ≡ Fp [X]/P1 × · · · × Fp [X]/Pr ,
donné par
a mod P 7→ (a mod P1 , . . . , a mod Pr ).
Les Pi étant irréductibles, chaque Fp [X]/Pi est un corps. Dans la représentation
« produit de corps », l’application φ s’écrit bien sûr :
(a1 , . . . , ar ) 7→ (ap1 − a1 mod P1 , . . . , apr − ar mod Pr ).
Dans cette représentation, on a alors la caractérisation suivante du noyau de φ.
Lemme 5. Le r-uplet (a1 , . . . , ar ) est dans le noyau de φ si et seulement si
ai ∈ Fp ⊂ Fp [X]/Pi pour tout i.
p
Démonstration. On sait (Proposition 1) que Q le polynôme X −X se factorise
dans Fp , et donc dans Fp [X]/Pi , sous la forme a∈Fp (X − a). Puisque Fp [X]/Pi
est un corps, ai ∈ Fp [X]/Pi est une racine de X p − X si et seulement s’il annule
un des facteurs X − a, donc si et seulement si ai ∈ Fp . 
Ceci prouve le premier point de la proposition. Quant au second, remarquons
que si tous les ai = a mod Pi sont les mêmes, on a nécessairement a = ai (pout
tout i), car on a supposé a de degré plus petit que P . En particulier, a devrait être
constant, ce qui est contraire à nos hypothèses. 
La clé de l’algorithme de Berlekamp est la proposition suivante.
Proposition 11. Soit a comme dans la proposition précédente. Il existe b dans
Fp tel que pgcd(P, a − b) est un diviseur non trivial de P .
310 30. FACTORISATION DES POLYNÔMES

Démonstration. Pour b quelconque dans Fp , on a l’égalité


Y
pgcd(P, a − b) = Pi ,
i

où le produit est pris sur tous les Pi tels que Pi divise a − b, c’est-à-dire tels que a
mod Pi = b. On sait qu’il existe au moins deux valeurs distinctes pour les a mod Pi .
Chacune d’entre elles donnant un diviseur de P , ces diviseurs sont stricts. 

D’où l’algorithme.
Calcul d’un facteur.:
Entrée :: P dans Fp [X], sans carré.
Sortie :: Un facteur de P .
1. Calculer la matrice de l’application φ, et un vecteur a dans le noyau.
2. Calculer tous les pgcd(P, a − b), jusqu’à trouver un facteur non trivial.
Proposition 12. L’algorithme précédent calcule un facteur non trivial de P
en
O(nω + M(n) log(n) p)
opérations de Fp .
Démonstration. Le premier pas est de calculer la matrice de φ. On com-
mence par calculer X p mod P : cela demande O(log(p)) opérations modulo
P , soit O(M(n) log(p)) opérations dans Fp . Ensuite, il faut calculer (X 2 )p =
(X p )2 , (X 3 )p = (X p )3 , . . . , ce qui se fait en n multplications mod P , soit O(nM(n))
opérations en tout.
L’algèbre linéaire coûte nω . Une fois obtenu un vecteur du noyau, chaque essai
de pgcd coûte O(M(n) log(n)) opérations, et il faut potentiellement en faire p. En
mettant tout bout-à-bout, on obtient le résultat ci-dessus. 

Pour trouver la factorisation complète, il suffit de réitérer le procédé ce qui


entraîne a priori un surcoût de n. En fait, il n’y a pas besoin de refaire de l’algèbre
linéaire, de sorte que le coût total de la factorisation est
O(nω + nM(n) log(n) p)
opérations de Fp .

Exercices
Exercice 1 (Factorisation probabiliste en temps polynomial). Le but de cet
exercice est de donner un algorithme (probabiliste) pour la factorisation dans Fp [X],
dont la complexité soit polynomiale en (n, log(p)), où n est le degré du polynôme
à factoriser. Ici, p est un nombre premier différent de 2 ; les complexités des algo-
rithmes seront énoncées en nombre d’opérations dans Fp .
L’algorithme proposé fonctionne en plusieurs étapes. On admettra le fait sui-
vant (qui généralise un résultat montré en cours) : pour tout d ≥ 0, le polynôme
d
Xp − X
est le produit de tous les polynômes irréductibles et unitaires de Fp [X], dont le
degré divise d.
Question 1: Donner un algorithme, qui, étant donné P dans Fp [X], calcule
le produit de tous les polynômes unitaires de degré 1 qui divisent P . Quelle
est sa complexité ?
EXERCICES 311

Question 2: Donner un algorithme, qui, étant donné P dans Fp [X], calcule


P1 , . . . , Pn , où n est le degré de P , et Pi est le produit de tous les polynômes
irréductibles et unitaires de degré i qui divisent P . Quelle est sa complexité ?
Question 3: Expliquer comment retrouver simplement les facteurs de P et
leurs multiplicités à partir des facteurs des Pi .
Dans la seconde étape, on peut donc faire l’hypothèse que le polynôme à fac-
toriser est de la forme
Q = Q1 · · · Qr ,
avec deg Q1 = · · · = deg Qr = s et deg Q = m = rs, et où les Qi sont irréductibles.
On admet dans ces conditions que si on tire un élément A aléatoirement dans
Fp [X]/Qi − {0}, avec la distribution uniforme, alors
ps −1
A 2

vaut 1 (resp. −1) avec probabilité 12 .


ps −1
Question 4: Soit A dans Fp [X]/Q, et B = A 2 dans Fp [X]/Q. Donner
une borne supérieure sur la complexité du calcul de B. Que peut valoir
(B mod Q1 , . . . , B mod Qr ) ?
On admettra que si A est tiré aléatoirement dans Fp [X]/Q − {0}, avec
la distribution uniforme, les valeurs de (B mod Q1 , . . . , B mod Qr ) sont
toutes équiprobables.
Question 5: Montrer que
Y
pgcd(B − 1, Q) = Qi .
i tel que (B mod Qi )=1

En déduire que si (B mod Q1 , . . . , B mod Qr ) 6= (1, . . . , 1) ainsi que


(B mod Q1 , . . . , B mod Qr ) 6= (−1, . . . , −1) alors pgcd(B − 1, Q) est non-
trivial. En déduire ensuite un algorithme qui calcule un facteur propre de
Q, non constant, avec probabilité ≥ 12 . Quelle est sa complexité ?
Conclure sur la complexité de la factorisation de Q (on ne demande
pas une estimation fine de complexité).
CHAPITRE 31

Exercices récapitulatifs

Sauf mention contraire, dans toute la suite, K désigne un corps effectif de


caractéristique nulle.

Exercice 1 (Multiplication de polynômes à deux variables). Soient f et g


dans K[X, Y ] de degrés au plus dX en X et au plus dY en Y .
1. Montrer qu’il est possible de calculer tous les coefficients de h = f g en
O(M(dX dY )) opérations dans K. Utiliser la substitution X ← Y 2dY +1 pour
se ramener à une multiplication de polynômes à une variable.
2. Améliorer ce résultat en donnant un schéma d’évaluation-interpolation qui
permette le calcul des coefficients de h en O(dX M(dY ) + dY M(dX )) opéra-
tions de K.

Exercice 2 (Équivalence des complexités de diverses opérations polyno-


miales). Soit K un corps de caractéristique différente de 2 et soient M(n), I(n), D(n)
et S(n) les complexités (mesurées en nombre d’opérations arithmétiques dans K)
pour calculer respectivement : le produit de deux polynômes de K[X] de degré < n,
l’inverse modulo X n d’un polynôme de degré < n, le reste de la division d’un po-
lynôme de degré < 2n par un polynôme de degré n et le carré d’un polynôme de
degré < n. Le but de l’exercice est de prouver que les fonctions M, I, D et S ont le
même ordre de grandeur.
1. Par quelle technique peut-on montrer que I ∈ O(M) et D ∈ O(M) ?
−1
2. Prouver l’identité y 2 = y −1 − (y + 1)−1 − y et conclure que S ∈ O(I).
3. Montrer que M ∈ O(S), en utilisant l’égalité 2f g = (f + g)2 − f 2 − g 2 .
4. Le polynôme réciproque d’un polynôme b ∈ K[X] de degré n est noté
récn (b). Établir une relation entre récn (b)−1 mod X n et le quotient de la
division de X 2n par b. En déduire que I ∈ O(D).
5. Conclure que O(M) = O(I) = O(S) = O(S).

Exercice 3 (Décalage rapide de polynômes).


1. Montrer que si P est un polynôme dans Q[X] de degré au plus n, alors,
quel que soit a ∈ Q, on peut calculer les coefficients du « polynôme décalé »
Q(X) = P (X + a) en O(M(n)) opérations dans Q.
Indication. Commencer par prouver l’identité suivante dans Q[X] :
n n
! n
!
X
(i) n−i
X
(i) n−i
X (aX)i
P (a)X = P (0)X × mod X n+1 .
i=0 i=0 i=0
i!
2. Montrer que les coefficients des numérateurs et des dénominateurs des frac-
tions rationnelles
1 1 1 1 2 n
R0 = + + ··· + et R1 = + + ··· +
X −1 X −2 X −n X −1 X −2 X −n
313
314 31. EXERCICES RÉCAPITULATIFS

peuvent être calculés en O(M(n)) opérations dans Q.


Indication. Pour R0 , donner un algorithme de type « diviser pour régner »
basé sur l’algorithme de la question (1). Pour R1 , en ramener le calcul à
celui de R0 .

La formule de Lagrange montre qu’il existe un unique polynôme P (X) ∈ Q[X]


de degré strictement inférieur à n tel que
 −1
n
P (i) = (−1)i , pour tout i = 1, 2, . . . , n.
i−1
3. Exprimer P en termes de R0 et R1 et donner un algorithme qui calcule
les coefficients de P en O(M(n)) opérations dans Q. Ces coefficients sont
supposés connus dans la suite de l’exercice.
4. Montrer que la suite d’éléments de Q de terme général ai = P (i) vérifie
une récurrence linéaire d’ordre n à coefficients constants.
5. En déduire un algorithme pour calculer les valeurs P (n + 1), . . . , P (2n) en
O(M(n)) opérations dans Q.
6. Montrer qu’on peut calculer P (n+1), . . . , P (2n) en O(n) opérations dans Q.

Exercice 4 (Extrapolation sur une suite arithmétique). Soit P un polynôme


inconnu de K[X]. Le but de l’exercice est de montrer que, à partir de la donnée d’un
élément a ∈ K, d’une borne d sur le degré de P , et des valeurs P (0), P (1), . . . , P (d),
il est possible de déterminer l’ensemble des valeurs P (a), P (a + 1), . . . , P (a + d) en
O(M(d)) opérations dans K.
1. Traiter d’abord le cas où a appartient à l’ensemble {−d, −d+1, . . . , d−1, d}.
Supposons dans la suite que a ∈ K est tel que tous les éléments a − d, . . . , a + d
sont non nuls. On rappelle la formule d’interpolation de Lagrange
d d
X Y P (i)
(L) P (X) = pi (X − j), où pi = Qd .
i=0 j=0, j6=i j=0, j6=i (i − j)
2. Montrer que les éléments p0 , p1 , . . . , pd peuvent être tous calculés en O(d)
opérations dans K.
En substituant X = a + k dans l’équation (L), on obtient l’égalité
d d
X pi Y
(L̃) P (a + k) = ∆k · , où ∆k = (a + k − j).
i=0
a+k−i j=0

3. Montrer que les éléments ∆k pour k = 0, . . . , d, peuvent être tous calculés


en O(d) opérations dans K.
4. Utiliser l’égalité (L̃) pour conclure que l’ensemble des valeurs P (a), P (a +
1), . . . , P (a + d) peut se calculer en O(M(d)) opérations dans K.

Exercice 5 (Décomposition en éléments simples). On considère une fraction


rationnelle
P (X)
F (X) = `1 ,
Q1 (X) · · · Q`kk (X)
où P, Q1 , . . . , Qk sont des polynômes de Q[X] et les `i sont des entiers strictement
positifs tels que
Pk
(H1) deg(P ) < i=1 `i · deg(Qi ) = n, et
31. EXERCICES RÉCAPITULATIFS 315

(H2) Q1 , . . . , Qk sont deux à deux premiers entre eux.


La décomposition en éléments simples de F est une écriture
`i
k X
P (X) X Ci,j (X)
= ,
Q`11 (X) · · · Q`kk (X) i=1 j=1 Qji (X)
où les Ci,j sont des polynômes de Q[X] tels que deg(Ci,j ) < deg(Qi ) pour tous i, j.
L’existence et l’unicité des polynômes Ci,j est admise. On appelle DESn le problème
du calcul des polynômes Ci,j à partir des polynômes P, Q1 , . . . , Qk et des entiers
n, `1 , . . . , `k satisfaisant aux hypothèses (H1) et (H2).
L’objectif de cet exercice est de montrer qu’il est possible de résoudre le pro-
blème DESn en O(M(n) log(n)) opérations. Ici, et dans toute la suite de l’exercice,
par opération on entend opération arithmétique dans le corps Q et M(n) représente
une borne sur le nombre d’opérations suffisant à multiplier deux polynômes de Q[X]
de degré au plus n.
1. Donner un algorithme simple, reposant sur de l’algèbre linéaire, qui résout
le problème DESn et estimer le nombre d’opérations que cet algorithme
utilise.
2. Dans le cas k = 1, le problème DESn se spécialise au problème du calcul,
à partir de deux polynômes P, Q ∈ Q[X] tels que deg(P ) < ` · deg(Q) = n,
des polynômes C1 , . . . , C` vérifiant
`
P (X) X Cj (X)
= , et deg(Cj ) < deg(Q) pour tout j ≥ 1.
Q (X) j=1 Qj (X)
`

Montrer que dans ce cas, le problème peut se résoudre en O(M(n) log(n))


opérations.
Le but des questions 3–9 ci-dessous est de montrer que le problème DESn
avec `i = 1 pour tout i peut se résoudre en O(M(n) log(n)) opérations. Autre-
ment dit, étant donnés les polynômes P, R1 , . . . , Rk dans Q[X], avec deg(P ) <
Pk
i=1 deg(Ri ) = n et R1 , . . . , Rk deux à deux premiers entre eux, on veut calculer
en O(M(n) log(n)) opérations les polynômes C1 , . . . , Ck ∈ Q[X] tels que
k
P (X) X Ci (X)
= , et deg(Ci ) < deg(Ri ) pour tout i ≥ 1.
R1 (X) · · · Rk (X) i=1
Ri (X)
Pour ce faire, on introduit
 
k
X k
Y 
R(X) = 
 Rj (X)

i=1 j=1
j6=i

et pour 1 ≤ i ≤ k, on considère le reste Di (X) de la division euclidienne de R(X)


par Ri (X).
3. Donner un algorithme qui calcule le polynôme R(X) en O(M(n) log(k))
opérations.
4. Montrer que les polynômes D1 , . . . , Dk peuvent être calculés eux aussi en
O(M(n) log(k)) opérations.
5. Montrer que pour tout 1 ≤ i ≤ k, les polynômes Di et Ri sont premiers
entre eux.
6. En notant Ei l’inverse de Di modulo Ri , montrer que Ci est égal au reste
de la division euclidienne de P · Ei par Ri .
316 31. EXERCICES RÉCAPITULATIFS

7. Donner un algorithme pour le calcul des Ei en O(M(n) log(n)) opérations.


8. Donner un algorithme pour le calcul des Ci , en O(M(n) log(k)) opérations.
9. Conclure qu’on peut résoudre le problème DESn avec `i = 1 pour tout i en
O(M(n) log(n)) opérations.
10. Conclure qu’il est possible de résoudre le problème DESn en O(M(n) log(n))
opérations.

Exercice 6 (Polynômes de Fibonacci). Soit Fn (X) ∈ K[X] la suite des po-


lynômes de Fibonacci, définie par les conditions initiales F0 = 1, F1 = X et la
récurrence Fn+1 = XFn + Fn−1 pour tout n ≥ 1. Soit N ≥ 1.
1. Estimer le coût d’un calcul direct de tous les coefficients de FN (X).
2. Montrer qu’il est possible de calculer tous les coefficients de FN (X) en
utilisant O M(N ) opérations dans K.
3. Montrer qu’il est possible de calculer la somme des coefficients de FN en
seulement O(log N ) opérations dans K.
4. Donner un algorithme qui permet le calcul des coefficients de FN en O(N )
opérations dans K.

Exercice 7 (Fonctions algébriques et résultants). Soit y(X) une fonction al-


gébrique annulée par P (X, Y ) ∈ Q[X, Y ].
1. Montrer que la dérivée y 0 (X) est aussi algébrique, en exhibant un polynôme
résultant R(X, Y ) qui l’annule.
2. Déterminer un tel polynôme R dans le cas où P (X, Y ) = XY 2 − Y + 1.
3. Supposant que P est de degré au plus d en X et en Y , estimer les degrés en
X et en Y du polynôme R, puis proposer un algorithme pour son calcul.
4. Analyser la complexité de votre algorithme, mesurée en nombre d’opéra-
tions arithmétiques dans Q. En utilisant les meilleurs algorithmes vus en
cours pour les opérations fondamentales sur les polynômes et les matrices,
à quel exposant aboutissez-vous ? Ici, par exposant on entend un réel α tel
que votre algorithme a une complexité en Õ(nα ), c’est-à-dire linéaire en nα
à des facteurs logarithmiques près.

Exercice 8 (Produit diamant). On considère deux polynômes unitaires f, g ∈


Q[T ], de degrés strictement plus petits que n. Étant donné H ∈ Q[X, Y ], dont
les degrés partiels par rapport à chacune des variables X et Y sont strictement
inférieurs à n, le produit diamant f H g est le polynôme de degré D = n2 défini
par Y 
f H g = T − H(α, β) ,
f (α)=0, g(β)=0
le produit étant pris sur les racines complexes de f et de g comptées avec multipli-
cités. On s’intéresse dans cet exercice au calcul efficace du produit diamant.
1. Montrer que le produit diamant peut s’exprimer à l’aide de résultants et
que ses coefficients sont rationnels.
On note A l’algèbre quotient Q[X, Y ]/(f (X), g(Y )). Un élément g ∈ A admet
une écriture unique X
g= gi,j xi y j
0≤i,j<n
31. EXERCICES RÉCAPITULATIFS 317

avec gij ∈ Q, où x et y sont les images canoniques de X et Y dans A. On admet


que si P1 , P2 sont deux polynômes de Q[X, Y ] de degrés au plus
 dX en X et au plus
dY en Y , on peut calculer leur produit P1 P2 en O M(dX dY ) opérations dans Q.

2. Montrer que O M(D) opérations suffisent pour effectuer le produit de
deux éléments de A.
À tout polynôme G de Q[X, Y ] on associe l’application Q-linéaire de multipli-
cation par G(x, y) dans A, définie par v ∈ A 7→ G(x, y)v P ∈ A. On admet que la
trace, notée Tr(G), de cette application linéaire est égale à α,β G(α, β), la somme
étant prise sur les racines complexes α de f et β de g comptées avec multiplicités.
3. Montrer que, pour tout s ∈ N, la trace Tr(H s ) s’exprime comme la somme
des puissances s-ièmes des racines de f H g.
4. Expliciter pour 0 ≤ i < n ce que valent Tr(X i ) et Tr(Y i ).
On rappelle que tout polynôme unitaire P ∈ Q[T ] de degré au plus D peut
être représenté soit par la suite de ces coefficients, soit par la suite des sommes des
puissances s-ièmes de ses racines, pour s = 0, . . . , D, et qu’il est possible de passer
d’une représentation à l’autre en O M(D) opérations.
5. Donner un algorithme pour le calcul des valeurs Tr(X i ), 0 ≤ i < n, en
O M(n) ⊆ O(D) opérations arithmétiques. Même question pour les va-
leurs Tr(Y i ), 0 ≤ i < n.
6. En déduire que l’ensemble des valeurs Tr(X i Y j ), pour 0 ≤ i, j < n, peut
être calculé en O(D) opérations dans Q.
7. Donner un algorithme qui, pour tout N ≥ 1, calcule la suite
Tr(1), Tr(H), Tr(H 2 ), . . . , Tr(H N −1 )

en O N M(D) opérations dans Q.

8. En déduire un algorithme pour le calcul de f H g en O D M(D) opérations
dans Q.

Exercice 9 (Composition itérée de séries formelles). Soit F une série de la


forme F (X) = f1 X + f2 X 2 + · · · à coefficients dans K. En notant F [0] (X) = X, on
définit la q-ième itérée de F par
(E) F [q] (X) = F [q−1] (F (X)).
L’objectif de cet exercice est d’étudier la complexité Cq (N ) du calcul des N pre-
miers termes de cette série pour N grand en nombre d’opérations dans K. On note
M(N ) une borne sur le nombre d’opérations dans K nécessaires pour calculer le
produit de deux polynômes de degré N dans K[X]. On fait sur M les hypothèses
habituelles de régularité. On note également C(N ) une borne sur le nombre d’opé-
rations dans K nécessaires pour calculer la composition f (g(X)) de deux séries
tronquées à l’ordre N telles que g(0) = 0. On rappelle qu’aucun algorithme quasi-
optimal n’est connu
√ pour la composition et que la meilleure complexité connue
est C(N ) = O( N log N M(N )).
La notation g(q, N ) = O(f (q, N )) pour des fonctions de q et N voudra dire
dans cet exercice qu’il existe un entier N0 tel que pour tout N > N0 ,
|g(q, N )| ≤ K|f (q, N )|,
la constante K ne dépendant ni de N , ni de q.
1. En n’utilisant que de l’algorithmique naïve, montrer que le calcul des N
premiers termes de F [q] peut être effectué en Cq (N ) = O(qN 3 ) opérations
dans K.
318 31. EXERCICES RÉCAPITULATIFS

2. En exploitant la composition rapide


√de séries, montrer que cette complexité
peut être abaissée à Cq (N ) = O(q N log N M(N )).
3. Décrire une idée simple permettant
√ de réduire la dépendance en q pour
aboutir à Cq (N ) = O(log q N log N M(N )).
Le reste de l’exercice étudie un algorithme permettant d’abaisser encore cette com-
plexité pour finir à la même complexité que la composition avec F , indépendamment
de q. L’idée de départ est que dans le cas de la puissance, le calcul de F (X)q peut
être réalisé efficacement sous la forme exp(q log F (X)). L’objectif est de transposer
cette technique à la composition.
On suppose maintenant que f1 6= 0 et que f1 n’est pas une racine de l’unité.
On définit la série de Schroeder S(X) = s1 X + s2 X 2 + · · · par
(S) S(F (X)) = f1 S(X), s1 = 1.
(4) Montrer que cette équation définit bien une série S(X), et que celle-ci est
unique.
(5) Montrer que pour tout entier q,
F [q] (X) = S [−1] (f1q S(X)),
où S [−1] est l’inverse de S pour la composition. En déduire une borne sur la
complexité du calcul de F [q] une fois la série S connue à précision N .
(6) Pour calculer S solution de (S), on va s’intéresser à la résolution d’une
équation plus générale :
(E) A(X)Y (F (X)) − B(X)Y (X) − C(X) = 0 mod X k ,
où A, B, C, F sont des séries données et Y est l’inconnue. L’approche est
une technique de « diviser pour régner ». En posant
Y (X) = U (X) + X n V (X),
où U est un polynôme de degré inférieur à n, montrer que U et V sont
solutions d’équations du même type que (E). Expliciter les coefficients de ces
équations.
(7) Décrire un algorithme
√ de calcul des N premiers coefficients de Y en nombre
d’opérations O( N log N M(N )). En notant a0 , b0 , c0 les termes constants
des séries A, B, C, on supposera que a0 f1m 6= b0 , pour m = 1, 2, 3, . . . , et que
si a0 = b0 , alors c0 = 0.
(8) Décrire enfin l’algorithme de calcul de F [q] dans la complexité annoncée.
(9) À l’inverse, décrire un algorithme calculant une série G telle que F = G[q] ,
dans la même complexité.

Exercice 10 (Multiplication polynomiale de complexité quasi-linéaire). Le


but de cet exercice est de montrer que la multiplication de polynômes de degré au
plus N à coefficients dans un corps K contenant N éléments distincts en progression
géométrique peut s’effectuer en complexité arithmétique quasi-linéaire par rapport
à N.
Soit A et B deux polynômes de K[X], de degré strictement inférieurs à N .
Soient n et d deux entiers tels que N ≤ nd et écrivons
A = A0 (X) + A1 (X)X d + · · · + An−1 (X)(X d )n−1 ,
B = B0 (X) + B1 (X)X d + · · · + Bn−1 (X)(X d )n−1 ,
où les polynômes Ai (X), Bi (X) ∈ K[X] ont degré au plus d − 1. Soit G un sous-
ensemble de K contenant 2d éléments distincts en progression géométrique.
31. EXERCICES RÉCAPITULATIFS 319

1. Si T opérations de K suffisent pour multiplier dans K[X, Y ] les polynômes


A(X, Y ) = A0 (X) + A1 (X)Y + · · · + An−1 (X)Y n−1 et
n−1
B(X, Y ) = B0 (X) + B1 (X)Y + · · · + Bn−1 (X)Y ,
montrer qu’on peut multiplier A(X) et B(X) en T+O(nd) opérations de K.
Pour calculer AB, il suffit donc d’effectuer le produit C(X, Y ) = A(X, Y )B(X, Y ),
c’est-à-dire de calculer les coefficients Ci (X) ∈ K[X], avec deg(Ci ) < 2d, de
C(X, Y ) = C0 (X) + C1 (X)Y + · · · + C2n−2 (X)Y 2n−2 .

2. Montrer que le calcul du produit AB se ramène à O(d) multiplications de


K[Y ] en degré < n et O(n) évaluations/interpolations sur les points de G.
Indication : utiliser l’égalité A(g, Y )B(g, Y ) = C(g, Y ), valable pour g ∈ G.
3. En déduire qu’il existe trois constantes α, β, γ ≥ 1, universelles (c’est-à-
dire indépendantes de N, n, d), telles que la complexité arithmétique M de
l’algorithme de (2) vérifie M(nd) ≤ αn M(d) + βd M(n) + γnd.
4. Écrire un algorithme récursif de multiplication dans K[X] de complexité
arithmétique O N (log N )log(αβ) en degré N .

Exercice 11 (Multiplication d’opérateurs différentiels). Dans l’algèbre de po-


d
lynômes non-commutatifs Q[X]hθi en les indéterminées X et θ = dX satisfaisant à
la règle de commutation θX = Xθ + X, on considère deux éléments A et B donnés
sous la forme
Xn X n Xn X n
A= ai,j X i θj et B= bi,j X i θj
i=0 j=0 i=0 j=0

avec ai,j ∈ Q et bi,j ∈ Q. Le but de cet exercice est d’étudier la complexité arithmé-
tique du calcul du produit C = BA, c’est-à-dire du calcul, à partir des constantes
ai,j , bi,j ∈ Q, des constantes ci,j ∈ Q telles que
n X
X n
C= ci,j X i θj .
i=0 j=0

Les questions 1–3 qui suivent sont largement indépendantes.


1. (a) Montrer que θi X ` = X ` (θ + `)i pour i ≥ 0 et ` ≥ 0, et en déduire que
le calcul du produit θi X ` peut s’effectuer en O(i) opérations arithmé-
tiques dans Q.
(b) Donner des bornes, en fonction de n, sur les degrés de C en X et en θ.
(c) Proposer un algorithme naïf pour le calcul de C et estimer son coût
arithmétique.

2. Montrer qu’il est possible de calculer C en O n2 M(n) opérations dans Q,
à l’aide d’un schéma itératif. On pensera à écrire B sous la forme
X n
B= bi (X)θi , avec bi (X) ∈ Q[X].
i=0

Dans la suite, on montre comment améliorer les résultats des questions (1) et
(2), grâce à un algorithme de type évaluation-interpolation.
3. (a) Calculer θj (X k ), pour j ≥ 0 et k ≥ 0. En déduire P (θ)(X k ), pour
k ≥ 0 et P ∈ Q[X].
(b) Montrer que les coefficients de C sont uniquement déterminés par la
suite des polynômes C(X 0 ), C(X 1 ), . . . , C(X 2n ).
320 31. EXERCICES RÉCAPITULATIFS


(c) Donner un algorithme de complexité arithmétique O n M(n) log n
pour le calcul de tous les polynômes pk := A(X k ), pour 0 ≤ k ≤ 2n,
et qi := B(X i ), pour 0 ≤ i ≤ 3n.
(d) Montrer que le calcul des polynômes B(p0 ), . . . , B(p2n ) se ramène à
une multiplication de matrices de tailles (4n + 1) × (3n + 1) et (3n +
1) × (2n + 1).
(e) Montrer que, à partir de C(X 0 ), . . . , C(X

2n
), il est possible de calculer
les coefficients de C en O n M(n) log n opérations arithmétiques.
(f) Conclure en écrivant un algorithme complet pour le calcul de C basé
sur (c), (d) et (e). Estimer sa complexité.

Exercice 12 (Une famille d’intégrales). L’intégrale


Z +∞
cn,k = tk K0 (t)n dt,
0
où K0 est une fonction de Bessel (voir ci-dessous), est intervenue récemment dans
des études de physique liées au modèle d’Ising. Empiriquement, il est apparu que
ces intégrales vérifient une récurrence de la forme
X
(R) (k + 1)n+1 cn,k + Pn,j (k)cn,k+j = 0,
2≤j<n
j pair

où les Pn,j sont des polynômes de degré au plus n + 1 − j.


Le but de cet exercice est de prouver l’existence d’une telle récurrence et de dé-
velopper un algorithme permettant de la calculer. Le point de départ est l’équation
différentielle
θ2 (y) − t2 y = 0
d
vérifiée par y = K0 (t). Dans cette équation, θ représente l’opérateur t dt . Ainsi,
2 0 0
θ (y) = t(ty ) . Il sera plus commode de travailler avec θ qu’avec d/dt, et on rappelle
θ(uv) = uθ(v) + θ(u)v.
On admettra que les intégrales cn,k convergent pour tous n et k entiers positifs,
et que pour tout i, j entiers positifs on a en outre
lim tj (K0 (t)n )(i) = lim tj (K0 (t)n )(i) = 0.
t→0 t→∞

1. Montrer que K02 vérifie l’équation différentielle


θ3 (y) − 4t2 θ(y) − 4t2 y = 0.
2. Plus généralement, montrer que pour tout n ∈ N, K0n vérifie une équation
différentielle linéaire. Donner une borne supérieure sur son ordre. Vérifier
que cette borne donne la bonne valeur pour n = 2.
3. En déduire l’existence d’une récurrence linéaire vérifiée par les cn,k , pour
chaque n. Donner un algorithme calculant cette récurrence.
4. Montrer par exemple que la suite c2,k vérifie
k 3 c2,k−1 = 4(k + 1)c2,k+1 .
5. Borner le degré des coefficients dans l’équation calculée en question (2).
6. En déduire une borne de complexité sur l’algorithme de (3) en nombre
d’opérations dans Q.
La suite de l’exercice montre comment accélérer ce calcul en tirant parti du fait que
l’équation différentielle vérifiée par K0 est d’ordre 2 seulement.
31. EXERCICES RÉCAPITULATIFS 321

7. Soit φk := n(n − 1) · · · (n − k + 1)K0n−k θ(K0 )k . Montrer que


φk+1 (t) = θ(φk )(t) − k(n − k + 1)t2 φk−1 (t).

8. Utiliser cette récurrence pour n = 2 pour retrouver l’équation de la ques-


tion (1), en récrivant φ1 , φ2 , . . . au moyen de φ0 .
9. Plus généralement, décrire un algorithme de calcul d’une équation différen-
tielle linéaire vérifiée par K0n à partir du résultat de la question (7).
10. Montrer que la complexité du calcul de l’équation différentielle par cette
méthode est bornée par O(n3 ).

Exercice 13 (Calcul rapide du polynôme caractéristique). On considère un


réel θ > 2 tel que la multiplication de deux matrices de Mn (K) peut se faire en
MM(n) = nθ opérations dans K. L’objectif de cet exercice est de prouver que le
polynôme caractéristique d’une matrice « générique » de Mn (K) peut être calculé
en O(MM(n)) opérations de K.
Une matrice F = (fij )1≤i,j≤n de Mn (K) sera appelée « de type m-Frobenius »
si ses n − m premières colonnes ne contiennent que des éléments nuls, à l’exception
des éléments fm+1,1 , fm+2,2 , . . . , fn,n−m qui valent tous 1. Par exemple, les matrices
de type 1-Frobenius sont les matrices compagnon.
Dans la suite de l’exercice, on suppose que la taille n est une puissance de 2 et
on note n = 2r . On associe à A une suite de matrices Ar = A, Ar−1 , . . . , A1 , A0 qui
lui sont toutes semblables (c’est-à-dire de la forme P −1 AP , avec P inversible). Ces
matrices sont définies de manière inductive. Pour passer de Ai+1 à Ai , on calcule
si = n/2i matrices, notées Ai,1 = Ai+1 , Ai,2 , . . . , Ai,si = Ai et définies comme suit :
• On considère la matrice Uij de type 2i -Frobenius dont les 2i dernières co-
lonnes coïncident avec les 2i dernières colonnes de Aij .
On suppose que A est « suffisamment générique » pour que Uij soit inversible.
−1
• On pose Ai,j+1 := Uij Ai,j Uij .
On admettra sans preuve que la matrice Ai ainsi construite est de type 2i -Frobenius.
1. Montrer que tous les éléments de l’inverse D = (dij ) d’une matrice compa-
gnon C = (cij ) avec c1n 6= 0 sont nuls, à l’exception des éléments suivants
d1,2 = · · · = dn−1,n = 1, dn,1 = c1,n −1 , dn−j+1,1 = −cj,n dn,1 , pour 2 ≤ j ≤ n.
En déduire que les éléments de D peuvent se calculer en O(n) opérations
dans K.
2. Étendre le résultat de la question (1), en montrant que l’inverse d’une ma-
trice de type m-Frobenius peut se calculer en O(n MM(m)/m) opérations
de K.
3. En déduire que le passage de Ai+1 à Ai se fait en O(n2 MM(2i )/4i ) opéra-
tions de K.
4. Conclure que le polynôme caractéristique de A peut se calculer en
O(MM(n)) opérations de K.

Exercice 14 (Résolution de systèmes de Vandermonde transposés). Soient


a0 , a1 , . . . , an des éléments distincts de K et soit V la matrice de Vandermonde
V = (aji )0≤i,j≤n . Le but de cet exercice est de montrer que, pour tout vecteur
b ∈ Kn+1 , on peut calculer l’unique solution x ∈ Kn+1 du système linéaire t V ·x = b
en O(M(n) log n) opérations dans K.
322 31. EXERCICES RÉCAPITULATIFS

1. Donner un algorithme pour le calcul des coefficients


Pn du numérateur et du
dénominateur de la fraction rationnelle R = i=0 1−a1i X en O(M(n) log n)
opérations dans K.
2. Montrer qu’à partir de R, on peut calculer en O(M(n)) opérations dans K
les 2n premiers éléments de la suite (zi )i≥0 définie par zi = ai0 +ai1 +· · ·+ain .
On rappelle que, par définition, une matrice de type Hankel est constante le long
de toutes ses anti-diagonales. On rappelle le théorème suivant vu au Chapitre 11 :
Si H est une matrice de Hankel inversible de taille n+1, alors on peut résoudre
le système linéaire Hu = b en O(M(n) log n) opérations dans K.
3. Montrer que la matrice H := t V · V vérifie l’hypothèse de ce théorème.
4. Utiliser (1) et (2) pour estimer la complexité du calcul des éléments de H.
5. Conclure.
6. (Bonus) Écrire un algorithme résolvant t V · x = b, obtenu par transposi-
tion (au sens du Chapitre 12) de l’algorithme d’interpolation rapide vu au
Chapitre 6.

Exercice 15 (Évaluation rapide de polynôme en une matrice). On rappelle que


le polynôme caractéristique d’une matrice arbitraire de Mn (K) peut se calculer en
O(MM(n) log n) opérations de K. Le but de cet exercice est d’étudier la complexité
arithmétique du problème suivant :

E(P, A) : étant donnés un polynôme P = p0 + p1 X + · · · + pD X D de K[X] et une


matrice A ∈ Mn (K), calculer la matrice P (A) = p0 In + p1 A + · · · + pD AD .


1. Montrer que O(MM(n) D) opérations de K suffisent pour résoudre
E(P, A).
Indication : Écrire P (X) sous la forme P0 (X) + P1 (X)X d + P2 (X)(X d )2 +
· · · , avec d bien choisi et Pi (X) de degrés au plus d − 1.

2. Montrer qu’on peut améliorer ce résultat à O(MM(n) n + M(D)) opéra-
tions.
Indication : commencer par calculer le polynôme caractéristique de A.

3. Montrer qu’on peut résoudre E(X D , A) en O(MM(n) n+M(n) log D) opé-
rations de K.
4. Montrer que si C est une matrice compagnon, alors il est possible de ré-
soudre E(P, C) en O(n2 + M(D)) opérations de K.
5. Montrer que s’il existe un réel β > 2 tel que E(X 2 , A) puisse se résoudre
en nβ opérations de K pour toute matrice A, alors la multiplication de deux
matrices quelconques de Mn (K) peut se faire en O(nβ ) opérations dans K.
6. Montrer que si A ∈ Mn (K) et deg(P ) = n, la première colonne de P (A)
peut être calculée en O(MM(n) log n) opérations de K.

Dans la suite, on suppose que la matrice A est « suffisamment générique », en


ce sens que la matrice U ∈ Mn (K), dont la `-ième colonne coïncide avec la première
colonne de A` , est une matrice inversible.
7. Montrer que la matrice C = U AU −1 est une matrice de type compagnon
et qu’elle peut être calculée en O(MM(n) log n) opérations de K.
Indication : Remarquer que l’espace vectoriel V = Kn admet {A` e}1≤`≤n
comme base, où e = (1, 0, . . . , 0)t ∈ V, et que U est la matrice de passage
entre cette base et la base canonique de V.
31. EXERCICES RÉCAPITULATIFS 323

8. En déduire que, pour une matrice A « suffisamment générique », le problème


E(P, A) peut se résoudre en O(MM(n) log n + M(D)) opérations de K.
9. Montrer que, pour une matrice A « suffisamment générique », on peut
résoudre E(X D , A) en O(MM(n) log n + M(n) log D) opérations de K.

Exercice 16 (Somme de solutions d’équations différentielles linéaires). Dans


tout cet exercice, on considère deux équations différentielles
(E1) ar (X)y (r) (X) + · · · + a0 (X)y(X) = 0
et
(E2) bs (X)y (s) (X) + · · · + b0 (X)y(X) = 0
et on recherche une équation différentielle vérifiée par toutes les sommes h = f + g
où f est solution de (E1) et g une solution de (E2). On suppose que les ai et les bi
sont des polynômes de Q[X] tels que deg ai ≤ m et deg bi ≤ n, et qu’aucun de r, s,
ar et bs n’est nul. On note R = r + s et D = max{m, n}.

Préambule
1. Montrer que h est solution d’une équation R(y) = 0 d’ordre au plus R.
Les équations (E1) et (E2) permettent de récrire toute dérivée d’ordre arbitraire
de f ou de g comme combinaison linéaire des r + s fonctions f , . . ., f (r−1) , g, . . .,
et g (s−1) . L’espace vectoriel sur Q(X) engendré par les dérivées d’ordre arbitraire
f , f 0 , g 00 , . . ., g, g 0 , g 00 , . . ., a donc dimension au plus R.
Dans cet espace vectoriel, h, . . ., h(R) sont liées, et une relation de liaison non
triviale fournit R après avoir chassé les dénominateurs.

Première méthode : recombinaison des équations


(k)
Pour i ∈ N, j ∈ N, k ∈ {1, 2}, on note Mi,j (y) = 0 l’équation obtenue en
(k)
dérivant j fois l’équation (k) puis en multipliant le résultat par X i . On voit Mi,j
comme une application de la variable y. Pour un entier δ ≥ m + n, on considère :
n o n o
(E1) (E2)
S (E1) = Mi,j : i ≤ δ − m, j ≤ s et S (E2) = Mi,j : i ≤ δ − n, j ≤ r .

2. Déterminer des bornes supérieures dmax et rmax telles que la famille


des X i y (j) pour 0 ≤ i ≤ dmax et 0 ≤ j ≤ rmax permette d’exprimer
tous les R(y) quand R décrit S (E1) ∪ S (E2) .
3. On veut résoudre
X X
(R) λR R(y) = µR R(y)
R∈S (E1) R∈S (E2)

en des coefficients λ et µ dans Q. En égalant les coefficients sur la base


des X i y (j) , compter le nombre d’équations et le nombre d’inconnues. Choi-
sir δ pour assurer l’existence de solutions non triviales.
4. Donner un algorithme pour le calcul d’une équation pour les sommes h =
f + g et justifier sa correction.
5. Évaluer en termes de R, D et avec des O(·) le coût arithmétique du calcul
(k)
des Mi,j (y) de proche en proche et celui de la résolution du système.
Conclure sur la complexité arithmétique de la méthode.

Deuxième méthode : réductions par les équations


324 31. EXERCICES RÉCAPITULATIFS

6. Pour une solution f de (E1) et une combinaison linéaire u = p0 f + · · · +


pr−1 f (r−1) à coefficients des polynômes de degré maximal δ, montrer que
ar u0 s’exprime comme une combinaison linéaire de f , . . ., f (r−1) pour des
coefficients polynomiaux dont on bornera le degré en fonction de δ.
7. En déduire que pour tout entier i ≥ r − 1, le produit ai+1−r
r f (i) s’exprime
(r−1)
comme une combinaison linéaire pi,0 f + · · · + pi,r−1 f pour des poly-
nômes pi,j dont on bornera le degré.
8. Énoncer un résultat analogue pour bi+1−s
s g (j) et pour des polynômes qi,j .
9. On veut résoudre
XR R
X
(i)
(P) ci (X)f =0= ci (X)g (i)
i=0 i=0

pour des polynômes ci dans Q[X] communs aux deux équations. Montrer
qu’en multipliant le membre de gauche de (P) par une puissance convenable
de ar et le membre de droite par une puissance convenable de bs , et en
réduisant par les équations (E1) et (E2), on obtient un système d’équations
linéaires sur les ci à coefficients polynomiaux. Indiquer les dimensions de
ce système et borner le degré de ses coefficients en termes de R et D.
10. Donner un algorithme pour le calcul d’une équation pour les sommes h =
f + g et justifier sa correction.
11. Évaluer en termes de R, D et avec des Õ(·) (c’est-à-dire à des facteurs
logarithmiques près) le coût arithmétique de cet algorithme.
12. Comparer avec la première méthode.

Notes
L’exercice 11 vient de [12]. Il montre que le produit d’opérateurs différentiels
de bidegrés (n, n) en (X, θ) se ramène à un nombre constant de multiplications de
matrices carées de taille n. L’article plus récent [5] montre que ces deux problèmes
sont équivalents du point de vue de la complexité. L’exercice 2 est inspiré par
l’article [2], qui montre que la prise de racine carrée R(n) d’une série tronquée à
précision n vérifie aussi O(R) = O(M). L’exercice 12 est tiré de [3]. L’exercice 5
provient de [11]. L’exercice 9 est une adaptation de l’article [9]. L’exercice 16 est
extrait de [4], l’exercice 8 de [6]. La première question de l’exercice 3 est tirée de [1],
la seconde est implicite dans [8]. L’exerice 13 est inspiré par [10], l’exercice 4 est
tiré de [7].

Bibliographie
[1] Aho (A. V.), Steiglitz (K.), and Ullman (J. D.). – Evaluating polynomials at fixed sets of
‌ , , pp. 533–539.
points. SIAM Journal on Computing, vol. 4, n4
[2] Alt (H.). – Square rooting is as difficult as multiplication. Computing, vol. 21, n‌3, /,
pp. 221–232.
[3] Borwein (Jonathan M.) and Salvy (Bruno). – A proof of a recurrence for Bessel moments.
‌ , , pp. 223–230.
Experiment. Math., vol. 17, n2
[4] Bostan (A.), Chyzak (F.), Li (Z.), and Salvy (B.). – Common multiples of linear ordinary
differential and difference operators. – In preparation.
[5] Bostan (Alin), Chyzak (Frédéric), and Le Roux (Nicolas). – Products of ordinary differential
operators by evaluation and interpolation. In ISSAC’08, pp. 23–30. – ACM, New York, .
[6] Bostan (Alin), Flajolet (Philippe), Salvy (Bruno), and Schost (Éric). – Fast computation of
special resultants. Journal of Symbolic Computation, vol. 41, n‌1, January , pp. 1–29.
Bibliographie 325

[7] Bostan (Alin), Gaudry (Pierrick), and Schost (Éric). – Linear recurrences with polynomial
coefficients and application to integer factorization and Cartier-Manin operator. SIAM J.
Comput., vol. 36, n‌6, , pp. 1777–1806.
[8] Bostan (Alin) and Schost (Éric). – Polynomial evaluation and interpolation on special sets
of points. Journal of Complexity, vol. 21, n‌4, , pp. 420–446.
[9] Brent (R. P.) and Traub (J. F.). – On the complexity of composition and generalized com-
position of power series. SIAM Journal on Computing, vol. 9, n‌1, , pp. 54–66.
[10] Keller-Gehrig (Walter). – Fast algorithms for the characteristic polynomial. Theoret. Comput.
Sci., vol. 36, n‌2-3, , pp. 309–317.
[11] Kung (H. T.) and Tong (D. M.). – Fast algorithms for partial fraction decomposition. SIAM
J. Comput., vol. 6, n‌3, , pp. 582–593.
[12] van der Hoeven (Joris). – FFT-like multiplication of linear differential operators. J. Symbolic
Comput., vol. 33, n‌1, , pp. 123–127.

Vous aimerez peut-être aussi