83
Calcul Numérique Interpolation, Intégration, Équations Différentielles François Boulier 23 septembre 2020

Calcul Numérique Interpolation, Intégration, Équations

Embed Size (px)

Citation preview

Calcul NumériqueInterpolation, Intégration, Équations Différentielles

François Boulier

23 septembre 2020

Introduction

Ce document constitue le support du cours de calcul numérique, à Polytech Lille, pour lesétudiants en quatrième et cinquième année de la filière IS (Informatique et Statistique). Les notionsabordées sont : l’interpolation polynomiale, l’intégration numérique et l’intégration numérique deséquations différentielles ordinaires.

Un lien entre ces notions et la thématique IS est donné par la modélisation des dynamiquesde populations (de cellules, d’humains, de personnes atteintes par la grippe, par une opérationde marketing viral, . . .). Notons ypxq la population d’une espèce au temps x. Le modèle le plussimple de dynamique de population est donné par une équation différentielle. Il s’agit du modèle deMalthus (1798), qui exprime l’idée qu’à tout instant x, la vitesse d’accroissement de la populationest proportionnelle à la population existante :

9ypxq “ k ypxq . (1)

Le paramètre k est une constante de proportionalité. Voir [3, section 1.1, page 2]. Les solutions de cemodèle sont des exponentielles, qui tendent vers l’infini avec x. Ce modèle est donc inapplicable dansle cas où la population ne peut pas dépasser une valeur maximale, imposée par l’environnement,par exemple. Un modèle plus sophistiqué s’obtient en compliquant le membre droit de l’équationdifférentielle. Il s’agit du modèle suivant, appelé logistique par Verhulst (1838, 1845), qui l’a inventé :

9ypxq “ k ypxq

ˆ

1´ypxq

M

˙

. (2)

Le paramètre M désigne la valeur maximale possible pour la population ypxq. Voir [3, section 1.1,page 3]. On peut facilement montrer que pour toute condition initiale yp0q ą 0, la population ypxqse rapproche de la valeur limite M .

Les modèles différentiels présentent tous l’inconvénient de ne lier l’évolution de la populationau temps x qu’à la seule population existante et de ne pas tenir compte des populations passées.En particulier, les modèles exponentiels et logistiques ne tiennent absolument ps compte de ladistribution des âges des populations [3, section 1.3, page 13] or, chez les humains, la vitesse dereproduction dépend fortement de l’âge et peut difficilement être représentée, de façon satisfaisante,par un simple paramètre k. Pour tenir compte de l’âge, il faut donc que l’accroissement de ypxqdépende des populations ypx ´ τq à tous les instants précédents x ´ τ et soit même la somme descontributions de ces populations. En passant à la limite, cette somme devient une intégrale. Voici unexemple d’équation intégrale modélisant une dynamique de population humaine [2, section 2.1.1] :

ypxq “ α spxq ` k

ż x

0spx´ τq ypτq dτ . (3)

1

Le paramètre α représente la population initiale. Le paramètre k agit sur la vitesse d’accroissement.La fonction spxq est une « fonction de survie », c’est-à-dire une fonction à valeur dans r0, 1s, quidonne la fraction de la population née au temps 0, toujours vivante au temps x. Par conséquent,spx ´ τq donne la fraction de la population née au temps τ , toujours vivante au temps x (voirFigure 1). Une telle fonction n’est bien sûr pas donnée par une formule mathématique mais peutavoir été établie par des mesures statistiques, sous la forme d’un tableau de valeurs.

Le cours commence par l’étude de méthodes d’interpolation (formule de Lagrange, différencesdivisées de Newton, splines). De telles méthodes peuvent être appliquées pour transformer le ta-bleau de valeurs qui définit la fonction de survie en une fonction lisse, plus agréable à manipuler.Il continue par l’étude de méthodes d’intégration numérique (méthode des trapèzes, de Simpson).Combinées à des techniques d’algèbre linéaire, ces méthodes permettent de résoudre numériquementl’équation intégrale (3). La dernière partie du cours est consacrée aux méthodes numériques d’inté-gration des équations différentielles (schémas d’Euler, de Runge-Kutta), qui permettent de résoudrenumériquement les modèles exponentiels (1), logistiques (2) et même ceux du type (3), pour peuqu’on fasse quelques hypothèses simplificatrices sur la fonction de survie [1, chapter II, section 17,page 351] et qu’on dérive l’équation intégrale pour obtenir une équation différentielle. On les illustresur un problème d’astronomie 1 : le problème restreint à trois corps.

En 2019, ce support s’est enrichi d’un chapitre supplémentaire dédié aux splines lissantes.Les travaux pratiques sont réalisés en FORTRAN, avec l’aide du logiciel de calcul formel

MAPLE. Pour finir, je voudrais remercier Serge Petiton, qui a fondé ce cours, Mélanie Goguillot(IS2A5 2015) pour avoir repéré une erreur dans le chapitre sur l’intégration numérique, AméliePoilvert (IS2A5 2016), Benoît Verhaeghe (IS4 2016) pour avoir corrigé des formules dans le chapitresur l’interpolation.

0

0.2

0.4

0.6

0.8

1

1.2

0 τ

spxqspx´ τq

Figure 1 – Une fonction de survie, inspirée de [2, Page 3].

1. Aucun lien avec la dynamique de populations ? Pas si sûr : les modèles différentiels et intégraux mentionnésdans cette introduction ont été fortement étudiés par Vito Volterra (1860-1940). L’équation (3) est d’ailleurs uneéquation de Volterra de la première espèce. Mais c’est surtout après 1918 que Volterra s’est intéressé à la biologie.Plus jeune, il s’est intéressé à la physique mathématique. Il paraît qu’à l’âge de 13 ans, après la lecture du roman deJules Verne De la Terre à la Lune, il a essayé de calculer la trajectoire d’un projectile dans le champ gravitationnelcombiné de la Terre et de la Lune : c’est le problème restreint à trois corps. Quarante ans plus tard, en 1912, ildémontra sa solution dans une série de cours à la Sorbonne [4, Biography of Vito Volterra, page 5].

2

Bibliographie

[1] Ernst Hairer, Syvert Paul Norsett, and Gerhard Wanner. Solving ordinary differential equationsI. Nonstiff problems, volume 8 of Springer Series in Computational Mathematics. Springer–Verlag, New York, 2nd edition, 1993.

[2] Abdul J. Jerri. Introduction to Integral Equations with Applications, volume 93 of Monographsand Textbooks in Pure and Applied Mathematics. Marcel Dekker Inc., 1985.

[3] J. D. Murray. Mathematical Biology I. An Introduction, volume 17 of Interdisciplinary AppliedMathematics. Springer Verlag, third edition, 2002.

[4] Vito Volterra. Theory of functionals and of integral and integro-differential equations. DoverPubli. Inc., 1959. with a biography and a bibliography by Sir Edmund Whittaker.

3

Table des matières

1 Interpolation 61.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.2 À quoi l’interpolation sert-elle ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.3 Erreur de l’interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.4 Calcul du polynôme d’interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.4.1 La formule de Lagrange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.4.2 L’algorithme de Neville . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.4.3 Explication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.4.4 Les différences divisées de Newton . . . . . . . . . . . . . . . . . . . . . . . . 111.4.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.5 Les splines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.5.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.5.2 Définition et propriétés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.5.3 Calcul des coefficients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2 Les Splines Lissantes 182.1 Le problème posé par Reinsch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.2 La solution est une spline cubique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.3 Une propriété de la dérivée troisième de la solution . . . . . . . . . . . . . . . . . . . 212.4 Calcul des coefficients de la spline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2.4.1 Formulation matricielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.5 Calcul du paramètre de lissage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

2.5.1 Formulation avec multiplicateur de Lagrange . . . . . . . . . . . . . . . . . . 262.5.2 Calcul de p en fonction de S . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272.5.3 Paramétrage par le degré de liberté . . . . . . . . . . . . . . . . . . . . . . . . 282.5.4 Calcul du paramètre optimal . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3 Intégration Numérique 313.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313.2 Les méthodes composites et leur ordre . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3.2.1 La formule des trapèzes composites . . . . . . . . . . . . . . . . . . . . . . . . 333.2.2 La formule de Simpson composite . . . . . . . . . . . . . . . . . . . . . . . . . 333.2.3 Formules de Newton-Cotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

4

4 Intégration Numérique des Équations Différentielles 384.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384.2 Éléments théoriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

4.2.1 Systèmes d’équations différentielles . . . . . . . . . . . . . . . . . . . . . . . . 434.3 Les schémas élémentaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

4.3.1 Le schéma d’Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444.3.2 Le schéma de Runge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

4.4 Les schémas de Runge-Kutta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504.4.1 Erreur locale et erreur globale . . . . . . . . . . . . . . . . . . . . . . . . . . . 514.4.2 Ordre d’un schéma de Runge-Kutta . . . . . . . . . . . . . . . . . . . . . . . 514.4.3 Détermination de l’ordre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

4.5 Intégrateur à pas adaptatif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564.5.1 Contrôle du pas en pratique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584.5.2 Sortie dense . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604.5.3 Implantation en FORTRAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

4.6 Les schémas de Runge-Kutta implicites . . . . . . . . . . . . . . . . . . . . . . . . . . 664.6.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 664.6.2 Structure des schémas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 684.6.3 Le système non linéaire à résoudre . . . . . . . . . . . . . . . . . . . . . . . . 694.6.4 Méthode de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 694.6.5 Détermination de l’ordre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714.6.6 Intégrateur à pas adaptatif . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

5

Chapitre 1

Interpolation

1.1 Introduction

Par deux points distincts, il passe une unique droite. Cette observation se généralise. Le problèmede l’interpolation s’exprime ainsi : étant donnés n` 1 points

ˆ

x0y0

˙

,

ˆ

x1y1

˙

, . . . ,

ˆ

xnyn

˙

,

d’abscisses distinctes deux-à-deux, trouver l’unique polynôme ppxq de degré au plus n dont le graphepasse par les n ` 1 points (dans le cas de 2 points, on a n “ 1 et le graphe d’un polynômeppxq “ a1 x` a0 de degré 1 est bien une droite).

´3

´2

´1

0

1

2

3

4

2 4 6 8 10 12 14 16 18

lnpxq

P pxq

´0.5

0

0.5

1

1.5

´3 ´2 ´1 0 1 2 3

