Programmation Analyse Num Erique: Licence 2 - Maths Info
Programmation Analyse Num Erique: Licence 2 - Maths Info
Programmation Analyse Num Erique: Licence 2 - Maths Info
Programmation
Analyse numérique
Benjamin Graille
Université Paris-Saclay
15 avril 2022
Table des matières
1 Introduction et généralités 5
1 Nécessité de l’analyse numérique . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2 Rappels d’analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1 Régularité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 Formules de Taylor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3 Convexité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2 Interpolation polynomiale 11
1 Interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2 Exemples avec peu de points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1 Interpolation à un seul point . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2 Interpolation à deux points : exemple de la droite . . . . . . . . . . . . . . 13
2.3 Interpolation à trois points . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3 Polynôme interpolateur de Lagrange . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.1 Définition et propriétés . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.2 Expression dans la base canonique . . . . . . . . . . . . . . . . . . . . . . 18
3.3 Formule de Lagrange et poids barycentriques . . . . . . . . . . . . . . . . 20
3.4 Comportement asymptotique lorsque n tend vers l’infini . . . . . . . . . . 23
3 Intégration numérique 27
1 Formules de quadratures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.1 Définitions et premières propriétés . . . . . . . . . . . . . . . . . . . . . . 28
1.2 Formules de quadratures élémentaires et composées . . . . . . . . . . . . 31
2 Méthodes de quadrature classiques . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.1 Une liste des méthodes classiques . . . . . . . . . . . . . . . . . . . . . . . 33
2.2 Analyse des méthodes des rectangles . . . . . . . . . . . . . . . . . . . . . 35
2.3 Analyse de la méthode des trapèzes . . . . . . . . . . . . . . . . . . . . . 37
2.4 Analyse de la méthode du point milieu . . . . . . . . . . . . . . . . . . . . 38
2.5 Analyse de la méthode de Simpson . . . . . . . . . . . . . . . . . . . . . . 40
2.6 Contrôle de l’erreur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3 Les algorithmes des méthodes de quadrature classiques . . . . . . . . . . . . . . . 43
⁄
4.1 méthode de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.2 méthode de la fausse position . . . . . . . . . . . . . . . . . . . . . . . . . 60
Bibliographie 63
1 Introduction et généralités
Dans ce cours, nous décrivons les premiers outils de l’analyse numérique et nous proposons une
implémentation en python des différents modèles numériques rencontrés.
L’analyse numérique est une discipline à l’interface des mathématiques et de l’informatique. Elle
s’intéresse tant aux fondements qu’à la mise en pratique des méthodes permettant de résoudre,
par des calculs purement numériques, des problèmes d’analyse mathématique.
Plus formellement, l’analyse numérique est l’étude des algorithmes permettant de résoudre numé-
riquement par discrétisation les problèmes de mathématiques continues (distinguées des mathé-
matiques discrètes). Cela signifie qu’elle s’occupe principalement de répondre de façon numérique
à des questions à variable réelle ou complexe comme l’algèbre linéaire numérique sur les champs
réels ou complexes, la recherche de solution numérique d’équations différentielles et d’autres
problèmes liés survenant dans les sciences physiques et l’ingénierie. Branche des mathématiques
appliquées, son développement est étroitement lié à celui des outils informatiques.
D’une manière assez caricaturale, nous pouvons définir l’analyse numérique comme l’ensemble
des mathématiques appliquées dont l’objet d’étude est centré sur des algorithmes informatiques.
Elle est constituée de trois blocs inter-dépendants :
modélisation ce bloc consiste à proposer un modèle mathématique qui devra représenter le plus
fidèlement possible le phénomène réel qui nous intéresse ;
calcul scientifique ce bloc consiste à proposer et à implémenter un algorithme permettant de
calculer une solution approchée du modèle mathématique ;
analyse ce bloc consiste à analyser mathématiquement les propriétés du modèle et de “sa” (ou
“ses”) solution(s).
Afin de mener à bien l’ensemble de ce programme, de nombreuses branches de mathématiques
appliquées ou d’analyse numérique ont vu le jour. Nous pouvons citer par exemple les équations
différentielles ordinaires (ODEs), les équations aux dérivées partielles (PDEs), l’optimisation,
l’analyse du signal, l’algèbre linéaire...
Dans ce chapitre, pour mieux comprendre ce qu’est l’analyse numérique, nous nous intéressons
à un exemple de problème de dynamique de population, c’est-à-dire que nous essayons de déter-
miner un ou plusieurs modèles permettant de décrire l’évolution d’une population d’individus
au cours du temps. Nous ne prenons pas en compte les effets spatiaux pour simplifier : une seule
variable est utilisée pour décrire l’évolution, il s’agit du temps. En particulier, cela signifie que
nos individus ne peuvent pas se déplacer dans l’espace (afin de se regrouper ou de se répartir
sur un territoire par exemple).
L’objectif est évidemment de décrire le ou les modèles mais également d’étudier leurs solutions.
L’écriture du problème mathématique est intéressante en elle-même mais sa ou ses solutions le
sont encore plus pour bien des applications. Nous serons alors amenés à introduire et utiliser de
nombreux concepts et outils mathématiques pour étudier les solutions d’un point de vue théo-
rique (existence, unicité, propriétés de régularité, de périodicité,...) mais aussi d’un point de vue
numérique. En effet, pour de nombreux modèles, il est impossible (c’est un théorème) d’écrire de
manière simple la solution à l’aide de sommes, produits, composées de fonctions, éventuellement
fonctions mathématiques classiques (cos, sin, exp, ln,. . .). Afin de réellement prédire l’évolution
de la population qui nous intéresse, ne restera alors que la simulation numérique, c’est-à-dire le
calcul approché par un ordinateur de la solution exacte.
⁄
Université de la Polynésie française
Supposons que nous souhaitions résoudre un problème général similaire aux modèles continus
de la dynamique des populations :
où φ est une fonction régulière. Nous devrons donc peut-être résoudre une équation pour dérminer
un+1 en fonction de un .
Nous devons donc
. proposer une méthode pour construire le plynôme Pn à partir de quelques valeurs (un et
éventuellement un+1 ) : nous étudierons la théorie de l’interpolation polynomiale ;
. proposer une méthode de quadrature pour approcher l’intégrale par celle d’un polynôme
interpolateur : nous étudierons la théorie de l’intégration numérique ;
. proposer des méthodes pour résoudre des équations ordinaires pour calculer un+1 en fonc-
tion de un : nous étudierons les méthodes de résolution approchée d’équations ordinaires.
2 Rappels d’analyse
Nous souhaitons à présent rappeler quelques résultats essentiels en analyse numérique autour
des formules de Taylor. En effet, l’analyse locale des fonctions passe le plus souvent par un
⁄
Chapitre 1. Introduction et généralités
développement asymptotique et les formules de Taylor sont très utiles dès que les fonctions sont
suffisamment régulières.
Tous les résultats sont présentés sans démonstration car ce sont des prérequis de ce cours.
2.1 Régularité
Nous commençons par rappeler quelques définitions concernant la régularité des fonctions réelles
à valeurs réelles, ainsi que des théorèmes fondamentaux en analyse.
De plus, la fonction f est dite continue sur I si elle est continue en tout point x de I.
Ce théorème fondamental en analyse peut aussi se résumer par la phrase : « l’image d’un segment
par une fonction continue est aussi un segment ». La démonstration peut se faire de manière
constructive à l’aide de l’algorithme de la dichotomie.
⁄
Université de la Polynésie française
Définition 1.6
Soit I un intervalle ouvert de R. Nous définissons par récurrence les espaces C k (I), k ∈ N,
n o
C 0 (I) = f : I → R continue sur I ,
n o
C k (I) = f : I → R dérivable sur I telle que f 0 ∈ C k−1 (I) , k > 0.
Les formules de Taylor sont toujours démontrées à partir du théorème des accroissements finis
et sont basées sur la remarque évidente suivante
Z 1
f (x + h) − f (x) = h f 0 (x + ht) dt.
0
Tous les théorèmes proposés ont la même base mais les hypothèses sont légèrement différentes
(sur la régularité de la fonction) et il est en général utile de réfléchir au choix de le “bonne”
formule selon ce que l’on veut démontrer.
Rn (h)
lim = 0.
h→0,h6=0 hn
2.3 Convexité
Nous rappelons les définitions d’une fonction convexe, strictement convexe, concave et stricte-
ment concave. Ces fonctions sont très importantes en analyse et au moins localement pour les
⁄
Chapitre 1. Introduction et généralités
Démonstration. Nous allons prouver plus exactement l’équivalence entre être convexe et avoir une dé-
rivée croissante pour une fonction f de classe C 1 .
Supposons que f est convexe. Soit x < y. Nous comparons f 0 (x) et f 0 (y) en utilisant la corde entre ces
deux points. Nous pouvons récrire la convexité en prenant
h
λx + (1 − λ)y = x + h =⇒ (1 − λ)(y − x) = h =⇒ λ = 1 − .
y−x
Nous en déduisons que
f (x + h) − f (x) f (y) − f (x)
6 .
h y−x
Nous récrivons ensuite la convexité en prenant
h
λx + (1 − λ)y = y − h =⇒ λ(y − x) = h =⇒ λ = .
y−x
Nous en déduisons que
f (y) − f (x) f (y) − f (y − h)
6 .
y−x h
En passant à la limite h → 0, nous obtenons que la fonction f 0 est croissante, donc f 00 est positive.
Réciproquement, si f 00 est positive, la fonction f 0 est croissante. Soit (x, y) ∈ [a, b]2 et soit λ ∈ [0, 1].
Pour fixer les idées, supposons que x 6 y. Posons z = λx + (1 − λ)y. Nous avons donc x 6 z 6 y.
Z y Z 1
f (y) − f (z) = f 0 (t) dt = λ(y − x) f 0 (sy + (1 − s)z) ds,
z 0
Z y Z 1
f (y) − f (x) = f 0 (t) dt = (y − x) f 0 (sy + (1 − s)x) ds.
x 0
Nous concluons
Nous pouvons également remarquer que si une fonction est de classe C 2 avec une dérivée seconde
strictement positive, alors la fonction est strictement convexe. La réciproque n’est pas vraie car
une fonction strictement convexe peut avoir une dérivée seconde qui s’annule (par exemple en
un point comme la fonction x 7→ x4 ). Cependant, il est possible de démontrer que la dérivée
⁄
Université de la Polynésie française
seconde d’une fonction strictement convexe ne peut pas s’annuler sur un intervalle de longueur
non nulle.
⁄
2 Interpolation polynomiale
En analyse numérique, les polynômes de Lagrange, du nom de Joseph-Louis
Lagrange, permettent d’interpoler une série de points par un polynôme qui
passe exactement par ces points appelés aussi nœuds. Cette technique d’in-
terpolation polynomiale a été découverte par Edward Waring en 1779 et
redécouverte plus tard par Leonhard Euler en 1783.
Edward Waring (1736–1798) était un mathématicien britannique. Il est en-
tré au Magdalene College de Cambridge en tant que sizar, et est devenu
Senior wrangler en 1757. Waring a écrit un certain nombre d’articles dans
les Philosophical Transactions of the Royal Society, traitant de la résolution
d’équations algébriques, de théorie des nombres, de séries, de l’approxima- Joseph Louis de Lagrange
tion des racines, de l’interpolation, de la géométrie des sections coniques et
de la dynamique.
Leonhard Euler (1707–1783) est un mathématicien et physicien suisse, qui
passa la plus grande partie de sa vie dans l’Empire russe et en Allemagne.
Il était notamment membre de l’Académie royale des sciences de Prusse à
Berlin. Euler fit d’importantes découvertes dans des domaines aussi variés
que le calcul infinitésimal et la théorie des graphes. Il introduisit également
une grande partie de la terminologie et de la notation des mathématiques
modernes, en particulier pour l’analyse mathématique, comme la notion de
fonction mathématique. Il est aussi connu pour ses travaux en mécanique,
en dynamique des fluides, en optique et en astronomie ou en géométrie du Edward Waring
triangle.
Joseph Louis de Lagrange (1736–1813) né de parents français descendants de
Descartes, est un mathématicien, mécanicien et astronome sarde, naturalisé
français. En mathématiques, il fonde le calcul des variations, avec Euler, et
la théorie des formes quadratiques. En physique, en précisant le principe de
moindre action, avec le calcul des variations, vers 1756, il invente la fonction
de Lagrange, qui vérifie les équations de Lagrange, puis développe la mé-
canique analytique, vers 1788, pour laquelle il introduit les multiplicateurs
de Lagrange. Il entreprend aussi des recherches importantes sur le problème
des trois corps en astronomie, un de ses résultats étant la mise en évidence Leonhard Euler
des points de libration (dits points de Lagrange) (1772).
1 Interpolation
L’interpolation d’une fonction de R dans R est un problème ancien qui a de très nombreuses
applications que ce soit d’un point de vue purement théorique comme l’intégration numérique
(et la résolution d’équations différentielles par conséquent), la construction d’algorithme de ré-
solution de f (x) = 0 ou d’un point de vue industriel comme la visualisation de données, la
représentation 3D d’objet. Essentiellement, l’objectif est de remplacer la fonction compliquée
(ou le nuage de points) qui nous est donnée par une fonction beaucoup plus simple : un po-
lynôme. Malheureusement deux concepts différents apparaissent rapidement : l’interpolation et
l’approximation.
Si nous imaginons un nuage de points (correspondant par exemple à un ensemble discret de
valeurs (xi , f (xi )) pour une certaine fonction f : R → R), il est possible :
. de l’interpoler, c’est-à-dire de faire passer un polynôme par tous les points ;
. de l’approcher (par exemple au sens des moindres carrés), c’est-à-dire de trouver un poly-
nôme de bas degré dont la différence pour une certaine norme est petite.
A la figure Fig. 2.1, nous trouvons des illustrations de l’interpolation et de l’approximation par
⁄
Université de la Polynésie française
un polynôme de degré 2 lorsque le nombre de points N varie. La fonction f associée à ces nuages
de points est une perturbation aléatoire de la fonction x → 4x(1 − x).
1.0 1.0
0.8 0.8
0.6 0.6
0.4 0.4
0.2 0.2
1.0 1.0
0.8 0.8
0.6 0.6
0.4 0.4
0.2 0.2
1.0 1.0
0.8 0.8
0.6 0.6
0.4 0.4
0.2 0.2
Figure 2.1 – Interpolation et approximation pour N ∈ {4, 6, 10, 25, 50, 100}.
Nous pouvons remarquer (sans savoir pour le moment comment l’interpolée a été calculée) que
le polynôme interpolateur passe par les bons points lorsque N est petit (moins que 10 dans
notre exemple) mais qu’il est mal calculé lorsque N devient grand : bien que par définition il
devrait passer par tous les points d’interpolation, le calcul retourne un polynôme qui ne passe
pas par ces points. Ainsi, il faut bien comprendre qu’interpoler ne signifie pas approcher et que
lorsque le nombre de points est élevé, l’interpolation perd de son intérêt. Cependant, cette notion
d’interpolation est très utile en analyse numérique et en calcul scientifique pour approcher (oui
cette fois c’est vrai) localement une fonction à l’aide de quelques points d’interpolation. Nous
nous en servirons pour proposer des méthodes de calcul d’intégrales approchées, des formules de
résolution d’équations différentielles, des méthodes de résolution d’équations non linéaires...
⁄
Chapitre 2. Interpolation polynomiale
Dans ce chapitre, nous nous intéresserons essentiellement à l’interpolation par des polynômes
interpolateurs de Lagrange, mais nous verrons également que ce n’est pas la seule. Nous commen-
çons par nous intéresser à quelques exemples simples avant de généraliser les résultats obtenus.
Pour bien comprendre la notion de polynôme interpolateur, nous allons commencer par des
exemples pour N petit, où N est le nombre de points par lequel nous imposons que le polynôme
doit passer.
Prenons dans cette partie N = 1, c’est-à-dire que nous cherchons à faire passer un polynôme
par un point de coordonnées (x1 , y1 ). Il est évident qu’il en existe une infinité si le degré du
polynôme n’est pas limité. Nous pouvons donc chercher un ou le polynôme de degré le plus petit
possible passant par ce point. Une illustration est donnée à la figure 2.2.
Dans ce cas, nous cherchons le polynôme de degré au plus 0 qui passe par le point de coordonnées
(x1 , y1 ). C’est donc le polynôme constant P = y1 . Il est évidemment unique.
Nous nous intéressons à présent à l’exemple le plus simple dont les applications sont malgré tout
innombrables : par deux points passe une unique droite. Ce résultat ou plutôt cette définition
selon Archimède doit évidemment être suivi d’un calcul analytique afin de déterminer l’équation
de cette droite. Dans cette section, nous prenons donc N = 2.
⁄
Université de la Polynésie française
(X − x1 )y2 − (X − x2 )y1
D = {(x, P (x)), x ∈ R} avec P = .
x2 − x1
a. On distinguera bien D qui est un object géométrique c’est-à-dire une partie du plan, de P le polynôme
(ou parfois fonction polynomiale) dont le graphe est égal à D.
Démonstration. Nommons les points afin de faire de la géométrie euclidienne ! Notons M = (x, y),
M1 = (x1 , y1 ), M2 = (x2 , y2 ), les trois points de R2 qui nous intéressent. Le point M est sur la droite
# » # »
D = (M1 M2 ) si, et seulement si, les vecteurs M1 M et M1 M2 doivent être colinéaires, ce qui peut se
récrire sous la forme
x − x1 x2 − x1
= 0.
y − y1 y2 − y1
Remarquez l’expression proposée pour le polynôme interpolateur P qui est symétrique par rap-
port aux deux points. Nous pouvons en proposer deux autres : la première est la décomposition
de ce polynôme dans la base canonique (1, X)
y2 − y1 x2 y1 − x1 y2
P =X + ,
x2 − x1 x2 − x1
la seconde dans une base “adaptée” aux points d’interpolation (1, X − x1 )
y2
P = (X − x1 ) + y1 .
x2 − x1
La question que nous devons nous poser à présent est la suivante : comment calculer le polynôme
P (qui est seulement de degré 1 dans notre exemple) et surtout comment calculer les valeurs de
P (x) pour de nombreuses valeurs de x. En effet, il est parfois nécessaire de connaitre l’expression
exacte du polynôme (de chacun de ses coefficients dans une certaine base), parfois plutôt de
calculer l’évaluation de ce polynôme un grand nombre de fois.
La réponse à cette question ne peut pas être l’expression trouvée dans ce théorème puisque la
démonstration géométrique pour la trouver ne fonctionnera plus lorsque le nombre de points
d’interpolation sera supérieur à 2.
La première méthode qui vient à l’esprit est de décomposer le polynôme recherché dans la base
canonique et de résoudre les équations associées. Nous cherchons donc à déterminer deux réels
⁄
Chapitre 2. Interpolation polynomiale
a0 et a1 , ces deux réels étant les coefficients dans la base canonique du polynôme P , c’est-à-dire
tels que P = a0 + a1 X. Nous écrivons ensuite les relations qui doivent être satisfaites :
(
a0 + a1 x1 = y1
1 x1 a0 y1
⇐⇒ = .
a0 + a1 x2 = y2 1 x 2 a 1 y2
Comme x1 6= x2 , la matrice est inversible et nous pouvons laisser le soin à Python et son
package numpy.linalg de résoudre le problème : les coefficients a0 et a1 existent donc bien et
sont uniques.
Allons un peu plus loin dans l’analyse de cette méthode. Nous posons
1 x1
A= .
1 x2
Nous proposons une seconde méthode pour évaluer le polynôme interpolateur. L’idée est de le
représenter dans une autre base que la base canonique : une base adaptée aux points d’interpo-
lation. Nous cherchons donc à déterminer deux réels a0 et a1 tels que P = a0 + a1 (X − x1 ). Le
calcul se fait alors plus simplement :
y2 − y1
P (x1 ) = y1 =⇒ a0 = y1 , P (x2 ) = y2 =⇒ a1 = .
x2 − x1
Par ailleurs, nous remarquons que les calculs du polynôme interpolateur passant par les points
(x1 , y1 ) et (x2 , y2 ), noté P1,2 ici, peuvent être réutilisés si l’on souhaite ajouter un point d’inter-
polation.
Prenons dans cette partie N = 3. Une illustration est donnée à la figure 2.3.
Dans ce cas, nous cherchons le polynôme de degré au plus 2 qui passe par les trois points de
coordonnées (x1 , y1 ), (x2 , y2 ) et (x3 , y3 ). C’est donc une parabole que l’on peut chercher sous la
forme P = aX 2 + bX + c. Les calculs commencent à être plus compliqués et il est nécessaire
d’avoir une stratégie pour trouver les coefficients a, b et c. Ces trois coefficients sont solutions
du système linéaire suivant 2
P (x1 ) = ax1 + bx1 + c = y1 ,
P (x2 ) = ax22 + bx2 + c = y2 ,
P (x3 ) = ax23 + bx3 + c = y3 .
⁄
Université de la Polynésie française
⁄
Chapitre 2. Interpolation polynomiale
Dans cette section, nous étudions les propriétés du polynôme interpolateur de Lagrange et nous
décrivons quelques algorithmes permettant de le calculer.
Etant donnés N points du plan (x1 , y1 ), . . . , (xN , yN ), avec N ∈ N∗ , nous souhaitons construire
un polynôme de degré minimal qui passe par tous ces points.
Le premier résultat fondamental est que le degré minimal est N −1, qu’il est toujours possible
de construire un tel polynôme et qu’enfin ce polynôme est unique.
Φ : RN −1 [X] −→ RN
P 7−→ (P (x1 ), . . . , P (xN ))
N
Démonstration. Pour montrer que l’application linéaire Φ : RN −1 [X] → R définie par Φ(P ) =
P (x1 ), . . . , P (xN ) est un isomorphisme d’espaces vectoriels, il suffit de vérifier qu’elle est injective,
puisque les espaces sont de même dimension N . Supposons donc que P ∈ RN −1 [X] tel que Φ(P ) = 0.
Nous avons donc un polynôme de degré au plus N −1 qui a N racines, c’est le polynôme nul. !
Un cas particulièrement intéressant lorsque l’on fait de l’analyse est le cas où le nuage de points
(x1 , y1 ), . . . , (xN , yN ) est sur le graphe d’une fonction régulière f . C’est-à-dire que f (xi ) = yi ,
1 6 i 6 N . Dans ce cas, on dira que le polynôme P est le polynôme interpolateur de la fonction
f aux points x1 , . . . , xN .
Il est possible d’estimer l’écart entre une fonction f et son polynôme interpolateur de Lagrange
lorsque la fonction est régulière. Cette estimation repose sur le lemme suivant.
⁄
Université de la Polynésie française
Démonstration. La preuve se fait par récurrence sur m > 2. Pour m = 2, c’est exactement le théorème
de Rolle (Th. 1.4). Supposons le résultat du lemme vrai pour m > 2 et prenons g une fonction m fois
dérivable qui s’annule en t1 , . . . , tm+1 points distincts. D’après le théorème de Rolle 1.4, la fonction g 0
s’annule sur chaque intervalle ]ti , ti+1 [, 1 6 i 6 m, en un point noté t̃i . La fonction g 0 est donc m−1
fois dérivable et s’annule m fois, par hypothèse de récurrence, il existe t ∈]t̃1 , t̃m [⊂]t1 , tm+1 [ tel que
g (m) (t) = 0. !
ωN (X) = (X − x1 ) . . . (X − xN )
f (N ) (t)
f (x) − P (x) = ωN (x) .
N!
Démonstration. Pour x fixé dans [a, b]\{x1 , . . . , xN }, on applique le lemme de Rolle généralisé (Lm. 2.6)
à la fonction auxiliaire
f (x) − P (x)
F (t) = f (t) − P (t) − ωN (t).
ωN (x)
La fonction F est N fois dérivable et s’annule aux N +1 points x, x1 , . . . , xN . D’après le lemme de Rolle
généralisé (Lm. 2.6), il existe t ∈]a, b[ tel que F (N ) (t) = 0. Calculons la dérivée N ième de F .
Par ailleurs, si x ∈ {x1 , . . . , xN }, nous avons f (x)−P (x) = 0 et ωN (x) = 0, ce qui termine la preuve. !
Corollaire 2.8
Si f (N ) est uniformément bornée par M sur ]a, b[, alors pour tout x ∈ [a, b]
M M
|f (x) − P (x)| 6 |ωN (x)| 6 (b − a)N .
N! N!
Soit N ∈ N, N > 1. Etant donné N réels deux à deux distincts x1 , . . . , xN et N réels quelconques
y1 , . . . , yN , on note P le polynôme d’interpolation de Lagrange aux points (x1 , y1 ), . . . , (xN , yN ).
On souhaite évaluer P (x) pour x ∈ R\{x1 , . . . , xN } quelconque.
La première idée pour évaluer le polynôme interpolateur est de résoudre un système linéaire
satisfait par les coordonnées de ce polynôme dans la base canonique. Cette méthode conduit à
⁄
Chapitre 2. Interpolation polynomiale
N
X −1
P = ai X i ,
i=0
N
X −1
P (xk ) = ai xik = yk
i=0
x01 . . . x1N −1
a0 y1
V (x1 , . . . , xN ) = ... .. , a = ... , y = ... .
.
N −1
x0N . . . xN aN −1 yN
Cette méthode a deux défauts : la matrice est pleine (donc la résolution du système linéaire
est coûteuse) et elle est mal conditionnée (le conditionnement croı̂t comme l’exponentielle de
N ). Nous envisagerons donc d’autres méthodes de calcul. Cependant, lorsque l’expression du
polynôme interpolateur est donnée dans la base canonique, il est bon d’avoir un algorithme
rapide d’évaluation de ce polynôme en un point x. L’algorithme de Horner permet de n’effectuer
que N additions et N multiplications pour réaliser ce calcul.
h i
Démonstration. Il suffit d’écrire Q(X) = an + X an−1 + X an−2 + X . . . a1 + X(a0 ) . !
La classe poly1d du package numpy de python est une classe pour les polynômes d’une variable.
Un polynôme est stocké sous la forme d’un tableau numpy contenant les coefficients dans la base
canonique dans l’ordre décroissant. Il est possible d’évaluer ce polynôme en un point (ou même
en plusieurs points directement) en utilisant l’algorithme de Horner. Par exemple
import numpy as np
p = np . poly1d ([1 , 2 , 3]) # polynomial X ^2 + 2 X + 3
p (2) # p (2) = 11
Ainsi, nous pouvons proposer un premier algorithme de calcul de l’interpolation aux points
(xi , yi ), 1 6 i 6 N .
⁄
Université de la Polynésie française
import numpy as np
def InterpVdM (x , y , xx ):
"""
Interpolation with the Vandermonde method
"""
x = np . asanyarray (x , dtype = ’ float ’)
y = np . asanyarray (y , dtype = ’ float ’)
xx = np . asanyarray ( xx , dtype = ’ float ’)
n = x . size
if y . size != n :
print ( ’ Error in InterpVdm : x and y do not have the same size ’)
A = np . ones (( n , n ))
for k in range (1 , n ):
A [: , k ] = A [: , k -1] * x
p = np . linalg . solve (A , y )
yy = Horner ( p [:: -1] , xx )
return yy if xx . size != 1 else np . asscalar ( yy )
Φ : RN −1 [X] −→ RN
P 7−→ (P (x1 ), . . . , P (xN ))
est un isomorphisme d’espaces vectoriels. Nous pouvons alors définir l’image de la base canonique
de RN par l’application Φ−1 et nous la noterons (L1 , . . . , LN ). A la figure 2.4, vous trouverez les
premiers polynômes de Lagrange pour des points équi-répartis.
⁄
Chapitre 2. Interpolation polynomiale
En utilisant cette base adaptée aux points (x1 , . . . , xn ), nous pouvons donner une nouvelle ex-
pression du polynôme interpolateur de Lagrange. Nous avons de manière évidente
n
X
P (X) = yi Li (X).
i=1
Une récriture astucieuse de cette dernière expression conduit à la formule de Lagrange, très
efficace pour évaluer ce polynôme. A nouveau on pose
ωN (X) = (X − x1 ) . . . (X − xN ).
N
P
Dans la base L1 , . . . , LN , le polynôme P s’écrit P (X) = yi Li (X). On obtient donc pour P (x) la
i=1
première expression de la proposition valable lorsque x est un réel distinct de x1 , . . . , xN .
N
P
Pour la seconde, nous utilisons que Li (X) = 1. Nous avons donc
i=1
N
X ωN (x) 1
0 (x ) = 1
(x − xi )ωN
=⇒ ωN (x) = N
,
i=1 i P 1
0 (x )
(x−xi )ωN i
i=1
⁄
Université de la Polynésie française
Cette formule de Lagrange permet d’évaluer une valeur P (x) en un point x en O(2N 2 ) itérations
pour le premier x, puis O(2N ) itérations pour les suivants. En effet, le calcul de ωN 0 (x ) =
Q i
j6=i (x i − x j ) pour chaque valeur de i prend 2N − 2 opérations. On peut d’ailleurs stocker ces
valeurs si l’on doit calculer une autre valeur de P (x) puisque cette valeur ne dépend pas de x.
Pour compléter le calcul de P (x), il ne reste plus qu’à faire 2 multiplications pour chaque valeur
de i et sommer les différents termes.
Cependant, pour un traitement vectoriel (et en python, c’est le plus efficace) de cette formule,
il est nécessaire de traiter séparément les points d’interpolation puisque la formule contient des
divisions par 0 dans ce cas.
import numpy as np
import itertools as it
def InterpLagrange (x , y , xx ):
"""
Interpolation using the Lagrange formula
"""
x = np . asanyarray (x , dtype = ’ float ’)
y = np . asanyarray (y , dtype = ’ float ’)
xx = np . asanyarray ( xx , dtype = ’ float ’)
n = x . size
if y . size != n :
print ( " Error in InterpLagrange : x and y don ’t have the same size " )
w = np . ones (( n ,))
for i in range ( n ):
for j in it . chain ( range ( i ) , range ( i +1 , n )):
w [ i ] *= ( x [ i ] - x [ j ])
weight = 1./ w
if xx . size == 1:
N , D = 0. , 0.
for i in range ( n ):
if xx == x [ i ]:
return y [ i ]
dxi = weight [ i ] / ( xx - x [ i ])
N += y [ i ] * dxi
D += dxi
else :
N , D = np . zeros ( xx . shape ) , np . zeros ( xx . shape )
ind = []
for i in range ( n ):
ind . append ( np . where ( xx == x [ i ])) # indices where P ( xi ) = yi
indloc = np . where ( xx != x [ i ])
dxi = weight [ i ] / ( xx [ indloc ] - x [ i ]) # avoid divide by 0
N [ indloc ] += y [ i ] * dxi
D [ indloc ] += dxi
for i in range ( n ): # fix yi in xi
N [ ind [ i ]] , D [ ind [ i ]] = y [ i ] , 1.
return N / D
⁄
Chapitre 2. Interpolation polynomiale
On peut montrer que si f est une fonction définie par une série entière de rayon de convergence
infini (par exemple f (x) = exp(x) ou f (x) = cos(x)), le polynôme d’interpolation de Lagrange
de f aux points x1 , x2 , . . . , xN de l’intervalle [a, b] converge uniformément vers f sur [a, b] lorsque
N tend vers l’infini, quelque soit la répartition des points d’interpolation.
Lorsque les points x1 , . . . , xN sont équirépartis sur [a, b] (i.e. pour tout j ∈ [[1, N ]], xj = a +
(j − 1)/h où h = (b − a)/(N − 1)), on pourrait s’attendre à ce que le polynôme d’interpolation
de Lagrange d’une fonction f définie sur [a, b] converge uniformément vers f sur [a, b] quand N
tend vers l’infini, au moins dans le cas d’une fonction assez régulière. Or dans chacun des cas
suivants (et ce ne sont que des exemples)
Propriété 2.12
Le nième polynôme de Tchebychev Tn vérifie les assertions suivantes :
1. Tn est de degré exactement n et son coefficient de plus haut degré vaut 2n−1 pour
n > 1.
2. Tn est scindé à racines simples.
(2j − 1)π
Tn (x) = 0 ⇐⇒ x ∈ {x1 , . . . , xn }, xj = cos , 1 6 j 6 n.
2n
3. |Tn (x)| 6 1 pour tout x ∈ [−1, 1]. De plus
kπ
|Tn (x)| = 1 ⇐⇒ x ∈ {x00 , . . . , x0n }, x0k = cos , 0 6 k 6 n.
n
Démonstration. Nous démontrons le premier point par récurrence. Nous définissons (pn ) la propriété
suivante : « Tn est de degré n et son coefficient de plus haut degré vaut 2n−1 pour n > 1 ». Les propriétés
(p0 ) et (p1 ) sont vraies. Supposons que les propriétés (pk ) sont vraies pour 0 6 k 6 n et montrons que
(pn+1 ) est vraie. Nous avons Tn+1 = 2XTn − Tn−1 . Ainsi (pn+1 ) est vraie.
L’essentiel de la suite de la preuve consiste à remarquer que, pour x ∈ [−1, 1], la fonction polynomiale
Tn (x) coı̈ncide avec une fonction trigonométrique cos(n arccos(x)). Cette propriété est vraie pour n = 0
et n = 1 puisque cos(0) = 1 et cos(arccos(x)) = x si x ∈ [−1, 1]. Puis nous utilisons la relation de
⁄
Université de la Polynésie française
récurrence :
En utilisant les propriétés de la fonction cos, nous obtenons immédiatement que |Tn (x)| 6 1 pour tout
x ∈ [−1, 1]. De plus
Proposition 2.13
Si Qn est un polynôme de degré n et de même coefficient de plus haut degré que celui de
Tn , alors
Démonstration. Soit Q un polynôme de degré n > 1 dont le coefficient de degré n vaut 2n−1 (le cas
n = 0 est trivial). Supposons que
Nous avons Tn (x0k ) = (−1)k pour tout k ∈ [[0, n]]. Le polynôme Qn − Tn admet donc au moins une racine
dans l’intervalle ]x0k−1 , x0k [ pour chaque k ∈ [[1, n]]. Mais c’est impossible car Qn − Tn est un polynôme
non nul de degré 6 n − 1. !
Corollaire 2.14
Si ξ1 , . . . , ξN sont N points deux à deux distincts de [−1, 1], on a
N N
Y Y 1 1
max (x − ξj ) > max (x − xj ) = max |TN (x)| = .
x∈[−1,1] x∈[−1,1] x∈[−1,1] 2N −1 2N −1
j=1 j=1
Revenons à l’étude des polynômes interpolateurs de Lagrange. Considérons f une fonction suf-
fisamment régulière et définissons P son polynôme interpolateur en N points de [−1, 1] notés
ξ1 , . . . , ξN . D’après le Corollaire 2.8, l’erreur d’interpolation vérifie
N
kf (N ) k∞ kf (N ) k∞ Y
|f (x) − P (x)| 6 |ωN (x)| 6 kωN k∞ , ωN (x) = (x − ξj ),
N! N!
j=1
où la norme infinie est à prendre sur l’intervalle [−1, 1]. Ainsi, le choix des points ξi qui fournit
⁄
Chapitre 2. Interpolation polynomiale
une valeur de kωN k∞ la plus petite possible (on ne peut pas descendre sous 2−N +1 ) est celui
des zéros du polynôme de Tchebychev.
Evidemment, le cas particulier de l’intervalle [−1, 1] est facilement généralisable. En effet, si
l’intervalle d’interpolation vaut [a, b], les points d’interpolation associés sont
a| | | | | | | | | | |b a|| | | | | | | | ||b
b−a a+b b−a 2i − 1
xi,N = (i − 1) xi,N = + cos π 16i6N
N −1 2 2 2N
On observe que, si la convergence semble bien fonctionner au centre de l’intervalle dans le cas
des points équirépartis, de fortes oscillations de plus en plus violentes apparaissent au bord du
domaine : il n’y a pas de convergence uniforme de PN vers f dans ce cas. En revanche, avec les
points de Tchebychev, la convergence semble bien uniforme. L’évolution de la norme infinie de
l’erreur lorsque N augmente est donnée à la figure 2.5.
⁄
Université de la Polynésie française
⁄
3 Intégration numérique
Étant donnée une fonction f : [a, b] → R, le calcul de son intégrale
Z b
I(f ) = f (x) dx
a
est un problème qui est souvent compliqué. Dans le cas où l’expression d’une primitive F de f
est connue, le problème est réglé puisque I(f ) = F (b) − F (a). Malheureusement, cela n’est pas
toujours possible :
. F peut ne pas avoir d’expression analytique, par exemple dans les cas suivants
√ 1
x 7→ exp(−x2 ), x 7→ 1 + 2 cos x, x 7→ ;
log x
. f peut n’être connue que par ses valeurs f (x) en certains points x (issues de données
expérimentales par exemple) ;
. f peut n’être connue que comme valeur retournée par un algorithme coûteux permettant
de la calculer pour tout x.
Dans tous ces cas-là, il est nécessaire de calculer une approximation numérique Iapp de I(f ), ce
à quoi on va s’intéresser dans tout ce chapitre.
1 Formules de quadratures
Rb
Comment calculer une valeur approchée de I(f ) = a f (x) dx ? Un résultat théorique donne
une piste : on peut recourir à des sommes de Riemann. Si Σ est une subdivision a = x0 < x1 <
x2 < . . . xn = b pointée en chaque sous-intervalle par xj+1/2 ∈ [xj , xj+1 ] pour tout i ∈ [[0, n − 1]],
on note
n−1
X
S(f, Σ) = f (xj+1/2 )(xj+1 − xj )
j=0
Remarquons tout d’abord que le calcul de In (f ) = S(f, Σn ) n’utilise que des évaluations de f en
certains points xi+1/2 et des opérations arithmétiques standards (sommes et produits) : on peut
donc effectuer ce calcul “à la main” ou sur machine.
Néanmoins, ce théorème ne quantifie pas à quelle vitesse ces sommes de Riemann convergent
vers l’intégrale de f . En réalité, si l’on prend une subdivision Σn régulièrement espacée en n
⁄
Université de la Polynésie française
C
I(f ) − In (f ) 6
n
pour une certaine constante C > 0. C’est-à-dire que pour obtenir une précision à 10−6 de
I(f ) il faudrait évaluer f (x) de l’ordre de 1 million de fois, et effectuer autant d’opérations
arithmétiques : c’est très coûteux et surtout, il risque d’y avoir une forte accumulation d’erreurs
d’arrondis. La question est donc la suivante : peut-on trouver d’autres procédés plus efficaces
pour approcher l’intégrale ?
On va s’intéresser à des approximations d’une intégrale par des formules faisant intervenir uni-
quement des combinaisons linéaires de valeurs prises par f en certains points. Nous introduisons
une nouvelle notation pour l’intégrale que nous souhaitons calculer afin d’éviter les confusions
dans la suite de ce cours. Dans ce paragraphe, nous nous intéressons donc à évaluer
Z β
I= ϕ(ξ) dξ,
α
Remarque 3.3
En général, une formule de quadrature est donnée sous la forme
Z β N
X
ϕ(ξ) dξ ≈ ωi ϕ(ξi ),
α i=1
points ξ1 ... ξN
ou est décrite par un tableau .
poids ω1 ... ωN
On sait qu’au voisinage d’un point, une fonction de classe C p−1 s’approche par un polynôme de
degré p − 1. Ainsi, si une formule de quadrature approche correctement l’intégrale de certains
polynômes (par exemple si elle lui est égale), elle devrait mieux approcher l’intégrale de ϕ. Cette
remarque motive la définition suivante d’ordre, et on montrera plus loin dans le cours qu’elle
mesure bien la qualité d’approximation de la méthode.
⁄
Chapitre 3. Intégration numérique
Remarquons que, comme les applications Ie et I sont linéaires, il est équivalent de dire : la formule
de quadrature Ie est d’ordre p si
e k ) = I(X k ),
I(X 06k 6p−1 e p ) 6= I(X p ).
et I(X
On peut alors envisager une autre manière d’approcher l’intégrale d’une fonction ϕ en utilisant
des polynômes : remplaçons ϕ par son polynôme interpolateur de Lagrange Pϕ associé aux N
points deux à deux distincts ξ1 , . . . , ξN ∈ [a, b], c’est-à-dire
Z β Z β
ϕ(ξ) dξ ≈ Pϕ (ξ) dξ = I(ϕ). e
α α
sous la forme
N
X
Pϕ = ϕ(ξi )Li .
i=1
De sorte que
Z N
βX N
X Z β N
X
I(ϕ)
e = ϕ(ξi )Li (ξ) dξ = ϕ(ξi ) Li (ξ) dξ = ωi ϕ(ξi ),
α i=1 i=1 α i=1
Cette méthode est donc un cas particulier de formule de quadrature, associée aux points ξi et
aux poids ωi , qu’on qualifie de type interpolation à N points.
Proposition 3.6
Une formule de quadrature à N points est d’ordre au moins N si, et seulement si, elle est
de type interpolation à N points.
⁄
Université de la Polynésie française
Démonstration. Supposons que Ie est une formule de quadrature de type interpolation aux points
ξ1 , . . . , ξN
Z β
I(ϕ)
e = Pϕ (ξ) dξ,
α
qui est exacte sur RN −1 [X]. Considérons la base de Lagrange formée des Li ∈ RN −1 [X], 1 6 i 6 N ,
e j ) = β Lj (ξ) dξ de sorte que
R
associée aux (ξi )16i6N . On sait que ωj = I(L α
N
X N Z
X β Z N
βX Z β
I(ϕ)
e = ωi ϕ(ξi ) = Li (ξ)ϕ(ξi ) dξ = ϕ(ξi )Li (ξ) dξ = Pϕ (ξ) dξ,
i=1 i=1 α α i=1 α
Ainsi, la proposition précédente pourrait nous faire penser que, pour mieux approcher l’intégrale
d’une fonction, il est suffisant d’augmenter le nombre de points N dans la formule de quadrature.
Il n’en est rien comme nous l’avons vu au chapitre 2 consacré à l’interpolation : l’estimation
dépendant de la dérivée N ième ne garantie pas la convergence. L’étude du phénomène de Runge
a même été plus loin dans l’analyse : la différence entre la fonction et le polynôme interpolateur
peut tendre vers l’infini pour certaines fonctions. Nous devons donc changer de stratégie. La
figure 3.1 illustre la divergence du calcul de l’intégrale approchée en utilisant directement le
polynôme interpolateur de Lagrange (avec des points équirépartis ou les points de Tchebychev).
La figure a été construite en calculant l’intégrale du polynôme interpolateur pour la fonction
x 7→ 1/(1 + x2 ) sur [0, 5].
⁄
Chapitre 3. Intégration numérique
n−1
X Z xj+1
I(f ) = f (x) dx,
j=0 xj
Rx
de sorte qu’approcher I(f ) par In (f ) consiste à remplacer xjj+1 f (x) dx par (xj+1 − xj )f (xj ).
Rx
Or lorsque f est positive, xjj+1 f (x) dx représente l’aire sous le graphe de f entre les abscisses
xj et xj+1 , et (xj+1 − xj )f (xj ) représente l’aire du rectangle de même base et de hauteur f (xj ),
c’est-à-dire la valeur de la fonction à gauche de l’intervalle. On a donc découpé l’intervalle [a, b]
en petits intervalles sur lesquels on a approché l’aire sous le graphe de f par une formule de
quadrature élémentaire, appelée ici méthode des rectangles à gauche
Z xj+1
f (x) dx ≈ (xj+1 − xj )f (xj ),
xj
⁄
Université de la Polynésie française
Nous allons à présent définir des méthodes de quadrature élémentaires (qui seront de type
interpolation vues à la section précédente) plus précises que la méthode des rectangles à gauche
afin de rester dans l’esprit des sommes de Riemann mais en améliorant la vitesse de convergence.
Remarquons tout d’abord qu’il est suffisant de définir les formules de quadratures élémentaires
sur l’intervalle [−1, 1]. En effet, le changement de variables affine
permet de ramener le calcul de l’intégrale sur [xj , xj+1 ] à un calcul sur [−1, 1] selon la formule
Z xj+1
xj+1 − xj 1
Z
f (x) dx = f (φj (t)) dt,
xj 2 −1
de sorte qu’il suffira d’appliquer les formules de quadrature élémentaires sur l’intervalle [−1, 1]
aux fonctions ϕj = f ◦ φj .
avec
1 − ξi 1 + ξi
xi,j = φj (ξi ) = xj + xj+1 , 1 6 i 6 N, 0 6 j 6 n − 1.
2 2
Dans cette section, quelques-unes des méthodes de quadratique parmi les plus classiques seront
présentées, puis analysées afin de déterminer une estimation de l’erreur commise. Commençons
par appliquer la méthode générale des méthodes composites dans les cas les plus simples.
Précisons les notations. Nous noterons
Z 1 N
X
I0 (ϕ) = ϕ(ξ) dξ, Ie (ϕ) = ωi ϕ(ξi ),
−1 i=1
n−1 n−1
(3.3)
b
xj+1 − xj xj+1 − xj
Z X X
I(f ) = f (x) dx = I0 (f ◦ φj ), Ic (f ) = Ie (f ◦ φj ),
a 2 2
j=0 j=0
⁄
Chapitre 3. Intégration numérique
Table 3.1 – Les méthodes de quadratures classiques : méthodes composées à partir des méthodes
de type interpolation.
1−t 1+t
où φj : [−1, 1] → [xj , xj+1 ] t 7→ 2 xj + 2 xj+1 est définie en (3.1).
n−1
b−aX
Ic (f ) = f (xj+1 ). (Rectangles à droite)
n
j=0
n−1
b−aX
Ic (f ) = f (xj ). (Rectangles à gauche)
n
j=0
⁄
Université de la Polynésie française
La formule du point milieu est obtenue quant à elle en choisissant le polynôme interpolateur de
Lagrange au point ξ1 = 0 :
Z 1
Pϕ (ξ) = ϕ(0) =⇒ Ie (ϕ) = ϕ(0) dξ = 2ϕ(0).
−1
n−1
b − a X xj+1 + xj
Ic (f ) = f . (Points milieux)
n 2
j=0
La formule des trapèzes est obtenue en choisissant le polynôme interpolateur de Lagrange aux
deux points ξ1 = −1 et ξ2 = 1. Dans ce cas, le polynôme est de degré au plus 1, ainsi
Z 1
1−ξ 1+ξ
Pϕ (ξ) = ϕ(−1) + ϕ(1) =⇒ Ie (ϕ) = Pϕ (ξ) dξ = ϕ(−1) + ϕ(1).
2 2 −1
Dans ce cas, nous avons x1,j = xj et x2,j = xj+1 et
n−1
b − a Xh i
Ic (f ) = f (xj ) + f (xj+1 ) . (Trapèzes)
2n
j=0
n−1
b − a Xh x
j+1 + xj
i
Ic (f ) = f (xj + 1) + 4f + f (xj ) . (Simpson)
6n 2
j=0
La figure 3.2 illustre la convergence de ces 5 méthodes d’intégration numérique. Les courbes ont
été obtenues en calculant l’erreur du calcul approché avec N points (N variant entre 1 et 100)
pour calculer Z 5
1
I= 2
dx.
0 1+x
En échelle logarithmique, l’erreur est asymptotiquement proche d’une droite de pente entière (1
pour les méthodes des rectangles, 2 pour les méthodes des points milieux et des trapèzes et 4
pour la méthode de Simpson). Les sections suivantes vont permettre de comprendre pourquoi
ces pentes sont observées.
⁄
Chapitre 3. Intégration numérique
Ie (ϕ) = 2ϕ(−1)
pour ϕ ∈ C 0 ([−1, 1]). On cherche à calculer l’ordre de la méthode et quantifier l’erreur commise
par rapport à la valeur exacte de l’intégrale. Une illustration des méthodes des rectangles à
gauche et à droite se trouve à la figure 3.3.
Proposition 3.9
La méthode des rectangles à gauche est d’ordre 1.
⁄
Université de la Polynésie française
Démonstration. On sait déjà que c’est une méthode d’interpolation à 1 point donc elle est d’ordre au
moins 1. Pour montrer qu’elle n’est pas d’ordre plus grand il suffit d’exhiber un polynôme
R1 P de degré
1 tel que Ie (P ) 6= I0 (P ). Le choix P = X convient : Ie (P ) = −2 tandis que I0 (P ) = −1 x dx = 0. !
Démonstration. Soit φ une primitive de ϕ sur l’intervalle [−1, 1]. Effectuons un développement de Taylor
avec reste de Lagrange de φ au point −1 :
Pour f ∈ C 1 ([a, b], R), nous avons grâce aux formules (3.3)
n−1
X xj+1 − xj
I(f ) − Ic (f ) = I0 (f ◦ φj ) − Ie (f ◦ φj )
j=0
2
n−1
X n−1
X
= (xj+1 − xj )(f ◦ φj )0 (cj ) = (xj+1 − xj )f 0 (φj (cj ))φ0j (cj ),
j=0 j=0
où cj ∈] − 1, 1[, 0 6 j 6 n−1. Comme φ0j (cj ) = (xj+1 − xj )/2, nous obtenons
n−1
X (xj+1 − xj )2 0 b−a
I(f ) − Ic (f ) 6 kf k∞ = hkf 0 k∞ ,
j=0
2 2
⁄
Chapitre 3. Intégration numérique
En reprenant la preuve de la proposition précédente, c’est cette inégalité qui permet ensuite
d’obtenir la majoration |I(f ) − Ic (f )| 6 O(h). Ainsi, si la formule de quadrature est d’ordre 1,
l’erreur de la méthode composée associée est en O(h).
pour ϕ ∈ C 0 ([−1, 1]). Une illustration de la méthode des trapèzes se trouve à la figure 3.4. On
cherche à calculer l’ordre de la méthode et à quantifier l’erreur commise par rapport à la valeur
exacte de l’intégrale.
Proposition 3.11
La méthode des trapèzes est d’ordre 2.
Démonstration. On sait déjà que c’est une méthode d’interpolation à 2 points donc elle est d’ordre au
moins 2. Pour montrer qu’elle R 1n’est pas d’ordre plus grand, nous choisissons le polynôme P = X 2 . Nous
avons Ie (P ) = 2 et I0 (P ) = −1 x2 dx = 2/3. !
⁄
Université de la Polynésie française
Démonstration. Comme la méthode des trapèzes est une méthode de type interpolation à deux points,
nous appliquons la proposition 3.7 : pour ϕ ∈ C 2 ([−1, 1]) nous avons
23 00 4
|Ee (ϕ)| 6 kϕ k∞ = kϕ00 k∞ .
3! 3
Pour améliorer la constante, il est possible de reprendre la preuve de la proposition (3.7) pour écrire
1
x3 i1
Z
1 00 1 00 h 2
|Ee (ϕ)| 6 kϕ k∞ (1 − x)(1 + x) dx 6 kϕ k∞ x − = kϕ00 k∞ .
2! −1 2 3 −1 3
Pour f ∈ C 2 ([a, b], R), nous avons grâce aux formules (3.3)
n−1
X xj+1 − xj
|I(f ) − Ic (f )| 6 I0 (f ◦ φj ) − Ie (f ◦ φj )
j=0
2
n−1
1X
6 (xj+1 − xj )k(f ◦ φj )00 k∞ .
3 j=0
h 0 h2 00
(f ◦ φj )0 (ξ) = f ◦ φj (ξ), (f ◦ φj )00 (ξ) = f ◦ φj (ξ).
2 4
Nous obtenons donc
n−1
1 X (xj+1 − xj )3 0 b−a
I(f ) − Ic (f ) 6 kf k∞ = h2 kf 0 k∞ ,
3 j=0 4 12
Ie (ϕ) = 2ϕ(0)
pour ϕ ∈ C 0 ([−1, 1]). Une illustration de la méthode des points milieux se trouve à la figure 3.4.
Proposition 3.13
La méthode du point milieu est d’ordre 2.
⁄
Chapitre 3. Intégration numérique
Démonstration. Comme c’est une méthode d’interpolation à 1 point, la méthode est au moins d’ordre
1. Testons la méthode sur la base canonique des polynômes :
Z 1
P = 1, I0 (P ) = 1 dx = 2, Ie (P ) = 2P (0) = 2,
−1
Z 1
P = X, I0 (P ) = x dx = 0, Ie (P ) = 2P (0) = 0,
−1
Z 1
2
P = X 2, I0 (P ) = x2 dx = , Ie (P ) = 2P (0) = 0.
−1 3
La fonction ϕ00 étant continue, d’après le théorème des valeurs intermédiaires, il existe c ∈]a, b[ tel que
(ϕ00 (c1 ) + ϕ00 (c2 ))/2 = ϕ00 (c), d’où
Z 1
1
ϕ(t) dt − 2ϕ(0) = ϕ00 (c).
−1 3
En utilisant le changement de variable φj sur l’intervalle [xj , xj+1 ], on en déduit que si f est de classe
C 2 sur [a, b],
n−1
X xj+1 − xj
I(f ) − Ic (f ) = I0 (f ◦ φj ) − Ie (f ◦ φj )
j=0
2
n−1 n−1
X (xj+1 − xj )3
X xj+1 − xj
= (f ◦ φj )00 (cj ) = f (2) (φj (cj )).
j=0
6 j=0
24
Donc
b−a
|I(f ) − Ic (f )| 6 h2 kf 00 k∞
24
ce qui termine la preuve. !
⁄
Université de la Polynésie française
1 4 1
Ie (ϕ) = ϕ(−1) + ϕ(0) + ϕ(1)
3 3 3
pour ϕ ∈ C 0 ([−1, 1]). Une illustration de la méthode de Simpson se trouve à la figure 3.5.
Proposition 3.15
La méthode de Simpson est d’ordre 4.
Démonstration. Comme c’est une méthode d’interpolation à 3 point, la méthode est au moins d’ordre
3. Testons la méthode sur la base canonique des polynômes :
Z 1
1 4 1
P = 1, I0 (P ) = 1 dx = 2, Ie (P ) = P (−1) + P (0) + P (1) = 2,
−1 3 3 3
Z 1
1 4 1
P = X, I0 (P ) = x dx = 0, Ie (P ) = P (−1) + P (0) + P (1) = 0,
−1 3 3 3
Z 1
2 1 4 1 2
P = X 2, I0 (P ) = x2 dx = , Ie (P ) = P (−1) + P (0) + P (1) = ,
−1 3 3 3 3 3
Z 1
1 4 1
P = X 3, I0 (P ) = x3 dx = 0, Ie (P ) = P (−1) + P (0) + P (1) = 0,
−1 3 3 3
Z 1
2 1 4 1 2
P = X 4, I0 (P ) = x4 dx = , Ie (P ) = P (−1) + P (0) + P (1) = .
−1 5 3 3 3 3
⁄
Chapitre 3. Intégration numérique
Rx
Démonstration. On pose φ(x) = −1
ϕ(t) dt et on fait un développement de Taylor-Lagrange à l’ordre
5 en 0
1 1 (3) 1 (4) 1 (5)
φ(−1) = φ(0) − φ0 (0) + φ00 (0) − φ (0) + φ (0) − φ (c1 ),
2 6 24 120
1 1 (3) 1 (4) 1 (5)
φ(1) = φ(0) + φ (0) + φ00 (0) +
0
φ (0) + φ (0) + φ (c2 ),
2 6 24 120
pour certains c1 , c2 ∈] − 1, 1[. Ainsi
1 1
I0 (ϕ) = φ(1) − φ(−1) = 2ϕ(0) + ϕ00 (0) + ϕ(4) (c1 ) + ϕ(4) (c2 ) .
3 120
Nous effectuons alors un développement de Taylor-Lagrange à l’ordre 4 de la fonction ϕ en 0 également
1 1 (3) 1 (4)
ϕ(−1) = ϕ(0) − ϕ0 (0) + ϕ00 (0) − ϕ (0) + ϕ (c3 ),
2 6 24
1 1 (3) 1 (4)
ϕ(1) = ϕ(0) + ϕ (0) + ϕ00 (0) +
0
ϕ (0) + ϕ (c4 ),
2 6 24
pour certains c3 , c4 ∈] − 1, 1[. Ainsi
1 1 (4)
Ie (ϕ) = 2ϕ(0) + ϕ00 (0) + ϕ (c3 ) + ϕ(4) (c4 ) .
3 72
Nous en déduisons que
2 2 (4) 2
|Ee (ϕ)| = |I0 (ϕ) − Ie (ϕ)| 6 + kϕ k∞ = kϕ(4) k∞ .
120 72 45
En utilisant le changement de variable φj sur l’intervalle [xj , xj+1 ], on en déduit que si f est de classe
C 4 sur [a, b],
n−1
X xj+1 − xj
I(f ) − Ic (f ) = I0 (f ◦ φj ) − Ie (f ◦ φj )
j=0
2
n−1 n−1
X (xj+1 − xj )5
X xj+1 − xj
= (f ◦ φj )(4) (cj ) = f (2) (φj (cj )).
j=0
45 j=0
720
Donc
b−a
|I(f ) − Ic (f )| 6 h4 kf (4) k∞
720
ce qui termine la preuve. !
⁄
Université de la Polynésie française
Il est ainsi possible de choisir une subdivision telle que chacun des termes de la somme soit
inférieur à un certain /n, ce qui implique que l’erreur globale sera inférieure à ce .
2 2
La figure 3.6 permet de visualiser pour la fonction x 7→ e−x − e−25x que l’on intègre sur l’in-
tervalle [−4, 4] des maillages construits pour que chaque méthode produise une erreur inférieure
à 10−3 .
Figure 3.6 – Illustration de maillages adaptés pour les différentes méthodes : à gauche = 10−3 ,
à droite = 10−4 .
Dans le tableau 3.2, nous avons affiché l’erreur de quadrature qui est effectivement inférieure à
10−3 et le nombre de points du maillage. On observe que les méthodes d’ordre 1 (les méthodes
des rectangles) nécessitent beaucoup plus de points que les méthodes d’ordre plus élevé : plus
de 17000 alors que la méthode de Simpson d’ordre 4 seulement 41. Lorsque le seuil est diminué
(dans le tableau 3.3, = 10−4 ), la conclusion est encore plus flagrante. Grossièrement, pour
diviser le seuil par 10 avec une méthode d’ordre 1, il faut environ 10 fois plus de points. Pour
une méthode d’ordre plus élevé, la croissance est beaucoup plus lente.
La conclusion est que (lorsque la fonction que l’on intègre est régulière), il est préférable d’utiliser
des méthodes d’ordre élevé. Même si chaque calcul coûte plus cher (l’évaluation de la méthode
de Simpson nécessite environ 2 fois plus de calcul que les autres méthodes), comme elle nécessite
un maillage beaucoup plus grossier, elle est avantageuse.
⁄
Chapitre 3. Intégration numérique
Dans cette section, nous proposons une version python des algorithmes qui ont été étudiés dans
ce chapitre. Ils n’ont pas la prétention d’être parfait... et sont limités à des maillages uniformes,
c’est-à-dire que les points sont définis par xi = a + ih avec h = (b − a)/n.
Toutes les fonctions proposées prennent quatre arguments : la fonction f à intégrer, deux réels a
et b qui définissent le domaine d’intégration et un entier N qui détermine le nombre de découpage
pour la méthode composée.
def rectangles_gauche (f , a , b , N ):
x , h = np . linspace (a , b , N +1 , retstep = True )
xl = x [: -1]
return h * np . sum ( f ( xl ))
def rectangles_droite (f , a , b , N ):
x , h = np . linspace (a , b , N +1 , retstep = True )
xr = x [1:]
return h * np . sum ( f ( xr ))
def trapezes (f , a , b , N ):
x , h = np . linspace (a , b , N +1 , retstep = True )
xl , xr = x [: -1] , x [1:]
return .5* h *( np . sum ( f ( xl )) + np . sum ( f ( xr )))
⁄
Université de la Polynésie française
def simpson (f , a , b , N ):
x , h = np . linspace (a , b , N +1 , retstep = True )
xl , xr = x [: -1] , x [1:]
xm = .5*( xl + xr )
return h /6*(
np . sum ( f ( xl )) + 4* np . sum ( f ( xm )) + np . sum ( f ( xr ))
)
⁄
4 Résolution d’équations ordinaires
Ce chapitre est consacré à la recherche de solution approchée d’équations non linéaires scalaires.
Soit I un intervalle de R et soit f : I → R continue. On considère le problème suivant
Définition 4.1
Toute solution x? ∈ I de (4.1) est dite racine ou zéro de f dans I.
Si f est de classe C r sur I avec r > 1 et x? une racine de f dans I, alors
0
. x? est dite racine simple si f (x? ) 6= 0,
. x? est dite racine de multiplicité p < r, si f (k) (x? ) = 0 pour 0 6 k < p et
f (p) (x? ) 6= 0.
1 Exemples d’application
Nous présentons deux exemples classiques pour lesquels il est nécessaire de résoudre de telles
équations.
L’une des utilisations importantes est la résolution numérique des équations différentielles or-
dinaires. La construction des schémas numériques conduit parfois à des méthodes implicites,
c’est-à-dire nécessitant la résolution d’équations ordinaires. Ces méthodes peuvent présenter
des avantages numériques même si elles peuvent parfois sembler plus compliquées. Pour s’en
convaincre, considérons le problème simple
Pour uin donné, la détermination de uin+1 se ramène ici à la résolution de l’équation x = uin −x∆t
dont la solution est évidente car l’équation à résoudre est linéaires... Nous avons donc
1
uin+1 = ui , n > 0. (4.3)
1 + ∆t n
⁄
Université de la Polynésie française
La figure 4.1 montre les premiers termes de la suite obtenues par les méthodes explicites et
implicites avec différentes valeurs du pas de temps ∆t.
Pour la méthode explicite, on montre que, si l’on prend u0 > 0,
. si 0 < ∆t 6 1, la suite est décroissante et converge vers 0, ce qui est le bon comportement ;
. si 1 < ∆t < 2, la suite prend alternativement des valeurs positives et négatives mais
converge vers 0 ;
. si ∆ > 2, la suite diverge en prenant alternativement des valeurs positives et négatives de
plus en plus grandes en valeur absolue.
Pour la méthode implicite, on montre que, si l’on prend u0 > 0, la suite reste positive et tend vers
0 quelque soit la valeur du pas de temps ∆t. Ainsi, le comportement de la solution approchée reste
toujours cohérent avec celui de la solution exacte. La méthode implicite semble plus intéressante.
Cependant il n’est pas toujours possible de résoudre directement le problème posé par les schémas
implicites. En particulier, lorsque la fonction n’est pas linéaire, la résolution n’admet pas toujours
une seule solution et les solutions n’ont pas toujours d’expression analytique. Voici un exemple
⁄
Chapitre 4. Résolution d’équations ordinaires
illustrant ce propos.
u0 (t) = eu(t) t ∈]0, T [, avec u(0) = u0 . (4.4)
Ici le schéma d’Euler implicite s’écrit
un+1 = un + ∆teun+1 , n > 0.
Pour n > 0, cette équation ne pourra être résoluble que de manière approchée (numériquement).
Sachant que cette résolution devra être faite à chaque itération, il faudra qu’elle soit efficace,
c’est-à-dire rapide (peu couteuse en temps de calcul et taille mémoire) et précise (afin de ne pas
accroı̂tre l’erreur locale de la méthode à un pas implicite).
1.2 Méthode de tir pour les problèmes aux limites du second ordre
Dans un problème de tir à canon, on est souvent amené à déterminer l’angle vertical d’orientation
du canon afin d’atteindre une cible précise.
En une dimension d’espace, le problème peut se mettre sous la forme (4.5) où f est une certaine
fonction donnée de manière implicite sous la forme suivante.
Etant donnés deux réels x0 et xT donnés, on cherche une solution du problème
00
x (t) = f (t, x(t)), t ∈]0, T [,
x(0) = x0 , (4.5)
x(T ) = xT .
On obtient ici un problème aux limites et non un problème de Cauchy pour une équation
différentielle ! Si l’on dispose d’un bon solveur d’EDOs, on peut en faire usage. On peut en effet
transformer ce problème en un problème de Cauchy (en une edo), en introduisant une inconnue
nécessaire pour définir une condition initiale.
En effet, si pour v ∈ R on considère le problème
00
z (t) = f (t, z(t)), t ∈]0, T [,
z(0) = x0 , (4.6)
0
z (0) = v,
on a alors un problème de Cauchy pour une EDO. Si l’on pose alors g(t, v) la solution de cette
EDO, en l’évaluant à t = T on définit une fonction g(T, v) de la seule variable v.
Le problème de détermination de la vitesse initiale revient alors à résoudre l’équation d’inconnue
v : G(v) = 0, avec G(v) = g(T, v) − xT .
Il apparaı̂t donc que dans certaines équations non linéaires, l’expression de la fonction dont
on cherche une racine peut être compliquée : ici une évaluation de la fonction G nécessite une
résolution d’équation différentielle. Il est donc nécessaire de chercher des méthodes numériques
de résolution d’équations non-linéaires qui soient efficaces et si possible sans recours au calcul
des dérivées.
Avant de nous lancer dans la construction des schémas numériques pour le problème 4.1 d’équa-
tions non-linéaires, il est important de répondre aux questions suivantes.
⁄
Université de la Polynésie française
Puisqu’on est dans un cadre scalaire (c’est-à-dire f : R 7→ R), l’existence de solution est une
simple conséquence du théorème de Rolle (Thm. 1.4).
Lorsque l’équation est sous la forme f (x) = 0, un procédé constructif permet aussi de définir
l’intervalle I : on se fixe un point a et un pas ∆. Puis on se déplace selon ce pas de part et
d’autre de a, jusqu’au premier changement de signe de f . On définit alors l’intervalle I. Pour ∆
suffisamment petit, cette procédure approche directement la racine de l’équation et on appelle
la schéma ainsi construit méthode de recherche incrémentale.
On retient alors à ce stade que certaines preuves de la position correcte des équations non-
linéaires cachent en elles mêmes des schémas numériques, certes basiques, mais exploitables
pour la résolution de ces équations.
Intéressons nous à présent à la stabilité. C’est-à-dire à l’effet, sur la solution, des perturbations
sur les données.
⁄
Chapitre 4. Résolution d’équations ordinaires
ce qui termine la preuve. Notons que, par définition de la multiplicité, le terme f (m) (x? ) n’est pas
nul. !
−1/m
Ainsi, le conditionnement absolu est donné par κ(f, x∗ ) = m! f (m) (x∗ ) |η(x̃)|1/m−1 . Ce qui
montre que la résolution des équations non-linéaires à racines multiples sera un problème moins
bien conditionné (et même mal conditionné) que celui de la recherche de racines simples.
Prenons pour exemple la recherche du zéro des fonctions fm : x 7→ (x − 1)m en supposant que
l’erreur η est constante (η(x) = −10−8 la valeur de η est choisie négative pour que l’équation ait
toujours des solutions). Le tableau 4.1 récapitule les résultats obtenus pour différentes valeurs
de la multiplicité m.
⁄
Université de la Polynésie française
Ainsi, si l’on détermine le zéro avec 8 chiffres significatifs (précision du calcul de 10−8 ), le
conditionnement pour m = 1 permet de conserver la même erreur sur la solution, tandis que
pour m = 4 par exemple, l’erreur sur la solution est de 10−2 , c’est-à-dire que l’erreur est amplifiée
d’un facteur 106 . Il faut avoir conscience de ce phénomène d’amplification des erreurs lorsque
l’on fait du calcul scientifique.
où C est une constante strictement positive et C < 1 si p = 1. La convergence est dite
d’ordre exactement p si on a de plus
Pour bien comprendre cette notion d’ordre de convergence, supposons que nous avons une suite
(xn )n∈N qui converge à l’ordre p vers x? et que de plus nous avons
|xn+1 − x? |
lim = K > 0.
n→∞ |xn − x? |p
Le nombre dn = − log10 |xn − x? | mesure le nombre de chiffres (en base 10) de xn et de x? qui
coı̈ncident (à une constante additive près ne dépendant pas de n). On peut écrire
dn+1 ≈ pdn − log10 (K).
Ce qui montre qu’à une constante additive près, le nombre de chiffres exactes est multiplié par
p à chaque itération. En effet on a pour p > 1
log10 (K) log10 (K)
dn+1 + = p dn + .
1−p 1−p
On peut donc estimer le nombre d’itérations nécessaires pour gagner un chiffre exacte. En par-
ticulier, lorsque la convergence est linéaire, comme ce sera le cas pour la plupart des méthodes
⁄
Chapitre 4. Résolution d’équations ordinaires
que nous verrons, même celles d’ordre élevée lorsqu’elles seront confrontées à des situations
particulières comme celles de recherche des racines multiples.
Démonstration. la formule de récurrence du nombre de chiffres exactes par itération est donnée ici par
dn+1 = dn − log10 (K). Ainsi après m itérations à partir de l’itération n, on a dn+m = dn − m log10 (K).
Par conséquent, dn+m = dn + 1 si et seulement si m = −1/ log10 (K) (arrondi à l’entier supérieur). !
Définition 4.10
Soient (xn )n∈N , (yn )n∈N deux suites qui convergent respectivement vers x? , y ? . On dit que
−x?
(xn ) converge plus vite que (yn ) si limn→∞ xynn −y ? = 0.
Ainsi, si la suite (xn ) converge à l’ordre q, si la suite (yn ) converge à l’ordre p et si (xn ) converge
plus rapidement que (yn ), alors q > p. Par conséquent si l’on ne dispose que de l’ordre p de (yn ),
on pourra dire pour (xn ) convergeant plus vite que (yn ) qu’elle converge à l’ordre au moins p.
Nous commençons par présenter deux méthodes de recherche de 0 qui ne sont pas très rapides
mais qui ont l’intérêt d’être très robustes. En particulier, elles fonctionnent même pour les racines
multiples.
Soit f : [a, b] → R continue telle que f (a)f (b) < 0. D’après le théorème de Rolle, f admet une
racine dans ]a, b[. Cette racine est certainement dans l’une des moitiés de l’intervalle [a, b]. C’est-
à dire si l’on pose c = a+b
2 . L’un des intervalles [a, c] ou [c, b] nous placera dans la configuration
de départ. On prend celui là et on rejette l’autre. On répète le processus, ce qui génère une
suite d’intervalles ([an , bn ]) emboı̂tés, dont la longueur tends vers 0 et qui vérifie pour tout
n, f (an )f (bn ) < 0. La méthode de dichotomie suit donc la procédure suivante :
. on pose [a0 , b0 ] = [a, b]
. [an , bn ] étant connu, on pose c = an +b
2
n
et on teste le signe de f (an )f (c)
. Si cette valeur est strictement négative, la racine de f est dans [an , c] on pose alors
[an+1 , bn+1 ] = [an , c]
. Si cette valeur est strictement positive, alors f (c)f (bn ) < 0, on pose alors [an+1 , bn+1 ] =
[c, bn ]
. Si elle est nulle alors c est la racine.
La figure 4.2 illustre le comportement de la méthode de la dichotomie.
⁄
Université de la Polynésie française
Nous remarquons que, sous réserve que les hypothèses de la proposition précédente sont sa-
tisfaites, la méthode de la dichotomie converge toujours et il est possible d’estimer le nombre
d’itérations nécessaires pour déterminer le zéro x? avec une précision choisie. En effet, à l’étape
n, on est asuré que x? se trouve dans l’intervalle [an , bn ] de longueur (b − a)/2n . Ainsi, pour
fixé, le choix de
b − a b − a
n = E log2 + 1 = E log2
2
⁄
Chapitre 4. Résolution d’équations ordinaires
On fera attention au vocabulaire : la méthode de la sécante est appelée method of false position
or regula falsi dans les publications anglophones tandis que la méthode de la fausse position est
appelée secant method.
Cette méthode suit le même principe que la méthode de dichotomie avec pour seule différence
qu’au lieu de prendre cn comme le milieu de an et de bn , on le prendra de manière équivalente
comme la racine du polynôme interpolateur de Lagrange associé au noeuds an et bn , ou comme
l’abscisse du point d’intersection avec l’axe des abscisses de la droite passant par (an , f (an )), et
(bn , f (bn )). C’est-à-dire
an f (bn ) − bn f (an )
cn = .
f (bn ) − f (an )
Comme f (an ) et f (bn ) sont toujours de signe différent (par définition de l’algorithme), le déno-
minateur ne s’annule jamais et la suite est bien définie.
⁄
Université de la Polynésie française
On construit donc les trois suites (an ), (bn ) et (cn ) par a0 = a, b0 = b, et pour n ∈ N,
( (
an f (bn ) − bn f (an ) an si f (an )f (cn ) < 0, cn si f (an )f (cn ) < 0,
cn = , an+1 = bn+1 =
f (bn ) − f (an ) cn si f (an )f (cn ) > 0, bn si f (an )f (cn ) > 0,
(4.8)
Si f (cn ) = 0 pour un certain n ∈ N, on ne continue pas l’algorithme et les suites sont finies.
La figure 4.3 illustre le comportement de la méthode de la sécante.
Démonstration. Pour fixer les idées, on suppose comme à la figure 4.3 que f (a) < 0 et f (b) > 0.
Supposons que les trois suites sont infinies, c’est-à-dire que f (cn ) 6= 0 pour tout n ∈ N. La suite (an )
est croissante majorée, elle converge donc vers α, la suite (bn ) est décroissante minorée, elle converge
donc vers β. Par continuité, on a f (α) 6 0 et f (β) > 0. Deux cas se présentent alors.
⁄
Chapitre 4. Résolution d’équations ordinaires
Premier cas : f (α) = f (β). On a donc f (α) = f (β) = 0. Cela prouve que α = β = x? et que la suite
(cn ) tend vers x? .
Deuxième cas : f (α) 6= f (β). Par continuité de f , on en déduit que la suite (cn ) converge vers γ avec
αf (β) − βf (α)
γ= .
f (β) − f (α)
On a donc prouvé que la suite (cn ) converge vers x? mais on ne sait rien des deux suites (an )
et (bn ). On sait seulement qu’une des deux converge vers x? . On peut également montrer que,
si la fonction est strictement convexe ou strictement concave, l’une des deux suites (an ) ou (bn )
reste constante.
Démonstration. Pour fixer les idées, on suppose comme à la figure 4.3 que f (a) < 0 et f (b) > 0 et que
f 00 (x) > 0 pour x ∈ [a, b]. Les autres cas se traitent de manière identique. Comme la fonction f est
strictement convexe, la courbe est toujours sous ses sécantes, c’est-à-dire que f (cn ) < 0, la suite (bn )
est donc constante.
Nous avons donc une seule suite à étudier, la suite (an ) définie par
xf (b) − bf (x)
a0 = a, an+1 = φ(an ) avec φ(x) = .
f (b) − f (x)
Comme f (x? ) = 0, nous avons φ(x? ) = x? . Nous avons donc
an+1 − x? = φ(an ) − φ(x? ) = φ0 (ξ)(an − x? ),
où ξ est dans l’intervalle ]an , x? [. D’après la proposition précédente, la suite (an ) converge vers x? car
elle est égale à la suite (cn ). Nous avons donc
x? − an+1
lim = φ0 (x? ).
n→∞ x? − an
⁄
Université de la Polynésie française
Cette proposition ne permet pas facilement d’estimer à l’avance le nombre d’itérations nécessaires
pour que la méthode de la sécante donne un résultat cn proche de x? à près pour > 0 fixé.
En effet, la limite K1 ne peut pas être calculée puisqu’elle dépend de x? inconnu.
Dans le cas de la figure 4.3 obtenue avec f (x) = e2x −4, nous avons x? = ln(2). Ainsi, pour b = 1,
K1 ' 0.2757. La convergence est donc plus rapide que celle obtenue pour la dichotomie. Pour
b = 1.6, K1 ' 0.6467. La convergence est donc plus lente que celle obtenue pour la dichotomie.
La fonction secante prend cinq arguments : la fonction f dont on cherche un zéro, deux
réels a et b qui définissent l’intervalle de recherche, un réel epsilon qui est un petit
paramètre utilisé pour arrêter l’algorithme lorsque la précision est atteinte et un booléen
verbose qui permet de modifier la sortie (seulement la solution trouvée ou bien toutes
les valeurs intermédiaires calculées).
Nous présentons à présent deux méthodes de recherche de 0 qui sont plus efficaces. Le principe
est de remplacer la fonction f par un polynôme interpolateur de bas degré qui “ressemble” à la
fonction f lorsque l’on s’approche du 0 recherché.
⁄
Chapitre 4. Résolution d’équations ordinaires
La méthode de Newton est certainement une des méthodes les plus utilisées pour chercher les
zéros d’une fonction. Elle consiste à remplacer la fonction f dont on cherche le zéro par sa
tangente (il faut donc que la fonction f soit dérivable).
Etant donné un point x0 , nous calculons une nouvelle approximation x1 en cherchant le zéro de
la tangente à f au point x0 . Cette tangente est la droite Tf (x0 ) d’équation
Cette droite coupe l’axe des abscices en x1 = x0 − f (x0 )/f 0 (x0 ). Cela permet de construire la
suite (xn ) tant que la dérivée f 0 (xn ) ne s’annule pas :
f (xn )
xn+1 = xn − , n > 0.
f 0 (xn )
Lorsque la fonction f a un domaine de définition qui n’est pas R, il est possible qu’un terme xn
sorte du domaine de définition. La construction de la suite échoue, la méthode ne donne pas de
résultat intéressant... La conclusion est qu’il est nécessaire de bien choisir le point de départ x0
de la suite pour assurer que la suite est constructible et qu’elle converge bien vers x? .
La figure 4.4 illustre le comportement de la méthode de Newton dans un cas favorable.
f (xn )
xn+1 = xn − , n > 0,
f 0 (xn )
xn+1 − x? f 00 (x? )
lim = .
n→∞ (xn − x? )2 2f 0 (x? )
Démonstration. Supposons pour simplifier que f 0 (x? ) = α > 0. L’autre cas se démondre de la même
façon. Comme la fonction f 0 est continue autour de x? ,
Le choix des constantes sera précisé plus loin. Nous avons donc
f (xn )
xn+1 − x? = xn − x? − .
f 0 (xn )
⁄
Université de la Polynésie française
Or )
αc 6 f 0 (ξ) 6 αc c−c f 0 (ξ) c−c f 0 (ξ) c−c
=⇒ 61− 0 6 =⇒ 1 − 0 6 .
αc 6 f 0 (xn ) 6 αc c f (xn ) c f (xn ) c
1 f 00 (ξ)
xn+1 − x? = (xn − x? )2 0 ,
2 f (xn )
⁄
Chapitre 4. Résolution d’équations ordinaires
⁄
Université de la Polynésie française
L’idée de la méthode de la fausse position est de remplacer f 0 (xn ) dans la méthode de Newton
par autre chose car il est rare de connaı̂tre en pratique une expression analytique de f 0 et on ne
peut en avoir qu’une approximation. Cela peut arriver par exemple lorsque la fonction f est le
résultat d’un calcul informatique ou bien une reconstruction à partir de données expérimentales.
On remplace f 0 (xn ) dans la méthode de Newton par
f (xn ) − f (xn−1 )
.
xn − xn−1
xn − xn−1
xn+1 = xn − f (xn ) . (4.9)
f (xn ) − f (xn−1 )
C’est-à-dire que lorsque xn et xn−1 sont construits, on construit xn+1 comme l’intersection de
l’axe des abscisses et de la droite reliant les points f (xn ) et f (xn−1 ).
La figure 4.6 illustre le comportement de la méthode de la fausse position dans un cas favorable.
Démonstration. La démonstration utilise des outils élémentaires d’analyse mais est un peu technique.
Le lecteur intéressé pourra la trouver dans [5]. !
⁄
Chapitre 4. Résolution d’équations ordinaires
⁄
Université de la Polynésie française
⁄
Bibliographie
[1] G. Allaire. Analyse numérique et optimisation. Edition de l’Ecole Polytechnique, 2002.
[4] M. Crouzeix and A. L. Mignot. Analyse numérique des équations différentielles. Masson,
1992.
[9] E. Godlewski and P.-A. Raviart. Hyperbolic systems of conservation laws. Ellipses, 1991.
[11] F. Hubert and J. Hubbard. Calcul scientifique de la théorie à la pratique. Vuibert, 2006.
[12] B. Lucquin. Équations aux dérivées partielles et leurs approximations. Ellipses, 2004.
[14] P.-A. Raviart and J.-M. Thomas. Introduction à l’analyse numérique des équations aux
dérivées partielles. Masson, 1983.
[15] M. Renardy and R. Rogers. An introduction to partial differential equations. Springer, 1993.
[16] R. Richtmyer and K. Morton. Difference methods for initial value problems. Wiley-
Interscience, New-York, 1967.
[17] L. Schwartz. Méthodes mathématiques pour les sciences physiques. Hermann, 1965.
⁄