1{p1` 25x2q

P pxq

Figure 1.1 – Deux exemples d’interpolation avec 7 points équidistants. L’exemple de gauche montreque le polynôme d’interpolation peut permettre de reproduire assez fidèlement la courbe initiale dansl’intervalle d’interpolation mais très rarement en dehors de cet intervalle (un polynôme d’interpola-tion n’est pas un polynôme d’extrapolation). L’exemple de droite montre que, même dans l’intervalled’interpolation, le graphe du polynôme peut avoir une forme très différente de celle de la courbeinitiale.

D’un point de vue théorique, l’existence et l’unicité du polynôme d’interpolation s’établissentfacilement. Il suffit d’attribuer des coefficients indéterminés an, . . . , a1, a0 au polynôme d’interpola-

6

tion ppxq “ an xn ` ¨ ¨ ¨ ` a1 x` a0 et de poser que son graphe passe par les n` 1 points :

an xn0 ` ¨ ¨ ¨ ` a1 x0 ` a0 “ y0 ,

an xn1 ` ¨ ¨ ¨ ` a1 x1 ` a0 “ y1 ,

...an x

nn ` ¨ ¨ ¨ ` a1 xn ` a0 “ yn .

On aboutit à un système d’équations linéaires exactement déterminé :¨

˚

˚

˚

˝

xn0 . . . x0 1xn1 . . . x1 1...

......

xnn . . . xn 1

˛

loooooooooooomoooooooooooon

A

¨

˚

˚

˚

˝

an...a1a0

˛

looomooon

x

¨

˚

˚

˚

˝

y0y1...yn

˛

looomooon

b

.

Les coefficients de A sont des puissances des abscisses des n ` 1 points. Les coefficients de b sontles ordonnées. Comme les points sont supposés donnés, la matrice A et le vecteur b se calculentfacilement. La matrice A a une forme particulière : c’est une matrice de Vandermonde. Cette matriceest inversible si et seulement si les xi sont distincts deux-à-deux [5, Proposition 109, page 209]. Lesystème d’équations linéaires a donc une unique solution, qu’on peut calculer par factorisation LUou par factorisation QR. Cette solution fournit les coefficients du polynôme ppxq recherché.

On peut remarquer que le coefficient dominant, an, de ppxq peut fort bien être nul. Dans ce cas,le polynôme ppxq est de degré strictement inférieur 1 à n.

On pourrait aussi vouloir chercher un polynôme de degré strictement inférieur à n qui passe « auplus près » des n ` 1 points. On aboutit alors à des problèmes de moindres carrés, qui se mettenten équation de la même façon et se résolvent, eux-aussi, par factorisation QR. Voir le support ducours de [2, chapitres 4, 6 et 7].

1.2 À quoi l’interpolation sert-elle ?

On sait bien qu’il est facile d’évaluer un polynôme quand on connaît ses coefficients. En tantqu’outil théorique, l’interpolation résout le problème inverse et montre qu’un polynôme de degré npeut aussi bien se représenter par ses n`1 coefficients que par ses valeurs en n`1 points quelconques.Cette observation est la base des algorithmes les plus rapides connus pour la multiplication depolynômes.

L’interpolation apparaît aussi comme sous-problème dans de nombreux problèmes plus appli-qués. Par exemple, pour intégrer une expression compliquée, il suffit de l’évaluer en n ` 1 points,d’approximer l’expression par un polynôme de degré n (interpolation) et d’intégrer ce polynôme.Cette observation est la base des schémas d’intégration numériques.

Enfin l’interpolation, en un sens plus large, où on ne cherche plus un polynôme mais d’autrestypes d’expressions mathématiques, est à la base de nombreuses techniques de compression desdonnées (le format JPEG, par exemple). Pour plus de détails, on conseille la lecture de [3, chapitre II].

1. Par trois points, il passe en général une parabole mais, si les trois points sont alignés, la parabole dégénère enune droite.

7

1.3 Erreur de l’interpolation

Supposons que les n` 1 points appartiennent au graphe d’une fonction y “ fpxq. On s’intéresseà l’erreur de l’interpolation, c’est-à-dire l’écart entre le graphe de la fonction et celui du polynômed’interpolation ppxq. Voir Figure 1.1 pour des exemples.

Le théorème 1 suivant permet de majorer l’écart entre le graphe de la fonction et celui dupolynôme d’interpolation, même en dehors de l’intervalle d’interpolation rminxi,maxxis ! Il faitintervenir la dérivée pn` 1q-ième de fpxq, notée f pn`1qpxq. Il implique que si fpxq est un polynômede degré n alors, ppxq “ fpxq. Un exemple, montrant comment utiliser le théorème, est donnéFigure 1.2.

Théorème 1 Supposons fpxq définie sur un intervalle ra, bs (pas nécessairement inclus dans l’in-tervalle d’interpolation) et n` 1 fois dérivable sur cet intervalle. Alors, pour tout x P ra, bs, il existeξ P rminpxi, xq,maxpxi, xqs tel que

fpxq ´ ppxq “ px´ x0q px´ x1q ¨ ¨ ¨ px´ xnqf pn`1qpξq

pn` 1q!¨

Preuve. Voir [3, Théorème 2.2, page 27]. l

0

2e´ 07

4e´ 07

6e´ 07

8e´ 07

1e´ 06

1.2e´ 06

1.4e´ 06

1.6e´ 06

1.8e´ 06

2e´ 06

5 6 7 8 9 10 11

1{p7x7q

´0.0002

´0.00015

´0.0001

´5e´ 05

0

5e´ 05

0.0001

0.00015

0.0002

5 6 7 8 9 10 11

2 10´6 px´ 5q px´ 6q ¨ ¨ ¨ px´ 11q

Figure 1.2 – Illustration du thèorème 1 sur l’exemple de la Figure 1.1, à gauche. On a fpxq “ lnpxqet n “ 6. On a pris ra, bs égal à l’intervalle d’interpolation r5, 11s. En traçant le graphe de f p7qpξq{7! “1{p7 ξ7q pour ξ P ra, bs, on trouve que cette expression est majorée par 2 10´6 (à gauche). D’aprèsle théorème, sur l’intervalle ra, bs, on a donc |fpxq ´ ppxq| ď |2 10´6 px´ 5q px´ 6q ¨ ¨ ¨ px´ 11q| . Entraçant le graphe de cette expression, on trouve que l’erreur ne dépasse par 2 10´4 (à droite).

1.4 Calcul du polynôme d’interpolation

Les n`1 points étant fixés, le polynôme d’interpolation ppxq est défini de façon unique. Il existeplusieurs méthodes pour le déterminer. Parmi celles-ci :

— la formule de Lagrange 2, conceptuellement très simple ;

2. Joseph-Louis Lagrange (1736-1813).

8

— l’algorithme de Neville 3 ;— la technique des différences divisées de Newton 4.

Aussi bien l’algorithme de Neville que les différences divisées de Newton permettent d’évaluer lepolynôme d’interpolation ppxq sans calculer ses coefficients an, . . . , a1, a0, ce qui est avantageuxnumériquement. L’algorithme de Neville est plus rapide si on cherche les valeurs de ppxq pour unnombre de valeurs de x inférieur à n. Dans le cas contraire, les différences divisées de Newton sontplus efficaces parce qu’on peut les précalculer avant de procéder aux évaluations.

1.4.1 La formule de Lagrange

On cherche à exprimer le polynôme d’interpolation sous la forme d’une somme :

ppxq “

nÿ

i“0

Lipxq .

On cherche donc un polynôme Lipxq pour chacun des points pxi, yiq. Il suffit donc que ces n ` 1polynômes Lipxq vérifient :

Lipxiq “ yi , Lipxjq “ 0 (pour j ‰ i) .

Fixons un indice 0 ď i ď n. La condition Lipxjq “ 0 (pour j ‰ i) impose que Lipxq soit de la formesuivante, où ci est un réel qui reste à déterminer :

Lipxq “ ci px´ x0q ¨ ¨ ¨ px´ xi´1q px´ xi`1q ¨ ¨ ¨ px´ xnq .

La condition Lipxiq “ yi impose alors 5 la valeur de ci :

ci “yi

pxi ´ x0q ¨ ¨ ¨ pxi ´ xi´1q pxi ´ xi`1q ¨ ¨ ¨ pxi ´ xnq¨

1.4.2 L’algorithme de Neville

Commençons par la recette et par un exemple. L’algorithme se résume à la récurrence suivante.Le polynôme d’interpolation recherché se trouve en p0,n.

pi,0pxq “ yi p0 ď i ď nq,

pi,jpxq “pxi ´ xq pi`1,j´1pxq ` px´ xi`jq pi,j´1pxq

xi ´ xi`jp1 ď j ď n , 0 ď i ď n´ jq.

Voici un exemple (n “ 3) :xi 1 2 3 5yi 1 4 2 5

3. Eric Harold Neville (1889-1961).4. Isaac Newton (1643-1727).5. Le fait que les abscisses soient distinctes deux-à-deux évite une division par zéro.

9

Les polynômes pi,j peuvent être organisés suivant un tableau. Le calcul se fait colonne par colonne.Chaque case pi,j se calcule à partir de la case pi,j´1 située à sa gauche et de la case pi`1,j´1, situéeen bas, à gauche.

ij 0 1 2 3

0 1 3x´ 2 ´5

2x2 `

21

2x´ 7

11

12x3 ´ 8x2 `

247

12x´

25

2

1 4 ´2x` 87

6x2 ´

47

6x` 15

2 23

2x´

5

2

3 5

Numériquement, l’indéterminée x est un nombre à virgule flottante. Pour chaque valeur de x, onremplit la matrice et on trouve la valeur du polynôme d’interpolation pour cette valeur de x en p0,n.

1.4.3 Explication

L’argumentation ci-dessous justifie non seulement l’algorithme précédent mais permet aussi d’in-troduire les différences divisées de Newton 6. Elle est fortement inspirée de [4].

Oublions temporairement la relation de récurrence précédente et définissons pi,j comme le poly-nôme d’interpolation dont le graphe passe par les j` 1 points d’indices i, . . . , i` j. Supposons poursimplifier que pi,j soit de degré j exactement. Notons c son coefficient dominant. Alors on a :

pi,j ´ pi,j´1 “ c px´ xiq ¨ ¨ ¨ px´ xi`j´1q . (1.1)

Preuve. Il suffit de montrer que la différence pi,j ´ pi,j´1 est un polynôme de degré j, decoefficient dominant c, ayant j racines xi, . . . , xi`j´1. Les deux polynômes sont de degrés res-pectifs j et j ´ 1. La différence des deux est donc de degré j et a un coefficient dominant égalà c. Comme pi,j et pi,j´1 sont deux polynômes d’interpolation ayant les j points d’indices ià i` j ´ 1 en commun, leur différence s’annule sur les abscisses de ces j points. l

Par un raisonnement similaire,

pi,j ´ pi`1,j´1 “ c px´ xi`1q ¨ ¨ ¨ px´ xi`jq . (1.2)

Par conséquent,pi,j ´ pi,j´1pi,j ´ pi`1,j´1

“x´ xix´ xi`j

¨

Il suffit de tirer pi,j en fonction des autres expressions pour retrouver la récurrence de Neville.

Le même type de raisonnement, permet de calculer les coefficients dominants (notons-les ci,j)des polynômes pi,j plutôt que les polynômes eux-mêmes. On a :

pi`1,j´1 ´ pi,j´1 “ pci`1,j´1 ´ ci,j´1q px´ xi`1q ¨ ¨ ¨ px´ xi`j´1q . (1.3)

6. Neville a vécu 200 ans après Newton.

10

Preuve. Les deux polynômes ont même degré, j´ 1. Le coefficient dominant de leur différenceest donc égal à la différence de leurs coefficients dominants. Ce sont deux polynômes d’interpo-lation ayant les j´ 1 points d’indices i` 1 à i` j´ 1 en commun. Leur différence s’annule doncsur les abscisses de ces j ´ 1 points. l

Considérons l’égalité évidente

pi,j ´ pi,j´1looooomooooon

(1.1)

“ pi,j ´ pi`1,j´1looooooomooooooon

(1.2)

` pi`1,j´1 ´ pi,j´1looooooooomooooooooon

(1.3)

.

En remplaçant les expressions soulignées par les formules correspondantes, on trouve :

ci,j px´ xiq ¨ ¨ ¨ px´ xi`j´1q “ ci,j px´ xi`1q ¨ ¨ ¨ px´ xi`jq

` pci`1,j´1 ´ ci,j´1q px´ xi`1q ¨ ¨ ¨ px´ xi`j´1q

Divisons les deux membres de l’égalité par px´ xi`1q ¨ ¨ ¨ px´ xi`j´1q. On obtient :

ci,j px´ xiq “ ci,j px´ xi`jq ` pci`1,j´1 ´ ci,j´1q

et donc

ci,j “ci`1,j´1 ´ ci,j´1

xi`j ´ xi¨ (1.4)

Ces coefficients ci,j sont les différences divisées de Newton.

1.4.4 Les différences divisées de Newton

La méthode de Newton consiste à calculer le tableau des différences divisées ci,j en utilisant larécurrence (1.4) :

ci,0 “ yi p0 ď i ď nq,

ci,j “ci`1,j´1 ´ ci,j´1

xi`j ´ xip1 ď j ď n , 0 ď i ď n´ jq.

Les coefficients peuvent être organisés suivant un tableau, comme pour l’algorithme de Neville. Lagrande différence par rapport à celui-ci, c’est que le tableau ne dépend pas de x et peut se calculerune fois pour toutes. Sur l’exemple précédent, on trouve :

ij 0 1 2 3

0 1 3 ´5

2

11

12

1 4 ´27

6

2 23

2

3 5

11

Il ne reste plus qu’à reconstruire le polynôme d’interpolation p0,n à partir des coefficients. On sesert pour cela de la relation (1.2), qui exprime le polynôme pi,j en fonction du polynôme pi`1,j´1situé sur la case en bas à gauche. En remontant la diagonale, on trouve :

pn,0 “ p3,0 “ c3,0“ 5 ,

p2,1 “ c3,0 ` c2,1 px´ x3q

“ 5`3

2px´ 5q ,

p1,2 “ c3,0 ` c2,1 px´ x3q ` c1,2 px´ x3q px´ x2q

“ 5`3

2px´ 5q `

7

6px´ 5q px´ 3q ,

p0,n “ p0,3 “ c3,0 ` c2,1 px´ x3q ` c1,2 px´ x3q px´ x2q ` c0,3 px´ x3q px´ x2q px´ x1q

“ 5`3

2px´ 5q `

7

6px´ 5q px´ 3q `

11

12px´ 5q px´ 3q px´ 2q .

On a bien sûr tout intérêt à utiliser un schéma de Horner 7 (le pseudo-code correspondant se trouveen Figure 1.3) :

p0,3 “ ppc0,3 px´ x1q ` c1,2q px´ x2q ` c2,1q px´ x3q ` c3,0 .

p = c0,nfor i “ n´ 1, n´ 2, . . . , 0 dop = p px´ xn´iq ` cn´i,i

end do

Figure 1.3 – Schéma de Horner évaluant le polynôme d’interpolation p0,n à partir de la matricepci,jq des différences divisées.

1.4.5 Conclusion

La technique des différences divisées de Newton est plus efficace que l’algorithme de Nevillelorsqu’on a besoin d’évaluer le polynôme d’interpolation pour un grand nombre de valeurs de x.Dans les deux cas, on obtient des formules un peu plus simples (mais des explications un peu pluscompliquées) en transformant les récurrences pour calculer des matrices triangulaires inférieuresplutôt que supérieures.

1.5 Les splines

Les splines sont, comme les polynômes d’interpolation, des fonctions calculées à partir de pointsexpérimentaux mais leur graphe est beaucoup plus proche de celui qu’on obtiendrait si on traçait

7. Il s’agit d’un schéma de Horner un peu particulier. Le schéma de Horner classique est une formule permettantd’évaluer un polynôme de degré n au moyen de nmultiplications, alors qu’une évaluation naive en demande n pn`1q{2.Le schéma de Horner est résumé par la formule suivante (cas n “ 4) :

a4 x4` a3 x

3` a2 x

2` a1 x` a0 “ pppa4 x` a3qx` a2q x` a1q x` a0 .

Il est nommé d’après William George Horner (1819-1845). On l’appelle aussi parfois : schéma de Ruffini-Horner.

12

les courbes à la main.

1.5.1 Motivation

Quelques graphiques valent mieux qu’un long discours. La Figure 1.4 montre que les graphesdes polynômes d’interpolation peuvent atteindre des valeurs fort éloignées des ordonnées des pointsexpérimentaux, en particulier en bordure des intervalles d’interpolation. Ces grandes variationsrendent les polynômes d’interpolation difficilement utilisables dans les cas où la fonction recherchéeest par nature monotone ou comprise dans un intervalle précis. Par comparaison, les splines ont uncomportement beaucoup moins imprévisible, bien qu’on ne puisse pas, en toute rigueur, garantirdes propriétés telle que la monotonie ou l’appartenance à un intervalle fixé.

La Figure 1.5 montre que le graphe du polynôme d’interpolation est très sensible à l’ajout ouau retrait d’un point expérimental, y compris à grande distance de la perturbation. Ce phénomènecontre-intuitif ne se produit pas avec les splines, pour lesquelles on peut montrer que l’effet d’uneperturbation s’amenuise lorsqu’on s’en éloigne.

Enfin, la Figure 1.6 montre que les splines peuvent être utilisées pour produire des courbespériodiques : une propriété impossible à obtenir avec un unique polynôme d’interpolation. Ellemontre aussi que les splines peuvent être employées pour lisser des signaux. Cette propriété fortutile en pratique est étudiée en détail au chapitre 2.

0

1

2

3

4

0 1 2 3 4 5 6 7

´0.2

0

0.2

0.4

0.6

0.8

1

1.2

´1 0 1 2 3 4 5 6 7 8

Figure 1.4 – Les points expérimentaux sont les mêmes pour les deux graphes. Ce sont ceuxd’une « fonction de survie » qui est, par nature, une fonction strictement décroissante dans l’inter-valle r0, 1s. À gauche, le graphe du polynôme d’interpolation défini par les points. À droite, celui dela spline cubique naturelle.

1.5.2 Définition et propriétés

On suppose donnés n` 1 pointsˆ

x0y0

˙

,

ˆ

x1y1

˙

, . . . ,

ˆ

xnyn

˙

.

Les abscisses des points sont appelées des nœuds (knots en Anglais). On les suppose ordonnées parordre croissant

x0 ă x1 ă ¨ ¨ ¨ ă xn .

13

1

2

3

4

5

6

7

8

9

10

11

2 4 6 8 10 12

"evaporation-interp.dat""evaporation-interp-avec-mars.dat"

"evaporation.dat"

1

2

3

4

5

6

7

8

9

2 4 6 8 10 12

"evaporation-spline.dat""evaporation-spline-avec-mars.dat"

"evaporation.dat"

Figure 1.5 – Les points expérimentaux sont les mêmes pour les deux graphes. Ce sont des mesuresde l’évaporation de l’eau (en pouces) au Waite Institute, Adelaide, Australie [1, chapter 6, Figure6.04, page 134]. Chaque mesure est une moyenne, calculée à partir de relevés journaliers, sur unepériode de 23 ans. Les mesures montrent que l’évaporation décroît graduellement de janvier à juin-juillet, pour remonter d’août à décembre (les saisons sont inversées, dans l’hémisphère sud). Le pointcorrespondant au mois de mars semble anormal. À gauche, le graphe du polynôme d’interpolationdéfini par les points. À droite, celui de la spline cubique naturelle.

Définition 1 Une spline cubique est une fonction spxq deux fois dérivable sur l’intervalle ra, bs,qui se réduit à un polynôme de degré 3 sur chaque sous-intervalle rxi, xi`1s de ra, bs.

Concrètement, toute spline cubique est donc une fonction définie par morceaux

spxq “

$

&

%

s0pxq px ă x1q ,s1pxq px ă x2q ,...

...sn´2pxq px ă xn´1q ,sn´1pxq (sinon) ,

où chaque morceau sipxq est défini par un polynôme de degré 3 (une cubique).Entre deux nœuds consécutifs, le graphe d’une spline cubique est celui d’un polynôme : il est

donc indéfiniment dérivable (il est de classe C8). Au niveau des nœuds intérieurs (on appelle nœudsintérieurs les n´1 nœuds x1, . . . , xn´1), le raccord entre deux cubiques consécutives est de classe C2

seulement. Mathématiquement, une spline est doncmoins lisse qu’un polynôme d’interpolation, bienqu’on puisse avoir le sentiment contraire visuellement !

Le fait que les raccords soient C2 suffit à assurer à la spline cubique un graphe proche de celuiqu’on aurait naturellement tracé à la main. La Figure 1.7 montre qu’un raccord C1 n’est en généralpas suffisant visuellement ; il est très difficile d’apprécier à l’œil nu la différence entre un raccord C2

et un raccord C3.

1.5.3 Calcul des coefficients

Dans cette section, on se concentre sur les idées simples. Une méthode pratique est donnée auchapitre 2.

14

2

4

6

8

10

2 4 6 8 10 12

"evaporation-spline-avec-mars.dat""evaporation-spline-periodique-avec-mars.dat"

"evaporation.dat"

0.6

0.7

0.8

0.9

1

1.1

1.2

1.3

1.4

10 12 14 16 18 20 22 24 26

"points.dat""spline-lissante-0.01.dat"

Figure 1.6 – Plutôt que des splines naturelles, il est souvent utile d’utiliser des splines périodiques.À gauche, le graphe de la spline cubique naturelle et celui de la spline cubique périodique définiespar les mesures d’évaporation de l’eau en Australie. Dans tous les graphiques précédents, les splinessont interpolantes : leur graphe passe par les points expérimentaux. Mais dans de nombreusesapplications, il est utile d’utiliser des splines lissantes, comme sur le graphique de droite. Le degréde lissage dépend d’un paramètre.

Idée. Supposons qu’on se donne deux points px0, y0q et px1, y1q ainsi que deux pentes p0 et p1.Il est alors facile de déterminer les coefficients d’un polynôme de degré 3 dont le graphe arriveen px0, y0q avec une tangente de pente p0 et en px1, y1q avec une tangente de pente p1. Notonsfpxq “ a0 ` a1 x ` a2 x

2 ` a3 x3 un polynôme de degré trois dont les coefficients ai restent à

déterminer. On a f 1pxq “ a1 ` 2 a2 x ` 3 a3 x2. Les conditions à satisfaire forment un système de

quatre équations linéaires en quatre inconnues : la solution est unique.$

&

%

fpx0q “ a0 ` a1 x0 ` a2 x20 ` a3 x

30 “ y0 ,

fpx1q “ a0 ` a1 x1 ` a2 x21 ` a3 x

31 “ y1 ,

f 1px0q “ a1 ` 2 a2 x0 ` 3 a3 x20 “ p0 ,

f 1px1q “ a1 ` 2 a2 x1 ` 3 a3 x21 “ p1 .

Ce type d’interpolation est appelé interpolation de Hermite. Il est alors facile d’en déduire commentconstruire une fonction une fois dérivable sur tout l’intervalle ra, bs.

Pour obtenir une fonction deux fois dérivable, il suffit de s’y prendre plus intelligemment, c’est-à-dire sans imposer les valeurs des dérivées aux nœuds intérieurs : on se contente d’imposer que cesvaleurs soient égales et on laisse le système d’équations les déterminer.

Les n` 1 nœuds sont reliés par n cubiques s0pxq, . . . , sn´1pxq. Chaque cubique comporte quatrecoefficients indéterminés. Il s’agit donc de déterminer les valeurs de 4n coefficients. On cherchedonc un système de 4n équations linéaires. On commence par poser que les cubiques passent parles points. On obtient 2n équations :

"

sipxiq “ yi pi “ 0, . . . , n´ 1q ,sipxi`1q “ yi`1 pi “ 0, . . . , n´ 1q .

On pose que les dérivées premières et secondes sont égales en chaque nœud intérieur. On obtient

15

´8

´6

´4

´2

0

2

4

2 2.2 2.4 2.6 2.8 3 3.2 3.4

raccord C2

raccord C1

Figure 1.7 – La différence entre un raccord C1 et un raccord C2 peut s’apprécier visuellement. Leraccord a lieu au point p3,´1q.

2n´ 2 nouvelles équations :"

s1i´1pxiq “ s1ipxiq pi “ 1, . . . , n´ 1q ,s2i´1pxiq “ s2i pxiq pi “ 1, . . . , n´ 1q .

Il reste deux équations à trouver. Une solution consiste à imposer que les dérivées secondes soientnulles aux extrémités : s20px0q “ s2n´1pxnq “ 0. La spline cubique, qui est alors définie de façonunique, est dite naturelle :

Définition 2 Une spline cubique spxq est dite naturelle si s2paq “ s2pbq “ 0.

Une autre solution consiste à imposer que les dérivées premières et secondes soient identiques auxdeux extrémités. C’est ainsi qu’on obtient les splines périodiques (attention : il faut le faire avecsoin).

16

Bibliographie

[1] L. C. Birch and H. G. Andrewartha. The Distribution and Abundance of Animals. The Universityof Chicago Press, 1954.

[2] François Boulier. Calcul Numérique. Algèbre Linéaire. Technical report, Université Lille 1,59655, Villeneuve d’Ascq, France, 2013. Support de cours de IS3, accessible sur https://pro.univ-lille.fr/francois-boulier.

[3] Ernst Hairer and Gerhard Wanner. Introduction à l’Analyse Numérique. Accessible sur http://www.unige.ch/~hairer, juin 2005.

[4] Wikipedia. Algorithme de Neville. fr.wikipedia.org/wiki/Algorithme_de_Neville.

[5] Richard Zippel. Effective Polynomial Computation. Springer Science + Business Media LLC,1993.

17

Chapitre 2

Les Splines Lissantes

Ce chapitre est de nature plus technique que les autres. On y approfondit la notion de splinelissante — smoothing spline en Anglais en n’utilisant que des arguments mathématiques accessiblesà un étudiant de la spécialité IS. Il s’agit d’une notion importante en data science, abordée dans [2]et implantée dans le logiciel R.

Le texte de référence est celui de Reinsch [6]. Ce chapitre a beaucoup bénéficié du livre dePrenter [5] qui constitue un texte de référence très lisible sur les splines en général, de l’article dePollock [4] pour la présentation calculatoire et de la relecture du texte de Reinsch par Cline [1].

0

1

2

3

4

5

6

0 2 4 6 8 10

p “ 10´5

p “ 0.5

p “ 105

Figure 2.1 – Des données expérimentales et les splines lissantes pour trois valeurs du paramètre p(qui peut se déduire de S). On observe en particulier que, quand p tend vers zéro, la spline tend versla droite de régression linéaire et que, quand p tend vers `8, elle tend vers la spline interpolante.

2.1 Le problème posé par Reinsch

On considère n ` 1 points pxi, yiq pour 0 ď i ď n. À chaque point est associé un réel σi ą 0.On suppose que les abscisses a “ x0 ă x1 ă ¨ ¨ ¨ ă xn “ b (appelées aussi les nœuds — knots en

18

Anglais) subdivisent l’intervalle ra, bs en n sous-intervalles.Reinsch cherche une fonction 1 fpxq deux fois dérivable sur ra, bs qui minimise

ż b

apg2q2 dx (2.1)

parmi les fonctions gpxq qui vérifient la contrainte (2.2) où S ě 0 est un paramètre donné :

nÿ

i“0

ˆ

gpxiq ´ yiσi

˙2

ď S . (2.2)

2.2 La solution est une spline cubique

Définition 3 On dit qu’une spline cubique spxq interpole une fonction fpxq dérivable sur ra, bs sispxiq “ fpxiq pour 0 ď i ď n.

La proposition suivante correspond à la first integral relation de [5, page 96].

Proposition 1 Soient fpxq une fonction deux fois dérivable sur l’intervalle ra, bs et spxq une splinecubique naturelle interpolant f . Alors

ż b

apf2q2 dx “

ż b

aps2q2 dx`

ż b

apf2 ´ s2q2 dx . (2.3)

Preuve. Comme

pf2q2 “ ppf2 ´ s2q ` s2q2 “ pf2 ´ s2q2 ` 2 pf2 ´ s2q s2 ` ps2q2 ,

il suffit de prouver queż b

a

pf2 ´ s2q s2 dx “ 0 .

Le reste de la preuve est un exercice d’intégration par parties. Comme la dérivée troisième s3est constante sur chaque sous-intervalle, on découpe l’intégrale en

ż b

a

pf2 ´ s2q s2 dx “

nÿ

i“1

ż xi

xi´1

pf2 ´ s2q s2 dx .

Sur chaque sous-intervalle, on a, en intégrant par parties,ż xi

xi´1

pf2 ´ s2q s2 dx ““

pf 1 ´ s1q s2‰xi

xi´1´

ż xi

xi´1

pf 1 ´ s1q s3 dx .

Mais la somme suivante est nulle : l’égalité 1 est due à une simplification téléscopique ; l’égalité2 est due 2 à l’hypothèse de spline naturelle : s2paq “ s2pbq “ 0 :

nÿ

i“1

pf 1 ´ s1q s2‰xi

xi´1“1

pf 1 ´ s1q s2‰b

a“2

0 .

1. Par la suite, on écrit souvent f, s ou g au lieu de fpxq, spxq ou gpxq pour alléger les notations.2. Prenter suppose f 1paq “ s1paq et f 1pbq “ s1pbq, ce qui conduit à la même conclusion.

19

Il ne reste plus qu’à vérifier que la somme suivante est nulle : l’égalité 3 s’établit en remarquantque s3 est une constante ci sur chaque sous-intervalle rxi´1, xis ; l’égalité 4 en remarquant quef ´ s est une primitive de f 1 ´ s1 ; l’égalité 5 en utilisant le fait que s interpole f .

nÿ

i“1

ż xi

xi´1

pf 1 ´ s1q s3 dx “3

nÿ

i“1

ci

ż xi

xi´1

pf 1 ´ s1qdx “4

nÿ

i“1

ci rf ´ ssxi

xi´1“5

0 .

l

Les deux propositions suivantes sont très proches des deux théorèmes donnés dans [5, pages100-101]. Elles découlent de la proposition 1.

Proposition 2 La fonction identiquement nulle est l’unique spline interpolante naturelle de la fonc-tion identiquement nulle.

Preuve. La fonction identiquement nulle est une spline interpolante naturelle de la fonctionidentiquement nulle fpxq. Montrons l’unicité. Soit spxq une spline interpolante naturelle de fpxq.Alors, d’après la proposition 1 on a

ż b

a

ps2q2 dx ď

ż b

a

pf2q2 dx “ 0 .

Par conséquent, s2 “ 0 sur ra, bs et s est donc un polynôme de degré 1 sur ra, bs qu’on peutécrire

spxq “ spaq ` s1paq px´ aq .

Mais comme s interpole la fonction nulle on a spaq “ 0 et donc s1paq pb ´ aq “ 0, qui impliques1paq “ 0 aussi. Par conséquent s est identiquement nulle. l

Proposition 3 Soit f une fonction deux fois dérivable sur ra, bs. Il existe une unique spline natu-relle s qui interpole f .

Preuve. On commence par montrer que les 4n coefficients des n cubiques qui constituent ssont contraints par un système de 4n équations linéaires. Les conditions de spline naturelles2paq “ s2pbq “ 0 donnent deux équations. Les conditions spxiq “ fpxiq donnent n`1 équations.Les conditions qui expriment le fait que les cubiques doivent se raccorder ainsi que leurs dérivéespremière et deuxième, sur les nœuds intérieurs donnent 3 pn´1q équations. Au total, on obtient4n équations et donc un système d’équations linéaires Ac “ v où A est une matrice p4nqˆp4nq,c est le vecteur des coefficients des cubiques et v est un vecteur ne comportant que des zéros,les valeurs de f aux nœuds et les valeurs de f 1 en a et en b. La proposition 2 montre que dansle cas où f est la fonction identiquement nulle, ce système admet une unique solution. Donc lamatrice A est inversible. Donc la spline s existe et est unique quelle que soit la fonction f . l

La proposition suivante aussi est une conséquence de la proposition 1. Elle est plus ou moinsécrite dans [5, page 101].

Proposition 4 Soit fpxq est une fonction quelconque, deux fois dérivable sur ra, bs, interpolant n`1points d’abscisses a “ x0 ă x1 ă ¨ ¨ ¨ ă xn “ b, d’ordonnées y0, y1, . . . , yn. Si spxq est la splinecubique naturelle interpolant ces mêmes points alors

ż b

apf2q2 dx ě

ż b

aps2q2 dx . (2.4)

En particulier, si l’inégalité (2.4) est une égalité alors f est une spline cubique (mais pas forcémentla spline cubique naturelle).

20

Preuve. La proposition 3 montre l’existence de s. L’inégalité (2.4) est une conséquence de laproposition 1 et du fait que l’intégrale (2.5) est positive ou nulle.

ż b

a

pf2 ´ s2q2 dx (2.5)

Supposons que l’inégalité (2.4) soit une égalité et donc que (2.5) soit nulle. Comme f et s sontdeux fois dérivables, leur dérivée seconde est continue et la différence f2´s2 est la fonction nullesur ra, bs. Par conséquent, f2 est un polynôme de degré 1 sur chaque sous-intervalle ; donc fest un polynôme de degré 3 sur chaque sous-intervalle ; donc f est une spline cubique d’après ladéfinition 1. l

Corollaire 1 Le problème posé par Reinsch a une solution quel que soit S. Cette solution est unespline cubique.

Preuve. L’ensemble des fonctions g satisfaisant la contrainte (2.2) n’est jamais vide (même pourS “ 0), puisqu’il contient au minimum le polynôme interpolant les n` 1 points. La fonction fqui minimise (2.1) existe donc toujours. D’après la proposition 4, cette fonction est une splinecubique. l

2.3 Une propriété de la dérivée troisième de la solution

Si spxq est une spline cubique, la dérivée troisième s3 n’est pas continue en général au niveaudes nœuds. Pour tout nœud xi, on distingue donc la valeur de s3 à gauche de xi, notée s3pxiq´, desa valeur à droite, notée s3pxiq`. Pour homogénéiser les notations, on pose s3px0q´ “ s3pxnq` “ 0.

Soit fpxq la spline cubique qui minimise (2.1) parmi les fonctions satisfaisant la contrainte (2.2).Reinsch montre qu’il existe un paramètre p tel que

f3pxiq´ ´ f3pxiq` “ 2 p

fpxiq ´ yiσ2i

p0 ď i ď nq . (2.6)

Cette section est destinée à montrer cette propriété. Dans le texte de Reinsch, p est un multi-plicateur de Lagrange. Dans l’analyse ci-dessous, qui est due à Cline [1], on évite toute référence àcette notion.

Cline commence par démontrer la proposition suivante [1, Lemma 1], qui est une variation surl’argument central de la proposition 1.

Proposition 5 Soient spxq une spline cubique naturelle de nœuds a “ x0 ă x1 ă ¨ ¨ ¨ ă xn “ bet `pxq une fonction deux fois dérivable sur ra, bs. Alors

ż b

a`2 s2 dx “

nÿ

i“0

`pxiq ps3pxiq` ´ s

3pxiq´q . (2.7)

Preuve. Comme la dérivée troisième s3 est constante sur chaque sous-intervalle, on découpel’intégrale en

ż b

a

`2 s2 dx “

nÿ

i“1

ż xi

xi´1

`2 s2 dx .

21

Sur chaque sous-intervalle, on a, en intégrant par parties,ż xi

xi´1

`2 s2 dx ““

`1 s2‰xi

xi´1´

ż xi

xi´1

`1 s3 dx

Mais la somme suivante est nulle : l’égalité 1 est due à une simplification téléscopique ; l’éga-lité 2 est due à l’hypothèse de spline naturelle :

nÿ

i“1

`1 s2‰xi

xi´1“1

`1 s2‰b

a“2

0 .

À partir d’ici, la preuve diffère de celle de la proposition 1. Il ne reste plus qu’à simplifier lasomme suivante : l’égalité 3 s’établit en remarquant que s3 est constante et égale à s3pxi´1q`

sur chaque sous-intervalle rxi´1, xis et que ` est une primitive de `1 ; l’égalité 4 s’obtient endécoupant la somme en deux sous-sommes ; l’égalité 5 s’obtient en décalant de 1 les indices dela première sous-somme de façon à faire apparaître `pxiq en facteur dans les deux expressions ;l’égalité 6 vient du fait que s3pxiq´ “ s3pxi´1q` ; l’égalité 7 n’est due qu’à un réarrangementdes sommes ; l’égalité 8 s’obtient en utilisant le fait que s3px0q´ “ s3pxnq` “ 0.

´

nÿ

i“1

ż xi

xi´1

`1 s3 dx “3

´

n´1ÿ

i“0

s3pxiq` p`pxi`1q ´ `pxiqq

“4

´

n´1ÿ

i“0

s3pxiq` `pxi`1q `

n´1ÿ

i“0

s3pxiq` `pxiq

“5

´

nÿ

i“1

s3pxi´1q` `pxiq `n´1ÿ

i“0

s3pxiq` `pxiq

“6

´

nÿ

i“1

s3pxiq´ `pxiq `n´1ÿ

i“0

s3pxiq` `pxiq

“7

s3px0q` `px0q ´ s3pxnq´ `pxnq `

n´1ÿ

i“1

`pxiq ps3pxiq` ´ s

3pxiq´q

“8

nÿ

i“0

`pxiq ps3pxiq` ´ s

3pxiq´q .

l

La proposition suivante est [1, Lemma 2].

Proposition 6 Soient u et v deux vecteurs non nuls de Rn`1. Si, pour tout p P R on a u ‰ p valors il existe un vecteur w tel que wT u ą 0 et wT v ă 0.

Preuve. On note ‖¨‖ la norme euclidienne. Supposons que pour tout p P R on ait u ‰ p v.Les deux vecteurs ne sont donc pas colinéaires et, d’après l’inégalité de Cauchy-Schwartz on auT v ă ‖u‖ ‖v‖. Par conséquent,

‖u‖´ uT v

‖v‖ą 0 et ‖v‖´ uT v

‖u‖ą 0 .

Le vecteur w ci-dessous vérifie wT u ą 0 et wT v ă 0 :

w “u

‖u‖´

v

‖v‖¨

l

22

Proposition 7 Supposons S ą 0. Soit spxq une spline cubique naturelle de nœuds a “ x0 ă x1 㨠¨ ¨ ă xn “ b et vérifiant la contrainte (2.2). Si, pour tout p P R on a

s3pxiq´ ´ s3pxiq` ‰ 2 p

spxiq ´ yiσ2i

p0 ď i ď nq . (2.8)

alors il existe une autre fonction tpxq deux fois dérivable sur ra, bs, satisfaisant la contrainte (2.2)et telle que

ż b

aps2q2 dx ą

ż b

apt2q2 dx . (2.9)

En particulier, s n’est pas une solution du problème de Reinsch.

Preuve. La non existence de p implique que l’une des quantités s3pxiq´ ´ s3pxiq` soit nonnulle. On distingue deux cas. Premier cas : on suppose que l’une au moins des quantités spxiq´yiest non nulle. Alors, d’après la proposition 6, il existe un vecteur w tel que

nÿ

i“0

wi ps3pxiq´ ´ s

3pxiq`q ą 0 etnÿ

i“0

wispxiq ´ yi

σ2i

ă 0 .

Soit `pxq une fonction deux fois dérivable sur ra, bs telle que `pxiq “ wi pour 0 ď i ď n(le polynôme d’interpolation convient). Alors, en remplaçant wi par `pxiq dans les inégalitésprécédentes, on obtient :

nÿ

i“0

`pxiq ps3pxiq´ ´ s

3pxiq`q ą 0 , (2.10)

nÿ

i“0

`pxiqspxiq ´ yi

σ2i

ă 0 . (2.11)

Pour tout µ P R on a les égalités suivantes : l’égalité 1 s’obtient en développant le carré ;l’égalité 2 s’obtient en appliquant la proposition 5 sur l’intégrale du milieu :

ż b

a

ps2 ` µ `2q2 dx “1

ż b

a

ps2q2 dx` 2µ

ż b

a

`2 s2 dx` µ2

ż b

a

p`2q2 dx

“2

ż b

a

ps2q2 dx ` 2µnÿ

i“0

`pxiq ps3pxiq` ´ s

3pxiq´q ` µ2

ż b

a

p`2q2 dx

loooooooooooooooooooooooooooooooooomoooooooooooooooooooooooooooooooooon

négatif pour µ ą 0 très petit

.

D’après l’inégalité (2.10), le terme du milieu est négatif pour tout µ ą 0 et, pour peu que cemême µ soit suffisamment petit, la somme des deux derniers termes est négative. La fonctiont “ s ` µ ` vérifie l’inégalité (2.9). Pour montrer que s n’est pas la solution optimale (pourle premier cas), il ne reste plus qu’à montrer que t vérifie la contrainte (2.2). On a l’égalitésuivante :

nÿ

i“0

ˆ

spxiq ` µ `pxiq ´ yiσ2i

˙2

nÿ

i“0

ˆ

spxiq ´ yiσ2i

˙2

` 2µnÿ

i“0

`pxiqspxiq ´ yi

σ2i

` µ2nÿ

i“0

ˆ

`pxiq

σ2i

˙2

looooooooooooooooooooooooooooomooooooooooooooooooooooooooooon

négatif pour µ ą 0 très petit

. (2.12)

23

D’après l’inégalité (2.11), le terme du milieu est négatif pour tout µ ą 0 et, pour peu que cemême µ soit suffisamment petit, la somme des deux derniers termes est négative. Par conséquent,si s vérifie la contrainte (2.2) alors la fonction t “ s` µ ` la vérifie également, ce qui achève lapreuve du premier cas.

Second cas : on suppose que toutes les quantités spxiq ´ yi sont nulles. Il est encore possible detrouver un vecteur w tel que l’inégalité (2.10) soit satisfaite (il suffit de prendre des wi de mêmesigne que les s3pxiq´ ´ s3pxiq`). Par conséquent, en construisant `pxq comme dans le premiercas et en prenant µ ą 0 suffisamment petit, on obtient une fonction t “ s` µ ` qui vérifie (2.9).Pour montrer que s n’est pas la solution optimale (pour le second cas), il ne reste plus qu’àmontrer que t vérifie la contrainte (2.2). On a l’égalité suivante qui est une forme simplifiéede (2.12) :

nÿ

i“0

ˆ

spxiq ` µ `pxiq ´ yiσ2i

˙2

“ µ2nÿ

i“0

ˆ

`pxiq

σ2i

˙2

Comme on a supposé S ą 0, en prenant µ suffisamment petit, cette expression est inférieure ouégale à S. La fonction t “ s ` µ ` vérifie donc la contrainte (2.2) et la proposition est prouvéedans tous les cas. l

2.4 Calcul des coefficients de la spline

Dans cette section-ci, on revient aux explications données par Reinsch. On obtient des formulespour les coefficients de la spline qui utilisent la relation (2.6) et dépendent donc du paramètre p ą 0(le multiplicateur de Lagrange) introduit dans cette relation. On verra en section 2.5 commentcalculer p à partir de S et réciproquement.

On note fpxq la spline cubique naturelle solution du problème de Reinsch. Cette spline estcomposée de polynômes de degré 3 :

fipxq “ ai ` bi px´ xiq ` ci px´ xiq2 ` di px´ xiq

3 , pxi ď x ď xi`1q .

Écrire chaque polynôme fi sous la forme d’un développement limité en x “ xi simplifie considéra-blement les formules qui donnent leurs coefficients. Notons

hi “ xi`1 ´ xi , p0 ď i ď n´ 1q .

La continuité de la dérivée seconde de f aux nœuds intérieurs se traduit par le fait que f2i`1pxi`1q “2 ci`1 doit être égal à f2i pxi`1q “ 6 di hi ` 2 ci. En tirant di on obtient :

di “ci`1 ´ ci

3hi, p0 ď i ď n´ 1q . (2.13)

La continuité de f aux nœuds intérieurs se traduit par le fait que fi`1pxi`1q “ ai`1 doit être égalà fipxi`1q “ ai ` bi hi ` ci h

2i ` di h

3i . En tirant bi on obtient :

bi “ai`1 ´ ai

hi´ ci hi ´ di h

2i , p0 ď i ď n´ 1q . (2.14)

La continuité de la dérivée première de f aux nœuds intérieurs se traduit par le fait que f 1ipxiq “ bidoit être égal à f 1i´1pxiq “ bi´1`2 ci´1 hi´1`3 di´1 h

2i´1. En remplaçant bi´1, di´1, bi et di par leur

valeur (2.13), (2.14), on obtient

24

hi´13

ci´1 ` 2

ˆ

hi´13`hi3

˙

ci `hi3ci`1 “

1

hi´1ai´1 ´

ˆ

1

hi´1`

1

hi

˙

ai `1

hiai`1 , p1 ď i ď n´ 1q . (2.15)

Enfin, la relation (2.6) se traduit par le fait que f3i pxiq ´ f3i´1pxiq “ 6 di ´ 6 di´1 doit être égal

à 2 p pyi ´ fipxiqq{σ2i . En remplaçant di et di´1 par leur valeur (2.13) on obtient

1

hi´1ci´1 ´

ˆ

1

hi´1`

1

hi

˙

ci `1

hici`1 “ p

yi ´ aiσ2i

, p1 ď i ď n´ 1q . (2.16)

2.4.1 Formulation matricielle

Introduisons la matrice T de dimension pn´ 1q ˆ pn´ 1q suivante (attention au coefficient 1{3)

T “1

3

¨

˚

˚

˚

˚

˚

˚

˚

˝

2 ph0 ` h1q h1 0 . . . 0 0h1 2 ph1 ` h2q h2 . . . 0 00 h2 2 ph2 ` h3q . . . 0 0...

......

. . ....

...0 0 0 . . . 2 phn´3 ` hn´2q hn´20 0 0 . . . hn´2 2 phn´2 ` hn´1q

˛

,

la matrice Q de dimension pn` 1q ˆ pn´ 1q suivante où gi “ 1{hi :

Q “

¨

˚

˚

˚

˚

˚

˚

˚

˚

˚

˚

˚

˝

g0 0 . . . 0 0´g0 ´ g1 g1 . . . 0 0

g1 ´g1 ´ g2 . . . 0 00 g2 . . . 0 0...

.... . .

......

0 0 . . . ´gn´3 ´ gn´2 gn´20 0 . . . gn´2 ´gn´2 ´ gn´10 0 . . . 0 gn´1

˛

,

la matrice diagonale Σ formée de σ0, σ1, . . . , σn, ainsi que les vecteurs a “ pa0, a1, . . . , anqT , c “

pc1, c2, . . . , cn´1qT et y “ py0, y1, . . . , ynqT . Les relations (2.13) et (2.16) auxquelles il faut ajouter

les conditions de spline naturelle c0 “ cn “ 0 s’écrivent alors

T c “ QT a , (2.17)Qc “ pΣ´2 py ´ aq . (2.18)

En multipliant (2.18) à gauche par QT Σ2 et en éliminant QT a grâce à (2.17) on trouve une équationmatricielle qui ne dépend que du vecteur c :

pQT Σ2Q` p T q c “ pQT y (2.19)

ainsi qu’une équation pour le vecteur a :

a “ y ´ p´1 Σ2Qc . (2.20)

La matrice des coefficients de l’équation (2.19) est symétrique à cinq bandes. Elle est définie positivesi p ą 0. Il ne reste plus qu’à résoudre (2.19) (Cholesky) pour obtenir c, reporter dans (2.20) pourobtenir a puis utiliser (2.13) et (2.14) pour obtenir d et b.

25

2.5 Calcul du paramètre de lissage

Pour comparer le texte fondateur de Reinsch avec des travaux plus modernes [2], il est utile deprésenter la formulation du problème de Reinsch par la formule (2.22). On en profite pour montrerque la borne S est atteinte à l’optimum (ce qui peut aussi se montrer sans la formulation Lagran-gienne, comme le fait remarquer Cline). Dans les sections suivantes, on montre comment calculer pà partir de S, en utilisant d’intéressantes techniques de dérivation d’expressions matricielles. Puison introduit la notion de degré de liberté, qui fournit un paramétrage plus élégant, utilisable dansdes contextes plus généraux et qui est implanté dans le logiciel R. Enfin, on montre comment définirle paramètre optimal (en un certain sens), ce qui permet de déterminer automatiquement le lissageà appliquer lorsque l’utilisateur ne souhaite pas préciser le degré de liberté qu’il souhaite.

2.5.1 Formulation avec multiplicateur de Lagrange

La méthode du multiplicateur de Lagrange est une méthode générale permettant de transfor-mer un problème d’optimisation sous contrainte en un problème d’optimisation équivalent, sanscontrainte, mais au prix de l’introduction d’une variable supplémentaire appelée multiplicateur deLagrange.

Le problème posé par Reinsch consiste à minimiser (2.1) sous la contrainte d’inégalité (2.2). Pourappliquer la méthode du multiplicateur de Lagrange, il est nécessaire de transformer la contrainted’inégalité en une contrainte d’égalité. On introduit une première variable z (une variable d’écart)pour représenter la différence entre les deux membres de l’inégalité (2.2) et on code le sens del’inégalité en posant que cette différence est égale à z2 (nécessairement positif ou nul) plutôt qu’à z :

nÿ

i“0

ˆ

gpxiq ´ yiσi

˙2

“ S ´ z2 . (2.21)

D’après la théorie de la méthode du multiplicateur de Lagrange, minimiser (2.1) sous la contrainte (2.21)équivaut à minimiser le critère suivant, sans contrainte, où on a introduit une seconde variable p (lemultiplicateur de Lagrange) :

L “

ż b

apg2q2 dx` p

˜

nÿ

i“0

ˆ

gpxiq ´ yiσi

˙2

´ S ` z2

¸

. (2.22)

Comme dans le cas classique des fonctions de plusieurs variables réelles, toute solution optimalede (2.22) annule le système des dérivées partielles du critère, par rapport à chacune des variablesdont il dépend. En particulier, toute solution optimale de (2.22) annule

BL

Bz“ 2 p z .

À l’optimum, on a donc soit p “ 0 et la solution de (2.22) est une droite, soit z “ 0 (le cas qui nousintéresse). Supposons z “ 0. D’après (2.21), on conclut que S est égale à

nÿ

i“0

ˆ

gpxiq ´ yiσi

˙2

. (2.23)

26

Avec les notations de la section 2.4.1 et les formules (2.19) et (2.20), la somme (2.23) est le carré dela norme deux d’un certain vecteur et peut s’écrire :

`

‖Σ´1 pa´ yq‖2˘2

“`

‖ΣQ pQT Σ2Q` p T q´1QT y‖2˘2

“ F ppq2 .

Le paramètre p de la formule ci-dessus est celui introduit dans la relation (2.6). Il se trouve quec’est le même paramètre que le multiplicateur de Lagrange p (voir l’article de Reinsch) mais c’estsans importance pour ce qui nous occupe. On a donc établi que

S “ F ppq2 . (2.24)

2.5.2 Calcul de p en fonction de S

Pour calculer S en fonction de p, il suffit d’évaluer F ppq. Pour calculer p en fonction de S,Reinsch propose d’utiliser une méthode de Newton, ce qui suppose de mettre au point une formulepour la dérivée F 1ppq. C’est ce qu’on explique dans cette section.

On définit la dérivée u1 d’un vecteur dont les coordonnées sont des fonctions ui comme le vecteurdes dérivées u1i.

Notons u “ pQT Σ2Q` p T q´1QT y. Le vecteur u dépend de p. Ses coordonnées sont donc desfonctions de p. Notons v “ ΣQu. D’une part, d’après la règle sur la transposée d’un produit etle fait que Σ est égale à sa transposée, on a vT “ uT QT Σ ; d’autre part, comme les matrices Σet Q ne dépendent pas de p et que la dérivée d’une somme est la somme des dérivées, on voit quev1 “ ΣQu1. Enfin, en développant les expressions, on voit que

F ppq2 “ vT v . (2.25)

Par conséquent,pF ppq2q1 “ 2 vT v1 “ 2uT QT Σ2Qu1 .

On cherche maintenant une formule pour u1. La définition de u implique que

pQT Σ2Q` p T qu “ QT y et donc (2.26)QT Σ2Qu` T pp uq “ QT y . (2.27)

Comme les matrices et vecteurs Q, T , Σ et y ne dépendent pas de p on a, en dérivant par rapportà p,

QT Σ2Qu1 “ ´T pu` p u1q et donc (2.28)u1 “ ´pQT Σ2Q` p T q´1 T u (2.29)

Par conséquent,

1

2pF ppq2q1 “ p uT T pQT Σ2Q` p T q´1 T u´ uT T u . (2.30)

On a tout ce qui est nécessaire pour appliquer la méthode de Newton (voir la section 4.6.4). Dans[7, page 453], Reinsch conseille de partir de l’équation suivante, pour une convergence plus rapide :

1

F ppq“

1?S

(2.31)

27

2.5.3 Paramétrage par le degré de liberté

Paramétrer l’importance du lissage par p ou par S n’est pas très satisfaisant. Qui plus est,ces deux paramètres sont étroitement liés à la définition des splines lissantes telle que Reinsch l’adonnée. Dans la littérature, on présente parfois les splines comme des fonctions g qui minimisentd’autres critères comme [2, Eq (5.9), page 151] :

RSSpg, λq “

nÿ

i“0

pyi ´ gpxiqq2 ` λ

ż xn

x0

pg2pxqq2 dx . (2.32)

Le paramètre λ ressemble fort à un multiplicateur de Lagrange mais ce n’en est pas un : il n’estpas multiplié par la contrainte ! Pour autant, il joue approximativement le rôle de 1{p et permet decontrôler l’importance du lissage. Et il existe plein de variantes de ces définitions. Le critère (2.32)est probablement adapté de [3, Eq (1.2), page 378] où la somme est divisée par le nombre de points.

La notion de degré de liberté [2, section 5.4.1, page 153] a le gros avantage d’être définie à partirde la spline solution et pas du critère. L’idée consiste à exprimer le vecteur a, qui contient lesordonnées de la spline aux abscisses xi (0 ď i ď n), comme une fonction linéaire du vecteur y desordonnées des points initiaux. Notons donc Sp la matrice telle que

a “ Sp y . (2.33)

Cette matrice se définit facilement à partir des équations de la section 2.4.1 par

Sp “ I ´ Σ2Q pQT Σ2Q` p T q´1QT . (2.34)

Elle est symétrique définie positive. Ses valeurs propres sont donc réelles et positives. On peutmontrer que les deux plus grandes sont exactement égales à 1 [2, page 156]. L’idée consiste à définirle degré de liberté de la spline comme la trace de Sp :

dfp “ TrpSpq . (2.35)

La trace d’une matrice est la somme de ses valeurs propres. C’est aussi la somme de ses élémentsdiagonaux. On a donc 2 ă dfp ď n` 1.

L’idée, c’est que le rang d’une matrice est égal au nombre de ses valeurs propres non nulles etque la trace de Sp est une mesure de la dimension de l’image de Sp et donc une mesure du nombrede paramètres effectifs dont dépend la spline.

Les splines lissantes implantées dans le logiciel R sont paramétrées par ce degré de liberté.

2.5.4 Calcul du paramètre optimal

On peut enfin vouloir déterminer le paramètre (quel qu’il soit) de lissage à partir d’un autrecritère à optimiser. Une idée populaire consiste à chercher le paramètre qui minimise le critère [2,Eq. (5.26) ; page 161]

CVpgq “

nÿ

i“0

pyi ´ grispxiqq

2 (2.36)

où gris est la spline lissante obtenue en tenant compte de tous les points sauf le i-ème. Il s’agitd’une technique de validation croisée où on ne laisse de côté qu’un seul point (leave one out cross

28

validation). Et il est remarquable que (2.36) peut être calculée à partir de la spline lissante g obtenueen tenant compte de tous les points, grâce à la formule suivante [2, Eq. (5.27) ; page 161], où on asupposé que les lignes et colonnes de Sp sont indicées à partir de 0 :

CVpgq “

nÿ

i“0

ˆ

yi ´ gpxiq

1´ Sppi, iq

˙2

. (2.37)

C’est ce type de méthode qui permet de déterminer automatiquement le paramètre de lissage dansun logiciel comme R, lorsque l’utilisateur ne spécifie pas le degré de liberté voulu.

29

Bibliographie

[1] Alan Kaylor Cline. An Expansion of the Derivation of the Spline Smoothing Theory. https://pdfs.semanticscholar.org/ae2c/118aaa18beeded133276c0cf0c9ee4c62d1d.pdf, 2017.

[2] Trevor Hastie, Robert Tibshirani, and Jerome Friedman. The Elements of Statistical Learning.Data Mining, Inference and Prediction. Springer Series in Statistics. Springer, 2nd edition, 2009.Available at https://web.stanford.edu/~hastie/Papers/ESLII.pdf.

[3] Peter Craven and Grace Wahba. Smoothing Noisy Data with Spline Functions. NumerischeMathematik, 31 :377–403, 1979.

[4] D. S. G. Pollock. Smoothing with cubic splines. Handbook of Time Series Analysis, SignalProcessing, and Dynamics, 12 1999. Available at www.physics.muni.cz/~jancely/NM/Texty/Numerika/CubicSmoothingSpline.pdf.

[5] Paddy M. Prenter. Splines and Variational Methods. Pure and Applied Mathematics. Wiley,New York, 1975.

[6] Christian H. Reinsch. Smoothing by Spline Functions. Numerische Mathematik, 10 :177–183,1967.

[7] Christian H. Reinsch. Smoothing by Spline Functions II. Numerische Mathematik, 16 :451–454,1971.

30

Chapitre 3

Intégration Numérique

3.1 Introduction

Étant donnés un intervalle ra, bs et une fonction fpxq, continue sur ra, bs, on cherche à approximerl’intégrale suivante. Voir Figure 3.1. Les formules approchées utilisées sont appelées formules dequadrature.

ż b

afpxq dx . (3.1)

a

b

Figure 3.1 – L’intégrale (3.1) est un nombre signé : c’est la différence entre l’aire hachurée situéeau-dessus de l’axe horizontal et celle située au-dessous.

Remarque 1. Si on connaît une primitive F pxq de fpxq, c’est-à-dire une fonction F pxq dont ladérivée, F 1pxq, est égale à fpxq, alors le problème posé se résout facilement, puisque

ż b

afpxqdx “ rF pxqsba “ F pbq ´ F paq .

Remarque 2. Si fpxq est un polynôme, alors une primitive F pxq se calcule facilement et leproblème posé se résout de même (voir remarque 1).

31

Cas général. Mais si fpxq est une fonction compliquée, dont on ne connaît aucune primitive, oumême une fonction simple (comme sinpxq) mais donnée sous la forme d’une fonction FORTRANqui l’évalue (situation courante en calcul numérique) ? Il suffit d’appliquer l’idée suivante !

Idée p˚q

1. fixer un entier n, évaluer fpxq en n` 1 points avec x0 “ a, xn “ b et yi “ fpxiq :ˆ

x0y0

˙

,

ˆ

x1y1

˙

, . . . ,

ˆ

xnyn

˙

; (3.2)

2. calculer le polynôme d’interpolation ppxq dont le graphe passe par les n`1 points (le graphedu polynôme d’interpolation approxime le graphe de fpxq) ;

3. intégrer le polynôme d’interpolation (remarques 1 et 2).

Remarque 3. Pour appliquer l’idée p˚q, il n’est pas nécessaire de connaître fpxq : il suffit deconnaître les points (3.2). Cette remarque est particulièrement intéressante lorsque les points pro-viennent d’expériences, sont produits par des appareils de mesure . . .

3.2 Les méthodes composites et leur ordre

On suppose une suite de points (3.2) connue pour un certain n fixé. On suppose de plus lesabscisses xi équidistantes et on note h “ xi`1 ´ xi la longueur d’un pas. Comme on va le voir,l’idée p˚q explique comment les formules de Newton-Cotes 1 sont construites 2.

a “ x0 x1

x2 b “ x3

a “ x0 x1

x2 x3 b “ x4

Figure 3.2 – Approximation de l’intégrale (3.1) par la méthode des trapèzes avec n “ 3 intervalles(à gauche) et par la méthode de Simpson avec n “ 4 intervalles (à droite).

1. Roger Cotes (1682-1716) est un contemporain d’Isaac Newton.2. Pour rassurer les étudiants stressés : il n’est pas nécessaire de se rappeler comment les formules sont construites

pour savoir les utiliser :-).

32

3.2.1 La formule des trapèzes composites

Elle consiste à approximer l’intégrale (3.1) en sommant les aires 3 des n trapèzes définis parles deux points d’indice i et i ` 1, pour 0 ď i ă n. Cette méthode est en fait une application del’idée p˚q. Considérons les deux premiers points px0, y0q et px1, y1q “ px0 ` h, y1q. L’aire du trapèzedéfini par ces deux points n’est rien d’autre que

ż x0`h

x0

p01pxqdx

où p01pxq désigne la droite passant par ces deux points. Le calcul suivant, effectué en MAPLE,retrouve la formule de quadrature bien connue :

> with (CurveFitting):> p01 := PolynomialInterpolation ([[x0,y0],[x0+h,y1]], x);

(y1 - y0) x y0 h - y1 x0 + y0 x0p01 := ----------- + --------------------

h h

> simplify (int (p01, x=x0..x0+h));h (y0 + y1)-----------

2

La même formule (aux indices près) s’applique à chaque trapèze. En sommant les expressions obte-nues, on obtient la formule des trapèzes composites 4 :

ż b

afpxqdx »

h

2ppy0 ` y1q ` py1 ` y2q ` ¨ ¨ ¨ ` pyn´1 ` ynqq

“ h´y0

2` y1 ` y2 ` ¨ ¨ ¨ ` yn´1 `

yn2

¯

.

3.2.2 La formule de Simpson composite

Encore une application de l’idée p˚q. On considère les trois premiers points px0, y0q, px1, y1q “px0`h, y1q et px2, y2q “ px0`2h, y2q. On calcule le polynôme d’interpolation p02 de degré au plus 2dont le graphe (une parabole) passe par ces trois points et on approxime l’intégrale recherchée parl’intégrale, sur deux intervalles, du polynôme d’interpolation (voir Figure 3.2) :

ż x0`2h

x0

p02pxq dx

Le calcul de la formule de quadrature est pénible à la main mais s’effectue très facilement enMAPLE :

3. Ce sont des aires généralisées, où on compte positivement l’aire au-dessus de l’axe horizontal et négativementl’aire au-dessous.

4. Une formule composite est une formule de quadrature, itérée sur une suite d’intervalles.

33

> p02 := PolynomialInterpolation ([[x0,y0],[x0+h,y1],[x0+2*h,y2]], x):> simplify (int (p02, x=x0..x0+2*h));

h (y0 + y2 + 4 y1)------------------

3

La même formule s’applique aux trois points px2, y2q, px3, y3q “ px2`h, y2q et px4, y4q “ px2`2h, y4q.Si on suppose n pair, elle s’applique plus généralement à chaque suite de deux intervalles et, ensommant les expressions obtenues, on obtient la formule de Simpson 5 composite :

ż b

afpxq dx »

h

3ppy0 ` 4 y1 ` y2q ` py2 ` 4 y3 ` y4q ` ¨ ¨ ¨ ` pyn´2 ` 4 yn´1 ` ynqq

“h

3py0 ` 4 y1 ` 2 y2 ` 4 y3 ` ¨ ¨ ¨ ` 2 yn´2 ` 4 yn´1 ` ynq .

3.2.3 Formules de Newton-Cotes

Cette section doit beaucoup à [2, chapitre I]. Les formules de quadrature des trapèzes et deSimpson sont des cas particuliers des formules de Newton-Cotes, qui sont obtenues en généralisantl’idée p˚q à un nombre d’intervalles quelconque. Pour les présenter sous leur forme générale, il estsouhaitable de les réécrire légèrement, en mettant en facteur la longueur de l’intervalle d’intégration(h dans le cas des trapèzes, 2h dans le cas de Simpson) :

ż x0`h

x0

fpxq dx » h

ˆ

1

2y0 `

1

2y1

˙

(trapèzes)ż x0`2h

x0

fpxq dx » 2h

ˆ

1

6y0 `

4

6y1 `

1

6y2

˙

(Simpson)

On voit qu’avec cette convention, les formules de quadrature pour lesquelles les abscisses xi sontéquidistantes, sont complètement déterminées par la liste des coefficients numériques des ordon-nées yi. Un tableau récapitulatif est donné Figure 3.3.

Définition 4 une formule de quadrature à s étages est une formule :

ż x0`ps´1qh

x0

fpxq dx » ps´ 1qhs´1ÿ

i“0

bi yi .

Les coefficients numériques bi sont les poids de la formule.

Définition 5 Une formule de quadrature est dite d’ordre p si elle est exacte pour tous les polynômesde degré strictement inférieur à p.

5. Thomas Simpson (1710-1761).

34

s ordre poids bi nom

2 2 12

12 trapèzes

3 4 16

46

16 Simpson

4 4 18

38

38

18 Newton

5 6 790

3290

1290

3290

790 Boole

6 6 19288

75288

50288

50288

75288

19288

7 8 41840

216840

27840

272840

27840

216840

41840 Weddle

Figure 3.3 – Formules de Newton-Cotes pour s ď 7.

Remarque. Le fait qu’une formule à s étages soit exacte pour les polynômes de degré s ´ 1 estune conséquence immédiate de l’unicité des polynômes d’interpolation. Toute formule à s étages estdonc d’ordre au moins s. On remarque toutefois que les formules de Newton-Cotes sont toujoursd’ordre pair. C’est une conséquence du fait que les abscisses sont équidistantes et que les formules deNewton-Cotes sont symétriques (c’est-à-dire : bi “ bs´i´1 pour 0 ď i ă s). Pour une démonstration,générale voir [2, Théorème 1.4]. Les instructions MAPLE ci-dessous démontrent que la formule deSimpson est bien d’ordre 4. On affecte à f un polynôme général de degré 3.

> f := add (c[i]*x^i, i = 0 .. 3);2 3

f := c[0] + c[1] x + c[2] x + c[3] x

On l’intègre entre a et b.

> I_exacte := int (f, x = a .. b);2 2 3 3

I_exacte := c[0] (b - a) + 1/2 c[1] (b - a ) + 1/3 c[2] (b - a )

4 4+ 1/4 c[3] (b - a )

On pose que n est pair et on calcule une approximation de l’intégrale par la formule de Simpsoncomposite.

> n := 2*m:> h := (b-a)/n:> I_Simpson := h/3 * (eval (f, x=a) + eval (f, x=b) +

4*sum (eval (f, x=a+(2*i+1)*h), i=0..n/2-1) +2*sum (eval (f, x=a+2*i*h), i=1..n/2-1));

2 2I_Simpson := 1/6 (b - a) (2 c[2] m a b + 3/2 c[3] a m b + 3/2 c[3] a m b

2 2 3 3+ 2 c[2] m b + 2 c[2] m a + 3/2 c[3] a m + 3/2 m c[3] b + 3 c[1] m b

+ 3 c[1] m a + 6 c[0] m)/m

35

Les deux formules sont identiques. La méthode de Simpson est donc exacte pour les polynômes dedegré 3.

> expand (I_exacte - I_Simpson);0

Théorème 2 Fixons une formule de quadrature d’ordre p, à s étages. Supposons que la fonctionfpxq soit p fois dérivable sur ra, bs et notons

M “ supxPra,bs

|f ppqpxq| .

Supposons l’intervalle ra, bs subdivisé en n “ ps´ 1qm petits intervalles de longueur h. Notons errl’erreur commise : la différence entre l’intégrale (3.1) et la somme des m quadratures effectuées.Alors il existe une constante C indépendante de la fonction fpxq et de ra, bs telle que

|err| ď CM pb´ aqhp .

Preuve. Voir [2, Théorème 2.3, page 8]. l

Remarque. Si fpxq est un polynôme de degré strictement inférieur à p, alors sa dérivée p-ième,f ppqpxq, est identiquement nulle et M “ 0. D’après le théorème, err “ 0. On retrouve la définitiond’une formule de quadrature d’ordre p.

Exemple. On calcule différentes approximations de la même intégrale, en utilisant toujours lamême formule de quadrature mais en multipliant par deux, à chaque ligne, le nombre d’intervalles.À chaque ligne, la longueur du pas, h, est donc divisée par deux. On affiche le nombre de bits exactsde l’estimation : l’opposé du logarithme en base deux de l’erreur relative effectuée (voir [1, section1.3, page 9]).

NBSTEPS NB BITS EXACTS APPROX.2 4.92501042980858734 9.78047926232499708 13.961492654032389

16 18.00549574266059632 22.01642739765457464 26.019156174906570

128 30.019838002143089256 34.019986935697041512 38.020609052052940

1024 42.013910111798765

Ce nombre de bits semble augmenter de 4 à chaque ligne, ce qui signifie que l’erreur err du théorème 2est divisée par 24 à chaque ligne. Les réels C, M et b ´ a ne changent pas. En traitant le symboleď comme une égalité, on déduit que

ˆ

h

2

˙p

“hp

2p“hp

24

et donc que l’ordre de la formule de quadrature est p “ 4. On a donc utilisé la formule de Simpsonou celle de Newton.

36

Bibliographie

[1] François Boulier. Calcul Numérique. Algèbre Linéaire. Technical report, Université Lille 1,59655, Villeneuve d’Ascq, France, 2013. Support de cours de IS3, accessible sur https://pro.univ-lille.fr/francois-boulier.

[2] Ernst Hairer and Gerhard Wanner. Introduction à l’Analyse Numérique. Accessible sur http://www.unige.ch/~hairer, juin 2005.

37

Chapitre 4

Intégration Numérique des ÉquationsDifférentielles

4.1 Introduction

L’objet de ce cours est l’étude des méthodes numériques d’intégration d’équations différentiellesordinaires 1. Il existe des méthodes plus ou moins complexes, qui permettent de traiter des exemplesplus ou moins difficiles. Pour les comparer, nous allons suivre un exemple issu de l’astronomie 2 [2,page 129] : le problème restreint à trois corps. On considère deux corps de masses µ1 “ 1 ´ µ (laTerre) et µ (la Lune), en rotation circulaire dans un plan utour de leur centre de gravité, ainsi qu’untroisième corps, de masse négligeable (un satellite) se déplaçant dans le même plan, sous l’action dela gravitation. La variable indépendante x représente le temps. Les deux variables dépendantes y1pxqet y2pxq donnent les coordonnées cartésiennes du satellite dans le plan. Le système est constitué dedeux équations différentielles ordinaires d’ordre deux :

:y1 “ y1 ` 2 9y2 ´ µ1 y1 ` µ

D1´ µ

y1 ´ µ1

D2,

:y2 “ y2 ´ 2 9y1 ´ µ1 y2D1

´ µy2D2

,

D1 “ ppy1 ` µq2 ` y22q

32 ,

D2 “ ppy1 ´ µ1q2 ` y22q

32 .

(4.1)

Les valeurs des constantes sont

µ “ 0.012277471 , µ1 “ 1´ µ “ 0.987722529 .

1. On dit d’une équation différentielle, qu’elle est ordinaire, si elle ne fait figurer qu’une seule dérivation d{dx,par rapport à une seule variable indépendante x. Une équation où figurent des dérivations par rapport à plusieursvariables indépendantes, est dite aux dérivées partielles.

2. Par un heureux hasard, j’avais commencé à préparer ces notes de cours (et l’exemple principal) deux jours avantl’annonce de la rencontre de Rosetta et de la comète Churyomov-Gerasimenko ! Les équations (4.1) ne sont pas cellesqui ont guidé Rosetta sur sa cible mais ce sont leurs petites sœurs. Certaines techniques mathématiques présentéesdans ce cours datent du milieu des années 1980. Sachant que le principe d’une mission telle que celle de Rosetta aété entériné par l’Europe en 1985, on peut penser qu’elles ont pu être utilisées pour des études préliminaires.

38

Il se trouve que, pour les conditions initiales suivantes (initialement, le satellite est proche (un peuau delà) de la Lune, située en pµ1, 0q, avec une vecteur vitesse parallèle à l’axe vertical y2) :

y1p0q “ 0.994 , 9y1p0q “ 0 , y2p0q “ 0 ,

9y2p0q “ ´2.00158510637908252240537862224 ,(4.2)

la solution est périodique (la courbe dans le plan py1, y2q est fermée), de période

xend “ 17.0652165601579625588917206249 .

De telles solutions périodiques ont fasciné les mathématiciens pendant des dizaines d’années et sontaujourd’hui appelées « orbites d’Arenstorf 3 ». Voir Figure 4.1. Quant au problème des trois corps,il fascine les physiciens depuis 300 ans 4.

4.2 Éléments théoriques

Une équation différentielle en une variable est définie par une fonction

f : rx0, xends ˆ RÑ R , px, yq ÞÑ fpx, yq .

L’équation définie par la fonction f est alors :

dy

dxpxq “ fpx, ypxqq , notée aussi 9y “ fpx, yq .

3. Richard Arenstorf est un mathématicien Américain, né en 1929, qui travaillait pour la NASA à l’époque de lacatastrophique mission Apollo 13. L’orbite qu’il a mise au point à l’aide d’un ordinateur a servi d’orbite de secours,et permis à l’équipage de rentrer sur Terre [7]. Richard Arenstorf est mort le 18 septembre 2014.

4. Voici une mise en équation. On place l’origine p0, 0q sur le centre de gravité du système Terre-Lune, qui setrouve toujours dans l’axe Terre-Lune. Par un calcul de barycentre, on trouve les coordonnées de la Terre p´µ, 0q etde la Lune pµ1, 0q. Graphiquement, on a envie de garder l’axe Terre-Lune horizontal. La position py1, y2q du satelliteest donc prise par rapport à un repère en rotation par rapport à un autre repère supposé fixe, suivant une vitesseangulaire θ. D’après [6, chapter I, pages 17-18] et l’hypothèse que la rotation est circulaire, les composantes du vecteuraccélération sont :

ˆ

:y1 ´ y1 9θ2 ´ y2 :θ ´ 2 9y2 9θ

:y2 ´ y2 9θ2 ` y1 :θ ` 2 9y1 9θ

˙

.

On suppose pour simplifier que la vitesse angulaire est constante (:θ “ 0) et même que 9θ “ 1. Le vecteur accélérationse simplifie en :

ˆ

:y1 ´ y1 ´ 2 9y2:y2 ´ y2 ` 2 9y1

˙

.

D’après la loi de la gravitation de Newton et, plus particulièrement, [6, chapter XIII, page 353, The restricted problemof three bodies], ce vecteur accélération est égal à

˜

BFBy1BFBy2

¸

où F “µ1

ppy1 ` µq2 ` y22q12

ppy1 ´ µ1q2 ` y22q12

¨

Les numérateurs sont les deux masses de la Terre et de la Lune. Les dénominateurs sont la distance du satellite à laTerre et celle du satellite à la Lune. En développant les expressions, on trouve le système (4.1) :

ˆ

:y1 ´ y1 ´ 2 9y2:y2 ´ y2 ` 2 9y1

˙

¨

˚

˚

˝

´µ1y1 ` µ

ppy1 ` µq2 ` y22q32

´ µy1 ´ µ

1

ppy1 ´ µ1q2 ` y22q32

´µ1y2

ppy1 ` µq2 ` y22q32

´ µy2

ppy1 ´ µ1q2 ` y22q32

˛

.

39

´1.5

´1

´0.5

0

0.5

1

1.5

´1.5 ´1 ´0.5 0 0.5 1 1.5

y2

y1

Terre Lune

Figure 4.1 – Une orbite d’Arenstorf calculée par un intégrateur de type Runge-Kutta à pas adap-tatif. La variable y1 est en abscisse ; y2 est en ordonnée. L’intégrateur, élaboré autour du schéma« Dormand-Prince 5p4q », n’a calculé que la soixantaine de sommets de la courbe polygonale. L’er-reur finale (sur l’exemple, il s’agit de la distance entre le point de départ et le point d’arrivée,puisqu’en théorie, la courbe est fermée) est de l’ordre de 10´2. La courbe lisse a été obtenue en éva-luant des polynômes d’interpolation entre les sommets par une méthode, dite de « sortie dense ».On remarque que les raccords entre les morceaux de courbes, au niveau des sommets, sont lisses.L’intégrateur est dit à pas adaptatif parce qu’il effectue des petits pas dans les « virages serrés »et des pas plus grands ailleurs : les segments de la courbe polygonale ne sont pas tous de mêmelongueur.

La solution d’une équation différentielle est, en général, une famille de fonctions de x. Pour préciserl’une des fonctions de la famille, il suffit, en général, de fixer une condition initiale ypx0q “ α. Ladonnée d’une équation différentielle plus une condition initiale s’appelle un problème de Cauchy enFrançais et un « initial value problem » en Anglais.

Premier exemple. Par exemple, la fonction

f : Rˆ RÑ R , px, yq ÞÑ x` y

définit l’équation différentielle9y “ x` y .

Si on lui ajoute la condition initiale yp0q “ α, on obtient la solution suivante (on voit que la solutiondépend du paramètre α) :

ypxq “ ex p1` αq ´ x´ 1 .

40

02

46

810

1214

1618

´1.5

´1

´0.5

0

0.5

1

´1.5

´1

´0.5

0

0.5

1

1.5

y2

xy1

y2

Figure 4.2 – La même orbite d’Arenstorf, mais représentée en trois dimensions, avec l’axe des x(le temps). La courbe de la Figure 4.1 est la projection de cette courbe-ci dans le plan py1, y2q.

L’équation logistique. La fonction suivante

f : Rˆ RÑ R , px, yq ÞÑ y p1´ yq

définit l’équation différentielle9y “ y p1´ yq .

La fonction f ne dépend pas de x : on dit que l’équation différentielle est autonome. Elle estsouvent utilisée pour modéliser l’évolution d’une population ypxq au cours du temps, en présencede ressources limitées. L’équation a deux solutions constantes ypxq “ 0 (espèce éteinte) et ypxq “ 1(population maximale, compte tenu des ressources), obtenues avec les conditions initiales α “ 0et α “ 1. Si y est compris entre 0 et 1, on voit que fpx, yq ą 0, ce qui implique que ypxq estcroissante (si les ressources sont suffisantes, la population augmente). Si y ą 1, on a fpx, yq ă 0,ce qui implique que la population est décroissante (si les ressources sont insuffisantes, la populationdiminue). La solution exacte est

ypxq “ ´α

ex pα´ 1q ´ α¨

Explosion en temps fini. Dans l’exemple précédent la solution ypxq est définie pour tout x P Rmais ce n’est pas toujours le cas. Prenons par exemple, la fonction [5, Example 1.2]

f : Rˆ RÑ R , px, yq ÞÑ y2 ,

qui définit l’équation différentielle9y “ y2 .

41

Pour la condition initiale yp0q “ α, la fonction suivante est une solution :

ypxq “α

1´ xα¨

Supposons α ą 0. La solution ypxq vaut `8 en x “ 1{α. La borne xend ne peut donc pas dépasserla valeur limite 1{α, qui dépend de la condition initiale. Pourtant, la fonction f est particulièrementsimple !

Résolution en MAPLE. Le logiciel MAPLE fournit un solveur d’équations différentielles sousforme close. Le solveur ne résout pas toutes les équations : la plupart d’entre elles n’ont pas desolution sous forme close, c’est-à-dire de solution qui puisse être notée par une formule finie nefaisant figurer que les fonctions bien connues (polynômes, sinus, exponentielles, etc.). Le solveurobtient toutefois un résultat sur cette équation-ci :

> edo := diff (y(x),x) = y(x)^2;d 2

edo := -- y(x) = y(x)dx

> dsolve ({edo, y(0)=alpha}, y(x));alpha

y(x) = - -----------x alpha - 1

Le logiciel offre également un intégrateur numérique (par défaut, un intégrateur à pas adaptatifconstruit sur le schéma de Fehlberg 5 d’ordre 4p5q, avec un mécanisme de sortie dense).

> soln := dsolve ({diff(y(x),x) = y(x)^2, y(0)=1}, y(x), numeric);soln := proc(x_rkf45) ... end proc

La solution retournée par ce solveur est un sous-programme MAPLE capable d’approximer numé-riquement ypxq. Ce sous-programme « ne contient pas » la solution sous forme close : il est trèsproche des programmes FORTRAN que nous allons écrire. Numériquement, il rencontre toutefoisune difficulté en x “ 1 :

> soln (0);[x = 0., y(x) = 1.]

> soln (0.9);[x = 0.9, y(x) = 10.0000034789066]

> soln (1);Error, (in soln) cannot evaluate the solution further right of .99999999,probably a singularity

5. Erwin Fehlberg (1911-1990).

42

Solutions multiples. Considérons maintenant la fonction [5, Example 1.3]

f : Rˆ RÑ R , px, yq ÞÑ?y ,

qui définit l’équation différentielle9y “

?y .

Pour une condition initiale yp0q “ α strictement positive, la solution est unique :

ypxq “1

4px` 2

?αq2 .

Toutefois, pour la condition initiale yp0q “ 0, il existe deux solutions :

ypxq “1

4x2 ou bien ypxq “ 0 .

Ces deux solutions ont même vecteur tangent en x “ 0. L’existence de deux solutions différentespour une même condition initiale est liée au fait que la dérivée partielle Bf{By, qui vaut 1{

?y, est

infinie pour y “ 0.

Conclusion. Mathématiquement, les questions d’existence et d’unicité des solutions des équationsdifférentielles sont difficiles. Dans ce cours, on les évitera la plupart du temps mais il est importantde garder leur existence à l’esprit. C’est souvent à cause d’elles que certains énoncés contiennentdes locutions telles que « en général » ou « sous certaines hypothèses ».

4.2.1 Systèmes d’équations différentielles

Dans le cas d’un système, la variable y devient un vecteur de Rn et la fonction f devient unvecteur de n fonctions

fi : rx0, xends ˆ Rn Ñ R , 1 ď i ď n .

Le système de n équations différentielles ainsi défini s’écrit :

9y1 “ f1px, y1, y2, . . . , ynq , 9y2 “ f2px, y1, y2, . . . , ynq , . . . , 9yn “ fnpx, y1, y2, . . . , ynq .

Sa solution est, en général, une famille de vecteurs de n fonctions ypxq “ py1pxq, y2pxq, . . . , ynpxqqT .Pour fixer l’une des solutions de cette famille, il suffit, en général, de fixer un vecteur de n conditionsinitiales ypx0q “ pα1, α2, . . . , αnq

T .

Deux prédateurs se disputant pour la même proie. Les deux fonctions suivantes

f1 : px, y1, y2q ÞÑ y1 p1´ y1q ´ y1 y2 , f2 : px, y1, y2q ÞÑ 2 y2

´

1´y22

¯

´ 3 y1 y2

définissent le système de deux équations différentielles autonome suivant :

9y1 “ y1 p1´ y1q ´ y1 y2 , 9y2 “ 2 y2

´

1´y22

¯

´ 3 y1 y2 .

C’est un cas particulier de système décrivant l’évolution de la population de deux espèces se dis-putant pour la même proie (la proie n’apparaît pas dans le modèle). Les variables y1pxq et y2pxqdonnent les populations des deux espèces à l’instant x. Chaque fonction fi est construite à partird’une variante de l’équation logistique (les populations y1pxq et y2pxq vont demeurer dans les inter-valles r0, 1s et r0, 2s). Les termes en y1 y2 modélisent l’effet d’une rencontre entre les représentantsdes deux espèces, qui tourne au désavantage de l’espèce y2.

43

Équation différentielle d’ordre deux. Toute équation différentielle d’ordre deux est équivalenteà un système de deux équations différentielles d’ordre 1. Prenons l’exemple de l’équation

m :y1 ` c 9y1 ` k y1 “ 0 ,

qui décrit la dynamique d’une masse m attachée à un ressort de constante de raideur k, avec uncoefficient de frottement c. La variable dépendante y1pxq donne la position de la masse par rapportà sa position d’équilibre. En renommant y2 “ 9y1, on obtient le système suivant, où la premièreéquation code le renommage de la dérivée première de y1 :

9y1 “ y2 , 9y2 “ ´k

my1 ´

c

my2 .

Le problème restreint à trois corps. Le système (4.1) est un système de deux équationsdifférentielles d’ordre deux, en deux variables y1 et y2. Ce système est équivalent à un système dequatre équations différentielles d’ordre un, en ajoutant deux nouvelles variables y3 “ 9y1 et y4 “ 9y2,comme dans le cas de système masse-ressort. La nouvelle formulation du système (4.1) est donnéeci-dessous :

9y1 “ y3 ,

9y2 “ y4 ,

9y3 “ y1 ` 2 y4 ´ µ1 y1 ` µ

D1´ µ

y1 ´ µ1

D2,

9y4 “ y2 ´ 2 y3 ´ µ1 y2D1

´ µy2D2

,

D1 “ ppy1 ` µq2 ` y22q

3{2 ,

D2 “ ppy1 ´ µ1q2 ` y22q

3{2 .

(4.3)

4.3 Les schémas élémentaires

4.3.1 Le schéma d’Euler

On commence par le cas d’une seule variable. La donnée du problème est une fonction f :rx0, xends ˆ R Ñ R, un réel α et un nombre de pas N ě 1. Le problème de Cauchy à résoudres’écrit :

9y “ fpx, yq , ypx0q “ α . (4.4)

La méthode d’Euler 6 est une méthode à pas de longueur fixe

h “xend ´ x0

Elle consiste à calculer une suite de N ` 1 points pxi, yiq, pour 0 ď i ď N . Ces points définissent unpolygone qui approxime le graphe de la solution exacte ypxq. Sous certaines conditions, le polygoned’Euler converge vers le graphe de la solution exacte, dans le sens où, plus le nombre de pas N

6. Leonhard Euler (1707-1783).

44

augmente, plus l’ordonnée yN du dernier point calculé est proche de l’ordonnée ypxN q “ ypxendqdu graphe de la solution exacte, en x “ xN “ xend (attention à ne pas confondre yi, l’ordonnée duième point calculé et ypxiq, l’ordonnée du point exact en x “ xi).

La fonction f définit un champ de vecteurs dans la bande rx0, xends ˆ R. Les vecteurs de cechamp sont définis en chaque point px, yq de la bande. Ils sont de coordonnées :

ˆ

∆x∆ y

˙

ˆ

1fpx, yq

˙

(4.5)

Ce champ de vecteurs donne les tangentes aux graphes de toutes les solutions du problème (4.4)(pour toutes les valeurs possibles de α). Un exemple est donné en Figure 4.3. Voir Figure 4.2 pourun exemple de graphe d’une solution, dans le cas de deux variables.

0

1

2

3

4

5

0 1 2 3 4 5

y

x

Figure 4.3 – Champ de vecteurs (4.5) et graphes de quelques solutions (pour quelques conditionsinitiales différentes) de l’équation différentielle 9y “ 1{py ` 0.1q ´ px ´ 2q sinpyq. Les longueurs desvecteurs du champ ont été normalisées. On observe que les graphes des solutions suivent les vecteurs.

La méthode d’Euler est alors évidente : à partir du point px0, y0q “ px0, αq, on obtient px1, y1qen suivant le vecteur défini en ce point sur une distance h :

ˆ

x1y1

˙

ˆ

x0y0

˙

` h

ˆ

1fpx0, y0q

˙

. (4.6)

Il suffit ensuite de remplacer px0, y0q par px1, y1q et d’appliquer à nouveau le formule jusqu’à at-teindre xN “ xend. On peut également utiliser la formulation équivalente ci-dessous (les abscissessont données par une formule très simple ; les ordonnées sont définies par une suite récurrente) :

xi “ x0 ` h i , y0 “ α, yi “ yi´1 ` h fpxi´1, yi´1q p1 ď i ď Nq .

45

Exemple. Pour illustrer la méthode, on peut prendre le système défini par f : px, yq ÞÑ y et α “ 1sur l’intervalle rx0, xends “ r0, 1s. Le problème de Cauchy est alors : 9y “ y avec yp0q “ 1. La solutionest ypxq “ ex. En quelque sorte, on cherche à calculer ypxendq “ e » 2.7182818. Commençons parappliquer la méthode pour N “ 1 (un seul pas de longueur h “ 1). En appliquant la formule (4.6),on trouve l’approximation e » y1 “ 2 :

ˆ

x1y1

˙

ˆ

01

˙

` h

ˆ

11

˙

ˆ

12

˙

.

Recommençons avecN “ 2 (deux pas de longueur h “ 1{2). On trouve une meilleure approximation,e » y2 “ 2.25. Voir aussi Figure 4.4.

ˆ

x1y1

˙

ˆ

01

˙

` h

ˆ

11

˙

˜

1232

¸

,

ˆ

x2y2

˙

˜

1232

¸

` h

ˆ

132

˙

ˆ

194

˙

.

0.5

1

1.5

2

2.5

0 0.2 0.4 0.6 0.8 1

y

x

exp(x)

0.5

1

1.5

2

2.5

0 0.2 0.4 0.6 0.8 1

y

x

exp(x)

Figure 4.4 – Résolution numérique du problème de Cauchy 9y “ y avec yp0q “ 1, par la méthoded’Euler. Intégration avec N “ 1 pas en haut et N “ 2 pas en bas.

Le programme FORTRAN suivant poursuit l’exemple pour 7 N “ 20, 21, . . . , 210.

7. Dans les programmes FORTRAN, on note NBSTEPS au lieu de N, qu’on garde pour désigner la dimension n dessystèmes d’équations différentielles.

46

PROGRAM EULERIMPLICIT NONEDOUBLE PRECISION Y_XEND, X0, XEND, Y0, H, X, Y, FCNINTEGER I, K, NBSTEPSY_XEND = EXP(1D0)X0 = 0D0XEND = 1D0Y0 = 1D0WRITE (*,*)

$ ’ NBSTEPS’, ’ Y’,$ ’ NB BITS EXACTS (APPROX.)’DO K = 1,10

NBSTEPS = INT(2**K)H = (XEND - X0)/NBSTEPSX = X0Y = Y0DO I = 1, NBSTEPS

* L’ordre des deux instructions suivantes est importantY = Y + H*FCN(X,Y)X = X0 + H*I

END DOWRITE (*,*) NBSTEPS, Y, -(LOG(ABS((Y_XEND-Y)/Y_XEND)))/LOG(2D0)

END DOEND PROGRAM

DOUBLE PRECISION FUNCTION FCN (X, Y)IMPLICIT NONEDOUBLE PRECISION X, YFCN = YEND FUNCTION

Pour chaque valeur de N , il affiche une approximation du nombre de bits exacts de yN , c’est-à-dire :

nombre de bits exacts » ´ log2perreur relativeq “ ´ log2

ˆ

|ypxendq ´ yN |

|ypxendq|

˙

.

Voici le résultat de la simulation

NBSTEPS Y NB BITS EXACTS (APPROX.)2 2.2500000000000000 2.53724608001708954 2.4414062500000000 3.29538532797187908 2.5657845139503479 4.1558392988653825

16 2.6379284973665995 5.080193397790847832 2.6769901293781833 6.040699446562281464 2.6973449525650999 7.0205050447733184

128 2.7077390196880193 8.0102919557002483256 2.7129916242534331 9.0051559130912082512 2.7156320001689900 10.002580450068470

1024 2.7169557294664357 11.001290849636048

On observe qu’à chaque fois qu’on divise la longueur du pas, h, par deux, on gagne un bit exacten x “ xend (l’erreur relative en x “ xend — l’erreur relative globale — est divisée par deux).

47

Cette erreur est donc en h1. La méthode d’Euler est dite « d’ordre un ». Ce résultat peut paraîtreacceptable sur un exemple aussi simple mais il est insuffisant pour traiter un exemple un peu réaliste,comme le montre la Figure 4.5.

´1.5

´1

´0.5

0

0.5

1

1.5

´1.5 ´1 ´0.5 0 0.5 1 1.5

y2

y1

Terre Lune

Figure 4.5 – La même orbite qu’en Figure 4.1, calculée avec la méthode d’Euler et un million depas. L’erreur relative en x “ xend vaut 10´1. L’orbite devrait être fermée. La méthode d’Euler nepermet pas de s’en rendre compte, malgré le nombre de pas utilisés.

Question 1. Appliquer la méthode d’Euler au problème de Cauchy : 9y “ y´2x{y avec ypx0q “ 1sur l’intervalle rx0, xends “ r0, 2s pour N “ 1, puis N “ 2 pas. La solution exacte est ypxq “?

2x` 1.

4.3.2 Le schéma de Runge

Dans cette section, on continue de présenter informellement la notion d’ordre avant de donnerdes définitions plus précises dans la section suivante. Le schéma de Runge 8 est appelé aussi schémadu « point du milieu ». L’idée est la suivante : si on applique le schéma d’Euler sur un point px0, y0q,on aboutit à un point px0`h, y0`h k1q, avec k1 “ fpx0, y0q. Ces deux points définissent un rectangle(dans le cas d’équations différentielles en une variable, en tous cas). Le milieu de ce rectangle est lepoint de coordonnées :

ˆ

x0 `h

2, y0 ` h

k12

˙

.

8. Carl David Tolmé Runge (1856-1927).

48

En ce point se trouve un vecteur du champ de vecteurs, qui a pour coordonnées :ˆ

∆x∆ y

˙

ˆ

1k2

˙

, k2 “ f

ˆ

x0 `h

2, y0 ` h

k12

˙

.

La méthode de Runge consiste à suivre ce vecteur, depuis px0, y0q, suivant un pas de longueur h(voir Figure 4.6) :

y1 “ y0 ` h k2 .

Il est facile de modifier le programme précédent pour qu’il utilise le schéma de Runge plutôt que

x0 x0 `h2

x0 ` hy0

y0 ` hfpx0, y0q

y0 `h2fpx0, y0q

y1

vecteur parallèle auvecteur partant de M

M

Figure 4.6 – Interprétation graphique du schéma de Runge. Un pas avec la méthode d’Euler définitun rectangle de milieu M . Le schéma consiste à suivre le vecteur défini en M depuis px0, y0q.

celui d’Euler. À l’exécution, on observe qu’à chaque fois qu’on divise la longueur du pas h par deux,l’erreur relative globale est divisée par 4. Cette erreur est donc en h2. Le schéma de Runge est ditd’ordre deux :

NBSTEPS Y NB BITS EXACTS (APPROX.)2 2.6406250000000000 5.12943844254993314 2.6948556900024414 6.85843206940521458 2.7118412385519850 8.7212864917120907

16 2.7165935224747666 10.65290292743258532 2.7178496739802589 12.61886030726031564 2.7181725115638296 14.601891029858672

128 2.7182543383212754 16.593421378239558256 2.7182749357407454 18.589190555576408512 2.7182801027521668 20.587076175334616

1024 2.7182813967161392 22.586019232613165

49

Le schéma de Runge est-il plus efficace que celui d’Euler ? Pour que la comparaison soit honnête,il faut comparer les deux schémas à « quantité de travail » égale. Dans le domaine de l’intégrationnumérique des équations différentielles, on mesure cette quantité de travail en comptant le nombred’appels à la fonction f .

On raisonne sur l’exemple. Pour le schéma d’Euler, on obtient b bits de précisions en x “xend avec approximativement 2b´1 pas, c’est-à-dire 2b´1 évaluations, puisque chaque pas coûte uneévaluation. Pour le schéma de Runge, on obtient b bits de précisions avec approximativement 2b{2´1

pas, c’est-à-dire 2ˆ2b{2´1 “ 2b{2 évaluations, puisque chaque pas coûte deux évaluations. À précisionégale, une méthode d’ordre deux effectue donc beaucoup moins de travail qu’une méthode d’ordreun.

4.4 Les schémas de Runge-Kutta

Soit s un entier (le « nombre d’étages »). La formule suivante, qui calcule y1 à partir de px0, y0qest appelée schéma de Runge-Kutta explicite 9 à s étages [2, Definition 1.1, page 134]. La lettre hdésigne le pas. Les coefficients ci, bj et aij sont des réels :

k1 “ fpx0, y0q ,

k2 “ fpx0 ` c2 h, y0 ` h a21 k1q ,

k3 “ fpx0 ` c3 h, y0 ` h pa31 k1 ` a32 k2qq ,...

ks “ fpx0 ` cs h, y0 ` h pas1 k1 ` as2 k2 ` ¨ ¨ ¨ ` asps´1q ks´1qq ,

y1 “ y0 ` h pb1 k1 ` b2 k2 ` ¨ ¨ ¨ ` bs ksq .

(4.7)

Il est classique de représenter les coefficients d’un schéma de Runge-Kutta 10 par un tableau (lecoefficient c1 “ 0). Les schémas explicites sont caractérisés par le fait que la matrice des aij esttriangulaire inférieure :

0c2 a21c3 a31 a32...

.... . .

cs as1 as2 ¨ ¨ ¨ asps´1q

b1 b2 ¨ ¨ ¨ bs´1 bs

Les méthodes historiques d’Euler (s “ 1), de Runge (s “ 2), de Heun 11 (s “ 3), ainsi que « le »schéma RK4 (s “ 4) sont donnés par les tableaux suivants. Tous ces schémas sont d’ordre p “ s

9. Le schéma est explicite parce que chaque ki peut être calculé à partir de k1, k2, . . . , ki´1.10. Martin Wilhelm Kutta (1867-1944).11. Karl Heun (1859-1929).

50

mais on rencontrera d’autres schémas d’ordre p ă s :

0

1

012

12

0 1

013

13

23 0 2

3

14 0 3

4

012

12

12 0 1

21 0 0 1

16

13

13

16

Les coefficients ne sont pas quelconques : ils sont choisis de façon à fixer l’ordre du schéma.

4.4.1 Erreur locale et erreur globale

Avant de passer à l’étude plus rigoureuse de la notion d’ordre, il est utile de bien distinguerl’erreur globale de l’erreur locale. L’erreur la plus facile à appréhender, celle qui se voit le mieuxlorsqu’on traite des exemples par programme, c’est l’erreur globale, c’est-à-dire l’erreur en x “ xend.Le point exact (son ordonnée, en fait) est ypxendq. En supposant qu’on a effectuéN pas d’intégration,le dernier point calculé est yN . On a donc

erreur globale “ |ypxendq ´ yN | .

L’erreur locale est l’erreur après seulement un pas d’intégration. Elle est moins facile à visualiserexpérimentalement mais nettement plus pratique à manipuler lorsqu’on analyse les schémas rigou-reusement. C’est donc elle qui est naturellement utilisée pour définir l’ordre d’un schéma. Pourl’introduire, on part du point courant 12 px0, y0q. Le point exact du graphe de la fonction ypxq quipasse par le point courant est ypx1q “ ypx0 ` hq. Le point calculé est y1. On a donc :

erreur locale “ |ypx1q ´ y1| .

Dans les deux cas, il est parfois utile de distinguer l’erreur relative de l’erreur absolue.

4.4.2 Ordre d’un schéma de Runge-Kutta

Définition 6 [2, Definition 1.2, page 134] Un schéma de Runge-Kutta (4.7) est dit d’ordre p si (ensupposant la fonction f suffisamment dérivable), il existe une constante K ą 0 telle que l’erreurlocale vérifie :

|ypx0 ` hq ´ y1| ď K hp`1 . (4.8)

Lors de la présentation informelle de la notion d’ordre, c’est l’erreur globale que nous avonsobservée. Comment relier ces observations à la définition ?

Schéma d’Euler. Nous avons observé que l’erreur globale semble être « en h » (quand on divise hpar deux, l’erreur globale est approximativement divisée par deux). Nous avons affirmé (sans preuve)que le schéma d’Euler est d’ordre p “ 1. Or, d’après la définition, l’erreur locale est en h2. Il sembledonc qu’une erreur locale en h2 corresponde à une erreur globale en h.

12. La notation px0, y0q pour le point courant a le mérite d’alléger les notations mais constitue un léger glissementde sens par rapport aux notations introduites dans les sections précédentes. On pourrait le justifier en posant qu’onchange l’intervalle d’intégration considéré.

51

Schéma de Runge. Nous avons observé que l’erreur globale semble être en h2. (quand on divise hpar deux, l’erreur globale est approximativement divisée par deux au carré). Nous avons affirmé (sanspreuve) que le schéma de Runge est d’ordre p “ 2. Or, d’après la définition, l’erreur locale est en h3.Il semble donc à nouveau que l’exposant « chute de un » et qu’une erreur locale en h3 correspondeà une erreur globale en h2.

Généralisation. Ces observations se généralisent (voir [2, Theorem 3.4, page 160 ; Theorem 3.6,page 162] pour des énoncés plus précis et plus généraux) :

Proposition 8 Si on intègre (4.4) de x0 à xend avec un pas h, au moyen d’un schéma de Runge-Kutta (4.7) d’ordre p alors, sous certaines hypothèses, il existe une constante K ą 0 (qui dépendde f et de la différence xend ´ x0) telle que l’erreur globale vérifie :

|ypxendq ´ yN | ď K hp .

4.4.3 Détermination de l’ordre

Pour prouver qu’un schéma de Runge-Kutta est d’ordre p, l’idée consiste à comparer deuxdéveloppements en série et vérifier qu’ils ont mêmes coefficients jusqu’au terme en hp inclus. Cettecondition se traduit par des équations que les coefficients bi, cj et aij doivent satisfaire pour fournirun schéma d’ordre p.

Schéma d’Euler. Le premier développement en série est le développement de Taylor, en x “ x0de la solution exacte ypxq. La formule générale du développement de Taylor d’une fonction ypxq est(la dérivation se fait par rapport à la variable, x) :

ypx0 ` hq “ ypx0q ` h 9ypx0q `1

2h2 :ypx0q `

1

6h3 ;ypx0q ` ¨ ¨ ¨ (4.9)

Dans le cas qui nous intéresse, la fonction ypxq est solution de l’équation différentielle 9ypxq “fpx, ypxqq. Sans avoir besoin de résoudre en aucune façon cette équation, il est possible de remplacer9ypx0q par fpx0, ypx0qq dans (4.9). On obtient :

ypx0 ` hq “ ypx0q ` h fpx0, ypx0qq `1

2h2

df

dxpx0, ypx0qq ` ¨ ¨ ¨ (4.10)

La condition initiale est ypx0q “ y0. En reportant cette hypothèse dans la formule, on obtient, pourla solution exacte :

ypx0 ` hq “ y0 ` h fpx0, y0q `1

2h2

df

dxpx0, y0q ` ¨ ¨ ¨

Le deuxième développement en série est donné par le schéma d’Euler à partir du point px0, y0q :

y1 “ y0 ` h fpx0, y0q . (4.11)

On voit que la différence entre ces deux développements (l’erreur locale) est en h2. Sous réserveque h ne soit pas trop grand (il ne doit pas être plus grand que 1, par exemple) et que les valeursdes dérivées de f soient bornées, on conclut l’existence de la constante K de la définition 6.

52

Le schéma de Runge. C’est la même idée. On commence les calculs à la main pour voir lesmécanismes mis en œuvre. On conclut avec un logiciel de calcul formel parce que c’est trop pénibleà faire à la main 13. Pour prolonger le développement (4.10) de la solution exacte, il suffit d’appliquerla formule pour la dérivée des fonctions composées. La fonction f dépend de deux variables qu’ona notées x et y. Ses dérivées partielles sont donc

fx “Bf

Bxpx, yq et fy “

Bf

Bypx, yq .

Si upxq et vpxq sont deux fonctions dérivables, on a donc (dérivation des fonctions composées deplusieurs variables) :

df

dxpupxq, vpxqq “ fxpupxq, vpxqq 9upxq ` fypupxq, vpxqq 9vpxq .

Dans le cas qui nous intéresse, upxq “ x et vpxq “ ypxq. Par conséquent, 9upxq “ 1 et 9vpxq “fpx, ypxqq et on a :

df

dxpx, ypxqq “ fx px, ypxqq ` fy px, ypxqq fpx, ypxqq ,

“ pfx ` fy fqpx, ypxqq .

On obtient donc, pour la solution exacte :

ypx0 ` hq “ y0 ` h fpx0, y0q `1

2h2 pfx ` fy fqpx0, y0q ` ¨ ¨ ¨ (4.12)

Le deuxième développement en série est donné par le schéma de Runge à partir du point px0, y0q :

y1 “ y0 ` h f

ˆ

x0 `1

2h, y0 `

1

2h fpx0, y0q

˙

. (4.13)

Pour pouvoir comparer les deux développements, il suffit de réécrire cette formule, qui dépend déjàdu pas h, sous la forme d’une série en la variable h. On voit donc y1 comme une fonction de h eton cherche les coefficients de la formule suivante (les dérivations se font par rapport à h) :

y1phq “ y1p0q ` h 9y1p0q `1

2h2 :y1p0q ` ¨ ¨ ¨ (4.14)

Avant de mener les calculs, on introduit quelques notations pour alléger les formules. Notons

u “ uphq “ x0 `1

2h , v “ vphq “ y0 `

1

2h fpx0, y0q .

On a donc :

up0q “ x0 , vp0q “ y0 , 9u “ 9uphq “1

2, 9v “ 9vphq “

1

2fpx0, y0q .

13. L’introduction des calculatrices à l’école primaire a changé la façon d’enseigner les mathématiques : il esttoujours utile de savoir faire ses quatre opérations mais il est n’est plus aussi important de savoir effectuer de longuesopérations, à la main, sans se tromper. L’introduction du calcul formel dans les enseignements de calcul numériquea (devrait avoir !) le même effet.

53

La formule (4.13) se réécrit :

y1phq “ y0 ` h fpu, vq . (4.15)

En évaluant le schéma (4.15) en h “ 0, on trouve y1p0q “ y0. Pour le terme suivant, on commencepar dériver (4.15) par rapport à h :

9y1phq “ fpu, vq ` hdf

dhpu, vq . (4.16)

En évaluant cette formule en h “ 0, on obtient le deuxième terme du développement (4.14) :9y1p0q “ fpx0, y0q. Pour obtenir le terme suivant, il suffit de dériver (4.16) par rapport à h.

:y1phq “d

dh

fpu, vq ` hdf

dhpu, vq

“d

dhrfpu, vq ` h pfxpu, vq 9u` fypu, vq 9vqs

“ 2 pfxpu, vq 9u` fypu, vq 9vq ` hd

dhp ¨ ¨ ¨ q .

En évaluant cette formule en h “ 0, on obtient :y1p0q “ pfx ` fy fqpx0, y0q. On obtient ainsi ledéveloppement en série de y1 jusqu’au terme en h2 :

y1phq “ y0 ` h fpx0, y0q `1

2h2 pfx ` fy fqpx0, y0q ` ¨ ¨ ¨ (4.17)

On peut donc vérifier que le développement en série de la solution exacte (4.12) et celui du schémade Runge (4.17) coïncident 14 jusqu’au terme en h2 inclus. En fait, les calculs ne sont pas finis : pourmontrer que le schéma de Runge est d’ordre deux (et pas trois, quatre ou plus) il reste à montrerque les termes en h3 des deux développements sont différents. Sur le principe, les calculs sont lesmêmes. On les mène en MAPLE.

Mêmes calculs, en MAPLE. On commence par définir l’équation différentielle.

> edo := diff (y(x),x) = f(x,y(x));d

edo := -- y(x) = f(x, y(x))dx

On définit ensuite s et p.

14. On peut être gêné par le sentiment qu’on compare deux objets différents : le développement de Taylor (4.9) enx “ x0 de la fonction ypxq et le développement en série (4.14) en h “ 0 de la fonction y1phq. En fait, le développe-ment (4.9) est un cas particulier du développement (4.14). Il suffit de poser x “ x0 ` h (la variable x devient doncune fonction de h) et de calculer le développement en série en h “ 0 de ypxq. Lors des calculs, il suffit d’utiliser laformule pour la dérivée des fonctions composées :

dy

dhpxq “

dy

dxpxq

dx

dh“

dy

dxpxq .

On retrouve bien la série (4.9). On compare donc bien deux objets de même nature : deux développements en série,de deux fonctions de h, en h “ 0.

54

> s := 2:> p := 2:

Bien qu’elles aient l’air compliqué, les commandes suivantes ne font que calculer le développement ensérie générique de la solution exacte, jusqu’à l’ordre p` 1. L’expression D[1](f) désigne la dérivéepartielle de f par rapport à sa première variable (Bf{Bx dans notre cas). De même D[1,2](f)désigne la dérivée partielle seconde B2f{pBx Byq. Le résultat est affecté à la variable vsol.

> vsol := dsolve ({edo, y(x0)=y0}, y(x), series, order=p+2):> vsol := collect (subs (x=x0+h, convert (rhs (vsol), polynom)), h);

vsol := y0 + f(x0, y0) h

2+ (1/2 D[1](f)(x0, y0) + 1/2 D[2](f)(x0, y0) f(x0, y0)) h + (

21/6 D[2](f)(x0, y0) D[1](f)(x0, y0) + 1/6 D[2](f)(x0, y0) f(x0, y0)

+ 1/6 D[1, 1](f)(x0, y0) + 1/3 D[1, 2](f)(x0, y0) f(x0, y0)

2 3+ 1/6 D[2, 2](f)(x0, y0) f(x0, y0) ) h

On calcule maintenant le développement en série de y1. On commence par calculer une expressionsymbolique de y1 en utilisant le schéma (4.7). Les coefficients bi, cj et aij sont des paramètres, quiapparaissent comme coefficients dans la formule.

> k[1] := f(x0,y0):> for i from 2 to s do> k[i] := f(x0 + c[i]*h, y0 + h*add (a[i,j]*k[j], j = 1..i-1))> end do:> y1 := y0 + h*add(b[i]*k[i], i = 1..s);

y1 := y0 + h (b[1] f(x0, y0) + b[2] f(x0 + c[2] h, y0 + h a[2, 1] f(x0, y0)))

On demande un développement limité de y1 en h, jusqu’à l’ordre p` 1. Le résultat est affecté à lavariable rksol.

> rksol := convert (taylor (y1,h,p+2), polynom);

rksol := y0 + (b[1] f(x0, y0) + b[2] f(x0, y0)) h

2+ b[2] (D[1](f)(x0, y0) c[2] + D[2](f)(x0, y0) a[2, 1] f(x0, y0)) h +

2b[2] (1/2 D[1, 1](f)(x0, y0) c[2]

+ c[2] D[1, 2](f)(x0, y0) a[2, 1] f(x0, y0)

2 2 3+ 1/2 a[2, 1] f(x0, y0) D[2, 2](f)(x0, y0)) h

55

On calcule la différence entre les deux développements en série et on remplace les coefficients parleur valeur, dans le schéma de Runge. On voit que le premier terme non nul de la différence esten h3 :

> difference := rksol - vsol:> collect (subs (b[1] = 0, c[2]=1/2, a[2,1]=1/2, b[2] = 1, difference), h);

2(-1/24 D[2, 2](f)(x0, y0) f(x0, y0) - 1/12 D[1, 2](f)(x0, y0) f(x0, y0)

2- 1/6 D[2](f)(x0, y0) f(x0, y0) - 1/24 D[1, 1](f)(x0, y0)

3- 1/6 D[2](f)(x0, y0) D[1](f)(x0, y0)) h

les commandes suivantes donnent les conditions que les coefficients de Runge-Kutta doivent satisfairepour obtenir une méthode d’ordre 2. Voici le coefficient de h dans la différence entre les deuxdéveloppements. Ce coefficient doit être nul quelle que soit f . Il faut donc que b1 ` b2 “ 1 :

> X := indets (difference, function):> collect (eval (diff (difference, h), h = 0), X);

(b[1] + b[2] - 1) f(x0, y0)

Voici le coefficient de h2. Il doit être nul quelle que soit f . Donc b2 a21 “ b2 c2 “ 1{2 :

> collect (eval (diff (difference, h, h), h = 0), X);

2 (b[2] a[2, 1] - 1/2) D[2](f)(x0, y0) f(x0, y0)

+ 2 (b[2] c[2] - 1/2) D[1](f)(x0, y0)

Question 2. Reproduire le calcul ci-dessus en MAPLE pour vérifier que le schéma de Heun estd’ordre 3 et que « le » schéma RK4 est d’ordre 4 (il s’agit du plus populaire des schémas deRunge-Kutta d’ordre p “ 4 mais il en existe d’autres — d’où les guillemets).

Question 3. On souhaite intégrer un système d’équations différentielles. Dans le schéma (4.7),quelles sont les quantités qui restent des scalaires et celles qui deviennent des vecteurs ?

4.5 Intégrateur à pas adaptatif

On voudrait diminuer le travail effectué par l’intégrateur. L’idée consiste à diminuer la longueurdes pas là où la courbe effectue des virages serrés et à l’augmenter dans les virages plus larges. Pourcela, il suffit de pouvoir estimer l’erreur locale à chaque pas et d’ajuster le pas en fonction de cetteestimation.

Plusieurs techniques sont possibles. On présente celle des « formules de Runge-Kutta emboîtées ».L’idée consiste à calculer, en même temps que y1, une autre approximation y1, d’ordre p ‰ p. Ladifférence y1 ´ y1 fournit une estimation de l’erreur locale pour l’approximation la moins précise.

56

´1.5

´1

´0.5

0

0.5

1

1.5

´1.5 ´1 ´0.5 0 0.5 1 1.5

y2

y1

Terre Lune

Figure 4.7 – La même orbite qu’en Figure 4.1, calculée avec le schéma RK4 et 25000 pas. L’erreurrelative en x “ xend vaut 10´3. Comme le schéma comporte s “ 4 étages, le travail effectué parl’intégrateur est de 4ˆ 25000 “ 105 appels à la fonction f . Le résultat est bon mais reste coûteux.

Pour éviter d’augmenter le travail de l’intégrateur, l’astuce consiste à calculer y1 en utilisant lesévaluations de f qui servent à calculer y1 : les ki restent donc inchangés et il suffit de trouver un jeude coefficients bi pour y1. Pour les schémas avec une formule emboîtée, le tableau ressemble doncà :

0c2 a21c3 a31 a32...

.... . .

cs as1 as2 ¨ ¨ ¨ asps´1q

b1 b2 ¨ ¨ ¨ bs´1 bs

b1 b2 ¨ ¨ ¨ bs´1 bs

avec

y1 “ y0 ` h pb1 k1 ` b2 k2 ` ¨ ¨ ¨ ` bs ksq , y1 “ y0 ` h pb1 k1 ` b2 k2 ` ¨ ¨ ¨ ` bs ksq .

Des exemples sont donnés Figure 4.8.

57

0

12

12

12 0 1

2

1 0 0 1

34

532

732

1332 ´ 1

32

y116

13

13

16 0

y1 ´12

73

73

136 ´16

3

0

15

15

310

340

940

45

4445 ´56

15329

89

193726561 ´25360

2187644486561 ´212

729

1 90173168 ´355

33467325247

49176 ´ 5103

18656

1 35384 0 500

1113125192 ´2187

67841184

y135384 0 500

1113125192 ´2187

67841184 0

y1517957600 0 7571

16695393640 ´ 92097

3392001872100

140

Figure 4.8 – Schémas de Runge-Kutta avec formules emboîtées. À gauche le schéma Zonneveld4p3q (la notation pppq donne l’ordre de la formule principale et, entre parenthèses, celui de la formuleemboîtée) à s “ 5 étages. À droite, le schéma Dormand-Prince 5p4q à s “ 7 étages (celui qui a étéutilisé pour la Figure 4.1). Voir [2, pages 167 et 178]

4.5.1 Contrôle du pas en pratique

L’intégrateur n’est plus paramétré par un nombre de pas N mais par une précision souhaitée ε ą0 pour l’erreur locale (aussi bien relative qu’absolue) 15.

Formule pour le pas — l’idée. Voir [4, chapitre III, page 66] ou [2, page 167]. Dès qu’un pas ha été choisi, l’intégrateur calcule y1 et y1 à partir de y0. Une estimation de l’erreur pour le résultatle moins précis 16 est (on compliquera la formule en (4.20) un peu plus bas) :

erreur “def

|y1 ´ y1|. (4.18)

Posons q “ minpp, pq. En tant que fonctions du pas h, les développements en série de y1 et y1coïncident jusqu’au terme en hq inclus. On peut donc partir du principe que :

erreur » c hq`1 .

On cherche une nouvelle valeur hnew pour le pas telle que

ε “ c hq`1new .

On trouve (on compliquera cette formule en (4.21) plus bas) :

hnew “ h´ ε

erreur

¯1

q`1¨ (4.19)

On remarque que, si erreur ă ε alors hnew ą h : on peut accepter le pas h et augmenter sa longueurpour l’itération suivante. Inversement, si erreur ą ε alors hnew ă h : on doit refuser le pas etdiminuer sa longueur. Un pseudo-code pour l’intégrateur est donné Figure 4.9.

15. Dans les intégrateurs écrits avec plus de soin, on peut avoir une précision souhaitée par composante du vecteur yet prévoir deux ε ą 0 par composante : un pour l’erreur relative et l’autre pour l’erreur absolue. Voir [2, page 167].16. Pour les deux schémas que nous avons donné, y1 est plus précis que y1 mais ce n’est pas toujours le cas. Un

célèbre schéma, dû à Fehlberg, est d’ordre 4p5q.

58

procedure intégrateur à pas adaptatif (x0, xend, ε)h := minp10´3, xend ´ x0qwhile x0 ă xend doCalculer y1 et y1Calculer erreur (formule 4.20) et hnew (formule 4.21)if erreur ď ε thenx0 := x0 ` h (le pas est accepté)y0 := y1h := minphnew, xend ´ x0q

elseh := hnew (le pas est rejeté)

end ifend do

end

Figure 4.9 – Schéma d’intégrateur à pas adaptatif. Voir [4, chapitre III, page 67]. On remarqueque les pas acceptés et rejetés ne sont pas gérés de façon symétrique.

Formule pour le pas — la pratique. La formule (4.18) est un peu trop simple. En pratique,on considère une erreur relative plutôt qu’absolue et on s’arrange pour éviter les divisions par desnombres trop proches de zéro. Dans le cas d’un système de dimension n, on remplace la valeurabsolue par une norme :

erreur “def

g

f

f

e

1

n

nÿ

i“1

ˆ

y1i ´ y1i1`maxp|y0i|, |y1i|q

˙2

. (4.20)

On essaie aussi d’éviter que hnew soit trop différent de h et on préfère prendre une valeur un peutrop petite que trop grande de façon à réduire le risque que le pas soit rejeté à la prochaine itération.En prenant par exemple facmin “ 1{5, facmax “ 5 et fac “ 0.9, on peut utiliser la formule suivanteau lieu de (4.19) :

hnew “ h min

ˆ

facmax, max

ˆ

facmin, fac´ ε

erreur

¯1

q`1

˙˙

. (4.21)

Pas initial. Quelle valeur initiale donner au pas ? Des méthodes empiriques ont été suggerées [2,page 169] mais ne sont pas très satisfaisantes. Dans notre cas, il suffit d’initialiser le pas à une petitevaleur (10´3). Le mécanisme de l’intégrateur ajustera cette valeur en quelques itérations.

L’exemple. La courbe polygonale de la Figure 4.1 a été calculée avec l’algorithme décrit ci-dessus et le schéma Dormand-Prince 5p4q. La précision demandée était ε “ 1.5 10´4. Il y a eu 54pas acceptés et 20 pas rejetés et donc un travail total de p54 ` 20q ˆ s “ p54 ` 20q ˆ 7 “ 518évaluations de la fonction f .

59

4.5.2 Sortie dense

Les intégrateurs à pas adaptatif sont susceptibles d’effectuer de grands pas, donnant à l’affi-chage des courbes pas très lisses. L’idée de la sortie dense consiste à calculer, après chaque pas del’intégrateur, un polynôme yθpθq qui approxime ypx0 ` θ hq pour 0 ď θ ď 1. Pour lisser les courbes,il suffira, entre deux pas de l’intégrateur, d’évaluer yθpθq pour suffisamment de valeurs de θ prisesentre 0 et 1. Au delà de cet intérêt graphique, la question de la sortie dense est très importantepour le traitement de discontinuités ou l’intégration d’équations différentielles avec retards 17. Voir[2, chapters II.6, page 188 et II.17, page 342]. Plusieurs approches sont possibles pour mettre aupoint un tel polynôme yθpθq [2, pages 188-194] et [1, pages 98-115]. On décrit une solution simplemais pas optimale.

La formule. À partir du moment où le schéma considéré est d’ordre p ě 3, il existe un polynômeyθpθq générique qui fournit une approximation d’ordre 3 de la solution exacte, globalement C1,c’est-à-dire lisse, même aux points de raccord des morceaux de courbe. Ce polynôme vaut [2, page190] :

yθ “ p1´ θq y0 ` θ y1`

θ pθ ´ 1q`

p1´ 2 θq py1 ´ y0q ` pθ ´ 1qh fpx0, y0q ` θ h fpx1, y1q˘ (4.22)

La valeur fpx0, y0q est déjà disponible (c’est k1). Il est uniquement nécessaire de calculer fpx1, y1q, sicette valeur n’est pas déjà disponible. En effet, plusieurs schémas utilisent cette valeur (quand c’est lecas, elle est souvent dans ks). De plus, si le pas est accepté, cette valeur peut être réutilisée à l’étapesuivante comme valeur de k1. Lisser la courbe augmente donc très peu le travail de l’intégrateur.Un exemple de courbe lissée apparaît Figure 4.1.

La courbe est globalement lisse. On remarque que yθp0q “ y0 et yθp1q “ y1. La courbe estdonc globalement C0, c’est-à-dire continue. Vérifier que la courbe est lisse aux points de raccord (auniveau des sommets du polygone) est plus subtil. La courbe yθpθq approxime la courbe ypxq avecx “ x0` θ h. Il faut vérifier que la dérivée par rapport à x de yθ est la même à droite de l’intervallecourant (quand θ “ 1) et à gauche de l’intervalle suivant (quand θ “ 0). Il faut donc voir θ commeune fonction de x et appliquer la formule pour la dérivée des fonctions composées :

θ “x´ x0h

,dyθdx

“dyθdθ

dx“

1

h

dyθdθ¨

En remplaçant y1 par y0 ` h pb1 k1 ` b2 k2 ` ¨ ¨ ¨ ` bs ksq dans (4.22), on obtient :

dyθdx

“ 6 θ p1´ θq

˜

sÿ

i“1

bi ki

¸

``

3 θ2 ´ 4 θ ` 1˘

fpx0, y0q ``

3 θ2 ´ 2 θ˘

fpx1, y1q . (4.23)

À droite de l’intervalle courant, en θ “ 1, cette dérivée vaut fpx1, y1q. À gauche de l’intervallesuivant, en θ “ 0, elle vaut fpx0, y0q. Lors du changement d’intervalle, la nouvelle valeur de px0, y0qest égale à l’ancienne valeur de px1, y1q. Les deux dérivées sont donc égales et la courbe est lisse,même en cas d’intégrateur à pas adaptatif, puisque ces expressions ne dépendent pas de h.

17. Un exemple d’équation intégrale avec retard est donné par (3), page 1.

60

Autre façon d’obtenir la formule. Il est remarquable que le polynôme (4.22) est la solutiond’un problème d’interpolation (voir section 1.5). Il suffit de poser

yθ “ a3 θ3 ` a2 θ

2 ` a1 θ ` a0 , yθp0q “ y0 , yθp1q “ y1 ,

dyθdθp0q “ h fpx0, y0q ,

dyθdθp1q “ h fpx1, y1q

et de déterminer les coefficients de yθ en résolvant le système linéaire ainsi défini. Illustration enMAPLE :

> with (LinearAlgebra):> A := <<1,1,0,0>|<0,1,1,1>|<0,1,0,2>|<0,1,0,3>>;

[1 0 0 0][ ][1 1 1 1]

A := [ ][0 1 0 0][ ][0 1 2 3]

> v := <y0, y1, h*f(x0,y0), h*f(x1,y1)>;

[ y0 ][ ][ y1 ]

v := [ ][h f(x0, y0)][ ][h f(x1, y1)]

> sol := LinearSolve (A, v):> ytheta := add (sol[i]*theta^(i-1), i = 1..Dimension(sol));

ytheta := y0 + h f(x0, y0) theta

2+ (-3 y0 - 2 h f(x0, y0) + 3 y1 - h f(x1, y1)) theta

3+ (h f(x0, y0) + 2 y0 - 2 y1 + h f(x1, y1)) theta

La courbe donne une approximation d’ordre 3. Cette construction-ci [1, page 98] a l’intérêtde montrer pourquoi la formule (4.22) fournit une approximation d’ordre 3 de la solution exacte.On part de la formule qui donne y1 et on place des étoiles partout (on a supposé pour simplifier quele nombre d’étages ne changeait pas mais on aurait pu généraliser) :

y˚1 “ y0 ` h˚

sÿ

i“1

b˚i k˚i (4.24)

61

avec h˚ “ θ h, afin d’approximer ypx0 ` θ hq. Les k˚i sont naturellement définis par :

k˚i “ f

˜

x0 ` c˚i h

˚, y0 ` h˚

i´1ÿ

j“1

a˚ij k˚j

¸

. (4.25)

On simplifie beaucoup les choses en posant c˚i “ ci{θ et a˚ij “ aij{θ, parce qu’alors k˚i “ ki. Laformule (4.24) utilise donc les évaluations de fonction qui ont servi à calculer y1. Elle se réécrit en :

y˚1 “ y0 ` h˚

sÿ

i“1

b˚i ki . (4.26)

Comment obtient-on les b˚i ? En procédant comme en section 4.4.3, c’est-à-dire en posant que ledéveloppement en série de la solution exacte ypx0`h˚q coïncide avec celui de la solution numériquey˚1 ph

˚q jusqu’au terme en ph˚q3 inclus. Pour fixer les idées, on a pris l’exemple d’un schéma d’ordrep “ 3 (le schéma de Heun), auquel on a ajouté un quatrième étage (s “ 4) de façon à ce queks “ fpx1, y1q. Le tableau de ce schéma est :

013

13

23 0 2

31 1

4 0 34

14 0 3

4 0

On a calculé la différence entre les deux développements (comme en section 4.4.3) et remplacé lescoefficients c˚i et a˚ij par ci{θ et aij{θ. Les conditions à satisfaire sont données par les coefficientsqui doivent s’annuler identiquement :

b˚1 ` b˚2 ` b

˚3 ` b

˚4 “ 1 ,

2

3b˚2 `

4

3b˚3 ` 2 b˚4 “ θ ,

1

3b˚2 `

4

3b˚3 ` 3 b˚4 “ θ2 ,

4

3b˚3 ` 3 b˚4 “ θ2 .

Un calcul rapide aboutit à :

b˚2 “ 0 , b˚4 “ θ2 ´ θ , b˚3 “ ´3

2θ2 `

9

4θ , b˚1 “

1

2θ2 ´

5

4θ ` 1 .

En remplaçant les b˚i par leur valeur et h˚ par θ h dans (4.26), on obtient une formule dépendantde θ et de h qui constitue une approximation de ypx0 ` θ hq d’ordre 3. Cette formule est égale à laformule (4.22). Pour un autre schéma, les polynômes b˚i changent mais pas la formule (4.22).

Question 4. Refaire les calculs pour le schéma d’ordre 3 suivant [1, page 100] (ne pas oublierd’ajouter un étage).

012

12

34 0 3

4

29

13

49

Les polynômes à obtenir sont

b˚1 “ 1´4

3θ `

5

9θ2 , b˚2 “ θ

ˆ

1´2

˙

, b˚3 “4

ˆ

1´2

˙

, b˚4 “ θ pθ ´ 1q .

62

4.5.3 Implantation en FORTRAN

On conseille le découpage suivant : dans un fichier integrateur.f, un programme principal(chargé du choix de l’exemple à traiter, du schéma à utiliser et même de la nature de l’intégrateur),un sous-programme pour l’intégrateur à pas adaptatif (chargé de gérer les pas acceptés ou rejetéset de lisser la courbe) et un sous-programme pour calculer y1 et y1 en fonction de y0. Les deuxfonctions qui définissent le problème à traiter peuvent être placées dans un fichier séparé, parexemple : Arenstorf.f. La fonction qui définit le schéma de Runge-Kutta à utiliser peut être placéedans un autre fichier séparé, par exemple : Zonneveld.f. Un programme principal élémentaire pourintegrateur.f pourrait ressembler à ceci :

PROGRAM DSOLVEIMPLICIT NONE

* La dimension maximale des systèmes à intégrerINTEGER NMAXPARAMETER (NMAX = 10)

** LES VARIABLES DU PROBLÈME DIFFÉRENTIEL** N La (vraie) dimension de Y* X0, XEND L’intervalle d’intégration* PROBLEM_F Sous-programme chargé de l’évaluation de* la fonction F associée au problème

INTEGER NDOUBLE PRECISION X0, XEND, Y(NMAX)EXTERNAL PROBLEM_F

** LES VARIABLES DU SCHÉMA DE RUNGE-KUTTA** SMAX Le nombre maximal d’étages* S Le (vrai) nombre d’étages* P L’ordre de la formule principale* PHAT L’ordre de la formule emboîtée** A, B, C Les coefficients du « tableau »* BHAT B alternatif pour la formule emboîtée** K Les K(I) des formules de Runge-Kutta* K est un tableau de S colonnes de dimension N*

INTEGER SMAX, S, P, PHATPARAMETER (SMAX = 7)DOUBLE PRECISION C(SMAX)DOUBLE PRECISION A(SMAX,SMAX-1)DOUBLE PRECISION B(SMAX), BHAT(SMAX)DOUBLE PRECISION K(NMAX,SMAX)

** LES VARIABLES DE L’INTÉGRATEUR** EPSLN L’erreur souhaitée (à la fois locale et globale)* HMIN Le pas minimum à effectuer, pour la sortie dense,* sous réserve que P >= 3.*

DOUBLE PRECISION EPSLN, HMIN*

63

* Initialise les variables du problèmeCALL PROBLEM_INIT (N, X0, XEND, Y)

* Initialise les variables du schéma de Runge-KuttaCALL SCHEMA_INIT (S, P, PHAT, C, A, SMAX, B, BHAT)EPSLN = 1D-5HMIN = 1D-3

* Appelle l’intégrateurCALL RK_ADAPTATIF (N, X0, XEND, Y, PROBLEM_F,$ S, P, PHAT, C, A, SMAX, B, BHAT, K, NMAX,$ HMIN, EPSLN)END PROGRAM

Voici l’entête du sous-programme qui implante l’intégrateur. Les paramètres LDA et LDK contiennentle nombre de lignes des matrices A et K, telles qu’elles ont été déclarées (même convention qu’avecLAPACK).

SUBROUTINE RK_ADAPTATIF (N, X0, XEND, Y0, FCN,$ S, P, PHAT, C, A, LDA, B, BHAT, K, LDK,$ HMIN, EPSLN)IMPLICIT NONE

* Le problème différentielINTEGER NDOUBLE PRECISION X0, XEND, Y0(N)EXTERNAL FCN

* Le schéma de Runge-KuttaINTEGER S, P, PHAT, LDA, LDKDOUBLE PRECISION C(S)DOUBLE PRECISION A(LDA,S-1)DOUBLE PRECISION B(S), BHAT(S)

* K est un tableau de S colonnes de dimension NDOUBLE PRECISION K(LDK,S)

* L’intégrateurDOUBLE PRECISION HMIN, EPSLN

** VARIABLES LOCALES POUR LA GESTION DE L’ERREUR LOCALE*

DOUBLE PRECISION H, HNEW, ERREUR** X1 La nouvelle valeur de X0 (si le pas est accepté)* Y1 La nouvelle valeur de Y0 (si le pas est accepté)* Y1HAT Y1 alternatif, produit par la formule emboîtée*

DOUBLE PRECISION X1, Y1(N), Y1HAT(N)

Certaines BLAS peuvent être utiles : DCOPY (copie de vecteurs), DSCAL (multiplication par unscalaire, mise à zéro d’un vecteur), DAXPY (combinaison linéaire αx` y de deux vecteurs). Le sous-programme suivant initialise les variables associées à un schéma de Runge-Kutta. Voici l’exempledu schéma de Zonneveld 4p3q. Il est possible de le placer dans un fichier séparé de l’intégrateur, parexemple Zonneveld.f, pour faciliter l’utilisation de différents schémas.

SUBROUTINE SCHEMA_INIT (S, P, PHAT, C, A, LDA, B, BHAT)* Le schéma Zonneveld 4(3)

IMPLICIT NONEINTEGER S, P, PHAT, LDA

64

DOUBLE PRECISION C(*)DOUBLE PRECISION A(LDA,*)DOUBLE PRECISION B(*), BHAT(*)

*S = 5P = 4PHAT = 3

*C(1) = 0D0C(2) = 5D-1C(3) = 5D-1C(4) = 1D0C(5) = 75D-2A(2,1) = 5D-1A(3,1) = 0D0A(3,2) = 5D-1A(4,1) = 0D0A(4,2) = 0D0A(4,3) = 1D0A(5,1) = 5D0/32D0A(5,2) = 7D0/32D0A(5,3) = 13D0/32D0A(5,4) = -1D0/32D0B(1) = 1D0/6D0B(2) = 1D0/3D0B(3) = 1D0/3D0B(4) = 1D0/6D0B(5) = 0D0

* Formule emboîtéeBHAT(1) = -5D-1BHAT(2) = 7D0/3D0BHAT(3) = 7D0/3D0BHAT(4) = 13D0/6D0BHAT(5) = -16D0/3D0END SUBROUTINE

Les sous-programmes suivants peuvent être utilisés pour le calcul des orbites d’Arenstorf. Ilest possible de placer ces sous-programmes dans un fichier séparé de l’intégrateur, par exempleArenstorf.f, pour faciliter le traitement de différents exemples.

SUBROUTINE PROBLEM_INIT (N, X0, XEND, Y0)** Des conditions initiales pour Arenstorf (Hairer, Norsett, Wanner, p. 130)** Y = (y1, y2, y1’, y2’)*

IMPLICIT NONEINTEGER NDOUBLE PRECISION X0, XEND, Y0(*)

*X0 = 0D0XEND = 17.0652165601579625588917206249N = 4Y0(1) = 0.994D0Y0(2) = 0D0Y0(3) = 0D0

65

Y0(4) = -2.00158510637908252240537862224D0END SUBROUTINE

SUBROUTINE PROBLEM_F (N, X, Y, F)** Une fonction R x R^N -> R^n* (X, Y) -> F = FCN (X, Y)** Les vecteurs Y et F sont de dimension N = 4* Il s’agit d’un système dans le plan (y1, y2) d’ordre 2.** Y = (y1, y2, y1’, y2’)** Voir Hairer, Norsett, Wanner, p. 476 pour le code FORTRAN* et p. 129 pour le système mathématique*

IMPLICIT NONEINTEGER NDOUBLE PRECISION X, Y(N), F(N)

*DOUBLE PRECISION MU, MUP, R1, R2PARAMETER (MU = 0.012277471D0)PARAMETER (MUP = 1D0 - MU)F(1) = Y(3)F(2) = Y(4)R1 = (Y(1) + MU)**2+Y(2)**2R1 = R1 * SQRT(R1)R2 = (Y(1) - MUP)**2+Y(2)**2R2 = R2 * SQRT(R2)F(3) = Y(1)+2D0*Y(4)-MUP*(Y(1)+MU)/R1-MU*(Y(1)-MUP)/R2F(4) = Y(2)-2D0*Y(3)-MUP*Y(2)/R1-MU*Y(2)/R2END SUBROUTINE

4.6 Les schémas de Runge-Kutta implicites

Cette section joue davantage le rôle d’une conclusion du chapitre 4 que celui d’une véritable pré-sentation des intégrateurs implicites. Au delà de son intérêt scientifique, elle permet de comprendrepourquoi les bibliothèques logicielles dédiées à l’intégration numérique des équations différentiellesdemandent parfois qu’on leur fournisse non seulement la fonction f qui définit le système différentielmais aussi sa matrice jacobienne.

4.6.1 Motivation

On commence par deux exemples de simulations numériques, qui comparent les performancesdes méthodes explicites décrites dans les sections précédentes avec une méthode implicite. Sur lefond, les méthodes implicites sont meilleures sur de tels systèmes parce qu’elles ont de meilleurespropriétés de stabilité [3, chapter IV.2].

Le système de Robertson. Il s’agit d’un système de réactions chimiques abstrait comportanttrois espèces chimiques A, B et C ainsi que trois réactions. Les réactions sont étiquetées par desconstantes cinétiques. Ces constantes ont des ordres de grandeur très différents. On a affaire à une

66

réaction lente, une rapide et une très rapide : c’est ce qui rend le système difficile à intégrer. Voir laFigure 4.10 ainsi que [3, chapter IV.1, page 3].

A4 10´2

´ Ñ B , B ` C104´ Ñ A` C , 2B

3 107´ Ñ B ` C .

Les concentrations de A, B et C sont notées y1pxq, y2pxq et y3pxq (n “ 3). Le système différentiels’écrit

9y1 “ ´4 10´2 y1 ` 104 y2 y3 ,

9y2 “ 4 10´2 y1 ´ 104 y2 y3 ´ 3 107 y22 ,

9y3 “ 3 107 y22 .

avec les conditions initiales suivantes :

y1p0q “ 1 , y2p0q “ y3p0q “ 0 .

3e´ 05

3.2e´ 05

3.4e´ 05

3.6e´ 05

3.8e´ 05

4e´ 05

0 0.05 0.1 0.15 0.2 0.25 0.3

y2

x

Figure 4.10 – Simulation numérique du système de Robertson. La courbe rouge a été produitepar l’intégrateur à pas adaptatif décrit en section 4.5, muni du schéma Dormand-Prince 5p4q avecε “ 10´6. L’intégrateur accepte 208 pas et en rejette 83. Par comparaison, les croix représententles 7 points calculés par un intégrateur à pas adaptatif, muni du schéma de Runge-Kutta impliciteRadau IIA d’ordre 5p4q avec la même valeur de ε. La vraie solution n’oscille pas et passe très prèsdes croix. Il est manifeste que la méthode implicite se comporte beaucoup mieux que la méthodeexplicite.

L’équation de Van Der Pol. Il s’agit d’une équation différentielle d’ordre deux, qui modélisele comportement d’un circuit électrique (n “ 2). Ici aussi, c’est le très petit ordre de grandeur de µqui rend le système difficile à intégrer. Voir la Figure 4.11 [3, chapter IV.1, page 4].

67

9y1 “ y2 ,

9y2 “ µ pp1´ y21q y2 ´ y1q .

avecµ “ 10´6 , y1p0q “ 2 , y2p0q “ 6 10´1.

´2.5

´2

´1.5

´1

´0.5

0

0.5

1

1.5

2

2.5

0 0.5 1 1.5 2

y1

x

Figure 4.11 – Simulation numérique de l’équation de Van Der Pol. Les deux intégrateurs donnentvisuellement la même courbe, mais pas avec le même travail. La méthode implicite accepte 865 paset en rejette 13. La méthode explicite accepte 1160503 pas et en rejette 29272.

4.6.2 Structure des schémas

Les schémas implicites sont caractérisés par le fait que la matrice des aij est carrée.

c1 a11 ¨ ¨ ¨ a1s...

......

cs as1 ¨ ¨ ¨ ass

b1 ¨ ¨ ¨ bs

Voici par exemple le tableau associé au schéma RadauIIA à s “ 3 étages, d’ordre p “ 5 [3, chapterIV, page 74] :

4´?6

1088´7

?6

360296´169

?6

1800´2`3

?6

225

4`?6

10296`169

?6

180088`7

?6

360´2´3

?6

225

1 16´?6

3616`

?6

3619

16´?6

3616`

?6

3619

68

4.6.3 Le système non linéaire à résoudre

La première difficulté tient au fait que les ki ne peuvent plus se calculer les uns après les autrespar une simple évaluation mais sont la solution d’un système non linéaire, qui devra être résolu àchaque pas de l’intégrateur.

Les formules du système (4.7) deviennent :

ki “ fpx0 ` ci h, y0 ` h pai1 k1 ` ai2 k2 ` ¨ ¨ ¨ ` ais ksqlooooooooooooooooooomooooooooooooooooooon

zi

q p1 ď i ď sq ,

y1 “ y0 ` h pb1 k1 ` b2 k2 ` ¨ ¨ ¨ ` bs ksq .

(4.27)

Tant qu’à résoudre un système non linéaire, autant prendre pour variables les expressions zi enentrée des fonctions f (on préfère prendre les zi pour variables plutôt que les quantités gi “ y0 ` zipour éviter des problèmes d’arrondis). On reformule donc le système (4.27) en le système équivalentsuivant [3, chapter IV.3, page 40 et IV.8, page 118] :

zi “ hsÿ

j“1

aij fpx0 ` cj h, y0 ` zjq p1 ď i ď sq , (4.28)

y1 “ y0 ` hsÿ

j“1

bj fpx0 ` cj h, y0 ` zjq . (4.29)

Le système (4.28) comporte s variables zi qui sont elles-mêmes des vecteurs de dimension n. On adonc affaire à un système de nˆ s équations non linéaires en nˆ s variables réelles. Ce système serésout par une méthode de Newton, qui utilise la matrice jacobienne Jz du système (4.28). Cettegrosse matrice jacobienne de dimension pnˆsqˆpnˆsq se construit elle-même à partir de la matricejacobienne Jf , de dimension n ˆ n de la fonction f . C’est cette matrice Jf que les bibliothèqueslogicielles demandent qu’on leur fournisse, lorsqu’on souhaite utiliser une méthode implicite.

Rappelons que la fonction f est un vecteur de n fonctions fipx, y1, y2, . . . , ynq. La matrice jaco-bienne Jf est elle-même une fonction Jf px, y1, y2, . . . , ynq. Elle s’écrit :

Jf “

¨

˚

˝

Bf1By1

¨ ¨ ¨Bf1Byn

......

BfnBy1

¨ ¨ ¨BfnByn

˛

.

La matrice jacobienne Jz peut alors s’écrire :

Jz “

¨

˚

˝

I ´ h a11 Jf px0 ` c1 h, y0 ` z1q ¨ ¨ ¨ h a1s Jf px0 ` cs h, y0 ` zsq...

...h as1 Jf px0 ` c1 h, y0 ` z1q ¨ ¨ ¨ I ´ h ass Jf px0 ` cs h, y0 ` zsq

˛

.

L’itération de Newton est donnée par (4.31).

4.6.4 Méthode de Newton

Dans cette section, on rappelle le principe de la méthode de Newton en une et en plusieursvariables. On montre ensuite comment l’appliquer au système (4.28).

69

Cas d’une variable. On suppose qu’on connaît une approximation xp0q d’une solution d’uneéquation fpxq “ 0, où f est une fonction dérivable. La méthode de Newton calcule une suitede réels qui converge (sous certaines hypothèses) vers cette solution. On considère le début d’undéveloppement en série, centré en xp0q, de la fonction f :

fpxp0q ` hq » fpxp0qq ` h f 1pxp0qq (4.30)

On cherche h tel que fpxp0q ` hq “ 0. On trouve

h “ ´fpxp0qq

f 1pxp0qq, xp0q ` h “ xp0q ´

fpxp0qq

f 1pxp0qq¨

Comme le développement en série (4.30) est tronqué, le nombre xp0q`h trouvé n’est qu’une approxi-mation de la racine recherchée et on recommence la calcul en le prenant comme nouveau point dedépart. En général, si la suite converge vers la racine visée, elle converge vite 18. La formule générales’écrit :

xpi`1q “ xpiq ´fpxpiqq

f 1pxpiqq¨

Cas de plusieurs variables. On considère une fonction dérivable F : R2 Ñ R2. La fonction Fest donc un vecteur F “

`

fpx, yq gpx, yq˘T de deux fonctions de deux variables réelles x et y. On

suppose qu’on connaît une approximation p xp0q yp0q qT d’une solution de l’équation F px, yq “ 0.La méthode de Newton calcule une suite de vecteurs de R2 qui converge (sous certaines hypothèses)vers cette solution. On considère le début d’un développement en série, centré en

`

xp0q yp0q˘T ,

de la fonction F :

fpxp0q ` h, yp0q ` `q “ fpxp0q, yp0qq ` hBf

Bxpxp0q, yp0qq ` `

Bf

Bypxp0q, yp0qq ,

gpxp0q ` h, yp0q ` `q “ gpxp0q, yp0qq ` hBg

Bxpxp0q, yp0qq ` `

Bg

Bypxp0q, yp0qq .

Ce début de développement en série peut s’écrire matriciellement. On voit alors apparaître la matricejacobienne Jpx, yq de la fonction F px, yq :

ˆ

fpxp0q ` h, yp0q ` `q

gpxp0q ` h, yp0q ` `q

˙

ˆ

fpxp0q, yp0qq

gpxp0q, yp0qq

˙

`

˜

BfBx

BfBy

BgBx

BgBy

¸

loooooomoooooon

J

pxp0q, yp0qq ¨

ˆ

h`

˙

.

Comme dans le cas d’une variable, on pose que le membre gauche de l’équation précédente est nul.Les inconnues, qui sont les accroissements h et `, sont donc solution du système d’équations linéairessuivant :

Jpxp0q, yp0qq ¨

ˆ

h`

˙

“ ´F pxp0q, yp0qq .

18. La vitesse de convergence est quadratique en général, c’est-à-dire que le nombre de décimales exactes double àchaque itération.

70

L’itération de Newton est donc définie par :

Jpxpiq, ypiqq ¨

ˆ

hpiq

`piq

˙

“ ´F pxpiq, ypiqq (à résoudre) ,ˆ

xpi`1q

ypi`1q

˙

ˆ

xpiq

ypiq

˙

`

ˆ

hpiq

`piq

˙

Lien avec la section précédente. Les variables zj s’obtiennent en répétant un certain nombrede fois l’itération suivante, dont les inconnues sont les accroissements ∆zj (comme les zj , ce sont svecteurs de dimension n). Voir [3, chapter IV.8, pages 118-120].

Jzpzpiq1 , . . . , zpiqs q ¨

¨

˚

˝

∆zpiq1...

∆zpiqs

˛

“ ´

¨

˚

˝

fpx0 ` c1 h, y0 ` zpiq1 q

...fpx0 ` cs h, y0 ` z

piqs q

˛

(à résoudre) ,

¨

˚

˝

zpi`1q1...

zpi`1qs

˛

¨

˚

˝

zpiq1...zpiqs

˛

`

¨

˚

˝

∆zpiq1...

∆zpiqs

˛

(4.31)

Il est souvent conseillé [3, chapter IV.8, page 119] d’approximer la matrice Jf px0` ci h, y0` ziq parla matrice Jf px0, y0q. La matrice Jz reste alors la même à chaque itération. Sa factorisation LUpeut n’être calculée qu’une seule fois et être réutilisée à chaque résolution de système linéaire. Uneimplantation, prévue dans le cadre d’un intégrateur à pas adaptatif, est donnée Figure 4.12.

4.6.5 Détermination de l’ordre

Comment détermine-t-on l’ordre p d’un schéma implicite ? Sur le principe, l’idée est la même quepour les schémas explicites : on compare le développement en série de la solution exacte ypx0`hq etcelui de y1phq. Les deux séries doivent être égales terme à terme jusqu’au coefficient de hp inclus. Enpratique, le problème du développement en série de y1phq peut laisser perplexe ! En effet, dans le casexplicite, le développement en série a été calculé à partir de la formule qui donne y1, en remplaçanttous les ki par leur valeur. Mais dans le cas implicite, il n’est pas possible de remplacer les ki par leurvaleur puisqu’ils dépendent tous les uns des autres ! En fait, la difficulté n’est qu’apparente : il suffitd’effectuer les remplacements paresseusement (voir toutefois [2, chapter II.7, pages 206-207] pourla question de l’existence d’une solution numérique). Voici une illustration du procédé en MAPLE.On commence comme dans le cas explicite :

> edo := diff (y(x),x) = f(x,y(x));d

edo := -- y(x) = f(x, y(x))dx

> s := 3:> p := 5:

Les commandes suivantes calculent le développement en série de la solution exacte, jusqu’à l’ordre p`1. Comme l’expression résultat est très volumineuse, on tronque la sortie.

71

> vsol := dsolve ({edo, y(x0)=y0}, y(x), series, order=p+2):> vsol := collect (subs (x=x0+h, convert (rhs (vsol), polynom)), h);

vsol := y0 + f(x0, y0) h

2+ (1/2 D[1](f)(x0, y0) + 1/2 D[2](f)(x0, y0) f(x0, y0)) h + [...]

Pour la solution numérique y1, l’idée consiste à représenter les kj par des fonctions inconnues kjphq età introduire séparément, pour chaque kj , une expression ekpjq qui servira ultérieurement à remplacerla fonction inconnue kjphq par sa valeur, développée une étape plus loin.

> ek := j -> f(x0 + c[j]*h, y0 + h*add (a[j,l]*k[l](h), l = 1..s));

ek := j -> f(x0 + c[j] h, y0 + h add(a[j, l] k[l](h), l = 1 .. s))

> y1 := y0 + h*add(b[i]*f(x0 + c[i]*h,y0 + h*add (a[i,j]*k[j](h), j = 1..s)), i = 1..s);

y1 := y0 + h (b[1] f(x0 + c[1] h,

y0 + h (a[1, 1] k[1](h) + a[1, 2] k[2](h) + a[1, 3] k[3](h))) + b[2] f(

x0 + c[2] h, y0 + h (a[2, 1] k[1](h) + a[2, 2] k[2](h) + a[2, 3] k[3](h)))

+ b[3] f(x0 + c[3] h,

y0 + h (a[3, 1] k[1](h) + a[3, 2] k[2](h) + a[3, 3] k[3](h))))

Il ne reste plus qu’à définir la différence entre les deux expressions (il est inutile de développer y1en série puisque les calculs menés ci-dessous le feront automatiquement) :

> difference := y1 - vsol:> X := indets (difference, function):

On stocke maintenant les coefficients qui définissent le schéma de la section 4.6.2 dans une variable.

> RadauIIA :=> c[1]=(4-sqrt(6))/10, c[2]=(4+sqrt(6))/10, c[3]=1,> a[1,1]=(88-7*sqrt(6))/360,> a[1,2]=(296-169*sqrt(6))/1800,> a[1,3]=(-2+3*sqrt(6))/225,> a[2,1]=(296+169*sqrt(6))/1800,> a[2,2]=(88+7*sqrt(6))/360,> a[2,3]=(-2-3*sqrt(6))/225,> a[3,1]=(16-sqrt(6))/36, a[3,2]=(16+sqrt(6))/36, a[3,3]=1/9,> b[1]=(16-sqrt(6))/36, b[2]=(16+sqrt(6))/36, b[3]=1/9:

Les deux développements en série commencent par le même terme, puisque leur différence vautzéro :

> eval (difference, h = 0);0

72

Le coefficient de h dans la différence s’obtient en dérivant cette expression par rapport à h et enévaluant le résultat en zéro :

> collect (eval (diff (difference, h), h = 0), X);(b[1] + b[2] + b[3] - 1) f(x0, y0)

On vérifie que le schéma satisfait bien à b1 ` b2 ` b3 “ 1 :

> subs (RadauIIA, %);0

Pour obtenir le coefficient de h2, on doit remplacer les fonctions inconnues kjphq par ekpjq unepremière fois, dériver deux fois par rapport à h puis évaluer en h “ 0 :

> difference := subs (seq (k[z](h) = ek(z), z = 1 .. s), difference):> collect (eval (diff (difference, h, h), h = 0), X);(2 b[1] (a[1, 1] + a[1, 2] + a[1, 3]) + 2 b[2] (a[2, 1] + a[2, 2] + a[2, 3])

+ 2 b[3] (a[3, 1] + a[3, 2] + a[3, 3]) - 1) D[2](f)(x0, y0) f(x0, y0)

+ (2 b[1] c[1] + 2 b[2] c[2] + 2 b[3] c[3] - 1) D[1](f)(x0, y0)

On vérifie que le schéma considéré annule identiquement cette expression :

> simplify (subs (RadauIIA, %));0

En continuant de proche en proche, il est possible de vérifier (avec une bonne machine, parce queles expressions grossissent très vite) que le schéma donné en section 4.6.2 est d’ordre p “ 5.

4.6.6 Intégrateur à pas adaptatif

Sur le principe, l’idée est la même que pour les schémas explicites : on estime l’erreur en utilisantune formule emboîtée d’ordre p ‰ p puis on avance et on augmente le pas si l’erreur est plus petitequ’un ε ą 0 fixé à l’avance, sinon on rejette le pas et on diminue sa longueur. En pratique, les calculssont plus techniques et l’algorithme de l’intégrateur peut même dépendre de certaines propriétés desschémas. On donne ici l’algorithme de contrôle du pas qui est exposé dans [3, chapter IV.8, pages123-124]. Cet algorithme suppose que la matrice paijq admet au moins une valeur propre réelle.

On commence par munir le schéma RadauIIA à 3 étages donné en section 4.6.2 de coefficients bidéfinissant une formule emboîtée d’ordre p “ 3 :

`

b1 b2 b3˘

“`

b1 b2 b3˘

`γ03

`

´13´ 7?

6 ´13` 7?

6 ´1˘

γ0 “3ˆ 3

13 ´ 3

23 ` 6

30

désigne la valeur propre réelle de la matrice paijq de ce schéma. Voir [3, chapter IV.8, (8.17) et(8.18), page 123]. La formule choisie pour y1 est [3, chapter IV.8, (8.16)] :

y1 “ y0 ` h

˜

γ0 fpx0, y0q `3ÿ

i“1

bi fpx0 ` ci h, y0 ` ziq

¸

(4.32)

73

On remarque qu’il est commode, d’un point de vue calculatoire, de calculer la différence y1 ´ y1plutôt que y1 (il vaut alors mieux mémoriser les coefficients ei “ bi ´ bi plutôt que les bi et adapterle code de la Figure 4.12). En effet, cette différence s’exprime simplement à partir des variables zi[3, chapter IV.8, (8.17)] :

y1 ´ y1 “ γ0 h fpx0, y0q ` e1 z1 ` e2 z2 ` e3 z3 .

Comme dans le cas explicite, la formule précédente est un peu trop simple et demande à être raffinée.On commence par résoudre

pI ´ h γ0 Jf px0, y0qq errp0q “ y1 ´ y1 .

La matrice Jf désigne la jacobienne de la fonction f . Le vecteur des inconnues, errp0q, est dedimension n. Au premier pas de l’intégrateur et après chaque pas rejeté, on raffine encore davantageet on résout :

pI ´ h γ0 Jf px0, y0qq errp1q “ γ0 h fpx0, y0 ` errp0qq ` e1 z1 ` e2 z2 ` e3 z3 .

On peut alors définir

erreur “

g

f

f

e

1

n

nÿ

i“1

˜

errp1qip1`maxp|y0i|, |y1i|qq ε

¸2

(4.33)

Il faut bien sûr utiliser errp0q si errp1q n’a pas été calculé. Voir [3, chap IV.8, (8.19), (8.20) et(8.21), pages 123-124] pour une justification de ces calculs. Le code d’un intégrateur à pas adaptatifsynthétisant toutes ces idées est donné Figure 4.13.

74

function calcul de y1 et y1 (x0, y0, h, ε)κ est une constante qu’on peut fixer à 0.05. Voir [3, page 121].begini := 1 est le numéro de l’itération de Newton. Une valeur négative indique un problème :en général, la non convergence de l’itération de Newton.

arrêt := fauxwhile not arrêt and i ě 1 doCalculer ∆zpiq et zpiq suivant (4.31). On peut avoir initialisé zp0q à 0.if la résolution du système linéaire a échoué theni := ´2

elif i “ 1 thenη := maxpηold, εmachineq

0.8. On est au premier tour et ηold désigne la dernièrevaleur de η calculée lors de l’appel précédent de la fonction. Voir [3, page 121].

if η ‖∆zpiq‖ ď κ ε then arrêt := vrai end ifelseθ := ‖∆zpiq‖{‖∆zpi´1q‖. Voir [3, (8.9) page 120]if θ ě 1 (voir [3, cond. (a) page 121]) theni := ´1 (l’itération diverge)

elseη := θimax´i`1{p1´ θq où imax peut être fixée à 7. Voir [3, (8.11), page 121].if η ‖∆zpiq‖ ě κ ε theni := ´1

elseη := θ{p1´ θq

if η ‖∆zpiq‖ ď κ ε (voir [3, (8.10), page 121]) then arrêt := vrai end ifend if

end ifend ifif not arrêt then i := i` 1 end if

end doif i ě 1 then calculer y1 et y1 (formules (4.29) et (4.32)) end ifreturn i

end

Figure 4.12 – Fonction pour calculer y1 et y1. Cette fonction peut échouer, si l’itération de Newtonne converge pas assez vite. Des optimisations supplémentaires sont décrites dans [3, pages 119-121].

75

procedure intégrateur à pas adaptatif (x0, xend, ε)beginq := minpp, pqh := minp10´3, xend ´ x0qwhile x0 ă xend do

doCalculer y1 et y1 avec la fonction de la Figure 4.12Soit i l’entier retourné : le nombre d’itérations de Newton ou un code d’erreur.if i “ ´2 thenArrêter le programme

elif i “ ´1 thenh := h{2if h “ 0 then Arrêter le programme end if

end ifwhile i ă 0Calculer erreur. Voir formule (4.33).fac := 0.9ˆ p2 imax ` 1q{p2 imax ` iq. Voir [3, page 124] et la Figure 4.12 pour imax.hnew := facˆ hˆ erreur´1{pq`1q. Voir [3, (8.21), page 124].if erreur ă 1 (le pas est accepté) thenx0 := x0 ` hy0 := y1h := minphnew, xend ´ x0q

else (le pas est rejeté)h := hnew

end ifend do

end

Figure 4.13 – Intégrateur à pas adaptatif pour schémas implicites. Des optimisations supplé-mentaires sont décrites [3, chapter IV.8, pages 124-127].

76

Bibliographie

[1] John R. Dormand. Numerical Methods for Differential Equations : A Computational Approach(Engineering Mathematics), volume 3 of Engineering Mathematics. CRC Press, 1996.

[2] Ernst Hairer, Syvert Paul Norsett, and Gerhard Wanner. Solving ordinary differential equationsI. Nonstiff problems, volume 8 of Springer Series in Computational Mathematics. Springer–Verlag, New York, 2nd edition, 1993.

[3] Ernst Hairer and Gerhard Wanner. Solving ordinary differential equations II. Stiff andDifferential–Algebraic Problems, volume 14 of Springer Series in Computational Mathematics.Springer–Verlag, New York, 2nd edition, 1996.

[4] Ernst Hairer and Gerhard Wanner. Introduction à l’Analyse Numérique. Accessible sur http://www.unige.ch/~hairer, juin 2005.

[5] Jack K. Hale and Hüseyin Koçak. Dynamics and Bifurcations, volume 3 of Texts in AppliedMathematics. Springer–Verlag, New York, 1991.

[6] Edmund Whittaker. A Treatise on the Analytical Dynamics of Particles and Rigid Bodies.Cambridge University Press, fourth edition, 1965.

[7] Wikipedia. Richard Arenstorf. https://en.wikipedia.org/wiki/Richard_Arenstorf.

77

Table des figures

1 Une fonction de survie, inspirée de [2, Page 3]. . . . . . . . . . . . . . . . . . . . . . . 2

1.1 Deux exemples d’interpolation avec 7 points équidistants. L’exemple de gauche montreque le polynôme d’interpolation peut permettre de reproduire assez fidèlement lacourbe initiale dans l’intervalle d’interpolation mais très rarement en dehors de cet in-tervalle (un polynôme d’interpolation n’est pas un polynôme d’extrapolation). L’exemplede droite montre que, même dans l’intervalle d’interpolation, le graphe du polynômepeut avoir une forme très différente de celle de la courbe initiale. . . . . . . . . . . . 6

1.2 Illustration du thèorème 1 sur l’exemple de la Figure 1.1, à gauche. On a fpxq “ lnpxqet n “ 6. On a pris ra, bs égal à l’intervalle d’interpolation r5, 11s. En traçant legraphe de f p7qpξq{7! “ 1{p7 ξ7q pour ξ P ra, bs, on trouve que cette expression estmajorée par 2 10´6 (à gauche). D’après le théorème, sur l’intervalle ra, bs, on a donc|fpxq ´ ppxq| ď |2 10´6 px ´ 5q px ´ 6q ¨ ¨ ¨ px ´ 11q| . En traçant le graphe de cetteexpression, on trouve que l’erreur ne dépasse par 2 10´4 (à droite). . . . . . . . . . . 8

1.3 Schéma de Horner évaluant le polynôme d’interpolation p0,n à partir de la matricepci,jq des différences divisées. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.4 Les points expérimentaux sont les mêmes pour les deux graphes. Ce sont ceux d’une« fonction de survie » qui est, par nature, une fonction strictement décroissantedans l’intervalle r0, 1s. À gauche, le graphe du polynôme d’interpolation défini par lespoints. À droite, celui de la spline cubique naturelle. . . . . . . . . . . . . . . . . . . 13

1.5 Les points expérimentaux sont les mêmes pour les deux graphes. Ce sont des me-sures de l’évaporation de l’eau (en pouces) au Waite Institute, Adelaide, Australie[1, chapter 6, Figure 6.04, page 134]. Chaque mesure est une moyenne, calculée àpartir de relevés journaliers, sur une période de 23 ans. Les mesures montrent quel’évaporation décroît graduellement de janvier à juin-juillet, pour remonter d’août àdécembre (les saisons sont inversées, dans l’hémisphère sud). Le point correspondantau mois de mars semble anormal. À gauche, le graphe du polynôme d’interpolationdéfini par les points. À droite, celui de la spline cubique naturelle. . . . . . . . . . . . 14

1.6 Plutôt que des splines naturelles, il est souvent utile d’utiliser des splines périodiques.À gauche, le graphe de la spline cubique naturelle et celui de la spline cubique pé-riodique définies par les mesures d’évaporation de l’eau en Australie. Dans tous lesgraphiques précédents, les splines sont interpolantes : leur graphe passe par les pointsexpérimentaux. Mais dans de nombreuses applications, il est utile d’utiliser des splineslissantes, comme sur le graphique de droite. Le degré de lissage dépend d’un paramètre. 15

1.7 La différence entre un raccord C1 et un raccord C2 peut s’apprécier visuellement. Leraccord a lieu au point p3,´1q. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

78

2.1 Des données expérimentales et les splines lissantes pour trois valeurs du paramètre p(qui peut se déduire de S). On observe en particulier que, quand p tend vers zéro,la spline tend vers la droite de régression linéaire et que, quand p tend vers `8, elletend vers la spline interpolante. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.1 L’intégrale (3.1) est un nombre signé : c’est la différence entre l’aire hachurée situéeau-dessus de l’axe horizontal et celle située au-dessous. . . . . . . . . . . . . . . . . . 31

3.2 Approximation de l’intégrale (3.1) par la méthode des trapèzes avec n “ 3 intervalles(à gauche) et par la méthode de Simpson avec n “ 4 intervalles (à droite). . . . . . . 32

3.3 Formules de Newton-Cotes pour s ď 7. . . . . . . . . . . . . . . . . . . . . . . . . . . 35

4.1 Une orbite d’Arenstorf calculée par un intégrateur de type Runge-Kutta à pas adap-tatif. La variable y1 est en abscisse ; y2 est en ordonnée. L’intégrateur, élaboré autourdu schéma « Dormand-Prince 5p4q », n’a calculé que la soixantaine de sommets de lacourbe polygonale. L’erreur finale (sur l’exemple, il s’agit de la distance entre le pointde départ et le point d’arrivée, puisqu’en théorie, la courbe est fermée) est de l’ordrede 10´2. La courbe lisse a été obtenue en évaluant des polynômes d’interpolationentre les sommets par une méthode, dite de « sortie dense ». On remarque que lesraccords entre les morceaux de courbes, au niveau des sommets, sont lisses. L’inté-grateur est dit à pas adaptatif parce qu’il effectue des petits pas dans les « viragesserrés » et des pas plus grands ailleurs : les segments de la courbe polygonale ne sontpas tous de même longueur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

4.2 La même orbite d’Arenstorf, mais représentée en trois dimensions, avec l’axe des x(le temps). La courbe de la Figure 4.1 est la projection de cette courbe-ci dans leplan py1, y2q. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

4.3 Champ de vecteurs (4.5) et graphes de quelques solutions (pour quelques conditionsinitiales différentes) de l’équation différentielle 9y “ 1{py ` 0.1q ´ px ´ 2q sinpyq. Leslongueurs des vecteurs du champ ont été normalisées. On observe que les graphes dessolutions suivent les vecteurs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

4.4 Résolution numérique du problème de Cauchy 9y “ y avec yp0q “ 1, par la méthoded’Euler. Intégration avec N “ 1 pas en haut et N “ 2 pas en bas. . . . . . . . . . . . 46

4.5 La même orbite qu’en Figure 4.1, calculée avec la méthode d’Euler et un million depas. L’erreur relative en x “ xend vaut 10´1. L’orbite devrait être fermée. La méthoded’Euler ne permet pas de s’en rendre compte, malgré le nombre de pas utilisés. . . . 48

4.6 Interprétation graphique du schéma de Runge. Un pas avec la méthode d’Euler définitun rectangle de milieu M . Le schéma consiste à suivre le vecteur défini en M depuispx0, y0q. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

4.7 La même orbite qu’en Figure 4.1, calculée avec le schéma RK4 et 25000 pas. L’erreurrelative en x “ xend vaut 10´3. Comme le schéma comporte s “ 4 étages, le travaileffectué par l’intégrateur est de 4 ˆ 25000 “ 105 appels à la fonction f . Le résultatest bon mais reste coûteux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

4.8 Schémas de Runge-Kutta avec formules emboîtées. À gauche le schéma Zonneveld4p3q (la notation pppq donne l’ordre de la formule principale et, entre parenthèses,celui de la formule emboîtée) à s “ 5 étages. À droite, le schéma Dormand-Prince5p4q à s “ 7 étages (celui qui a été utilisé pour la Figure 4.1). Voir [2, pages 167 et 178] 58

79

4.9 Schéma d’intégrateur à pas adaptatif. Voir [4, chapitre III, page 67]. On remarqueque les pas acceptés et rejetés ne sont pas gérés de façon symétrique. . . . . . . . . . 59

4.10 Simulation numérique du système de Robertson. La courbe rouge a été produite parl’intégrateur à pas adaptatif décrit en section 4.5, muni du schéma Dormand-Prince5p4q avec ε “ 10´6. L’intégrateur accepte 208 pas et en rejette 83. Par comparaison,les croix représentent les 7 points calculés par un intégrateur à pas adaptatif, munidu schéma de Runge-Kutta implicite Radau IIA d’ordre 5p4q avec la même valeur deε. La vraie solution n’oscille pas et passe très près des croix. Il est manifeste que laméthode implicite se comporte beaucoup mieux que la méthode explicite. . . . . . . 67

4.11 Simulation numérique de l’équation de Van Der Pol. Les deux intégrateurs donnentvisuellement la même courbe, mais pas avec le même travail. La méthode impliciteaccepte 865 pas et en rejette 13. La méthode explicite accepte 1160503 pas et enrejette 29272. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

4.12 Fonction pour calculer y1 et y1. Cette fonction peut échouer, si l’itération de Newtonne converge pas assez vite. Des optimisations supplémentaires sont décrites dans [3,pages 119-121]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

4.13 Intégrateur à pas adaptatif pour schémas implicites. Des optimisations supplémentairessont décrites [3, chapter IV.8, pages 124-127]. . . . . . . . . . . . . . . . . . . . . . . 76

80

Index

algorithmes rapides, 7Arenstorf, 39

C1, 14C2, 14Cauchy, 40champ de vecteurs, 45composite, 32, 33compression, 7condition initiale, 40cubique, 14CurveFitting, 33

diff, 42différences divisées, 11Dormand-Prince, 57dsolve, 42

équation autonome, 41équation aux dérivées partielles, 38equation d’ordre deux, 44équation différentielle ordinaire, 38équation intégrale, 2équation logistique, 41erreur globale, 48, 51erreur locale, 48, 51erreur relative, 36étage, 34, 50Euler, 45, 51explosion en temps fini, 42

Fehlberg, 42formule emboîtée, 57, 73

Heun, 51, 62Horner, 12

initial value, 40int, 33

intégrale, 31intégrateur à pas adaptatif, 56, 73intégration, 7intégration sous forme close, 42interpolation, 6, 32, 33interpolation de Hermite, 15

jacobienne, 66, 69

knot, 14, 19

Lagrange, 9lisse, 14

masse-ressort, 44modèle, 1moindres carrés, 7

Neville, 9Newton, 11, 69Newton-Cotes, 34nœud, 14, 19nœud intérieur, 14

ordre, 34, 44ordre 1, 48ordre 2, 49ordre d’un schéma de Runge-Kutta, 51ordre d’une formule de quadrature, 34

poids, 34polygone d’Euler, 45primitive, 31problème à trois corps, 44problème de Cauchy, 40proie-prédateur, 43

quadrature, 31quantité de travail, 50

81

Radau, 68RK4, 51Robertson, 67Runge, 49, 51Runge-Kutta, 50

schéma explicite, 50schéma implicite, 66Simpson, 33smoothing spline, 18solutions multiples, 43sortie dense, 60spline, 61spline lissante, 18stabilité, 66

tableau, 50

Van Der Pol, 67variable indépendante, 38

Zonneveld, 57

82