Chapitre 5 : Dérivation et Intégration numérique
Pr. Mohamed AIT ICHOU
LM-Semestre 4 : Analyse numérique
École Supérieure d’Education et de Formation - ESEFA
Année universitaire 2023-2024
M. AIT ICHOU ESEFA 1/60
Plan
I. Introduction
II. Dérivation numérique :
1 Méthode différences finies,
2 Extrapolation de Richardson.
III. Intégration numérique :
1 Méthode de Rectangle,
2 Méthode des trapèzes,
3 Méthode de Simpson.
M. AIT ICHOU ESEFA 2/60
I. Introduction
M. AIT ICHOU ESEFA 3/60
I. Introduction
Le but de ce chapitre est double : indiquer comment calculer de
façon approchée une dérivée et décrire les méthodes de base pour le
calcul numérique d’intégrales. Un point commun de ces deux
thèmes qui vont nous occuper est l’utilisation de polynômes
d’interpolation. L’idée sous-jacente est simple : la fonction avec
laquelle on travaille est trop compliquée ou pas assez connue pour
qu’on puisse faire des opérations simples comme la dérivation ou
l’intégration, on choisit alors de la remplacer par un polynôme et on
dérive ou on intègre celui-ci.
M. AIT ICHOU ESEFA 4/60
II. Dérivation numérique
M. AIT ICHOU ESEFA 5/60
II. Dérivation numérique
Soit f : [a, b] → R une fonction régulière (continue et dérivable
autant de fois que nécessaire). Le calcul de la dérivée f 0 en un
point x0 ∈ [a, b] pose toujours un problème que la fonction soit
définie par une expression analytique ou d’une manière discrète en n
points {(xi , yi = f (xi ))}. La dérivation numérique nous permet de
trouver une estimation de la dérivée, en utilisant un ensemble
discret de points ; ceci car l’ordinateur est incapable de calculer une
limite donc de même pour l’estimation de la dérivée. Une dérivée
d’une fonction f en un point x0 est définie par :
f (x0 + h) − f (x0 )
f 0 (x0 ) = lim
h→0 h
A partir d’informations discrètes c’est très difficile d’avoir une
estimation précise de cette longueur. La qualité de l’estimation
dépend du choix des points {(xi , yi = f (xi ))}.
M. AIT ICHOU ESEFA 6/60
1) Différences finies
Le développement limité de Taylor de la fonction f au voisinage de
x0 est un outil fondamental du calcul numérique. Pour h > 0 la
formule de Taylor peut etre formulée de différentes manières.
h2 00 h3
f (x0 + h) = f (x0 ) + hf 0 (x0 ) + f (x0 ) + f (3) (x0 ) + ... (1)
2 3!
h2 00 h3
f (x0 − h) = f (x0 ) − hf 0 (x0 ) + f (x0 ) − f (3) (x0 ) + ... (2)
2 3!
De (1) et (2) on tire la :
f (x0 +h)−f (x0 )
• Différence finie progressive : h = f 0 (x0 ) + o(h)
• Différence finie rétrograde : f (x0 )−fh(x0 −h) = f 0 (x0 ) + o(h)
(x0 −h)
centrée : f (x0 +h)−f = f 0 (x0 ) + o h2
• Différence finie 2h
M. AIT ICHOU ESEFA 7/60
Remarque
Les formules ne sont pas définies, la première au point x0 = b, la
deuxième au point x0 = a et la troisième aux deux extrémités de
l’intervalle.
Les différences : f 0 (x0 ) − f (x0 +h)−f
h
(x0 )
et f 0 (x0 ) − f (x0 )−fh(x0 −h)
sont appelées crreurs de troncatures. Elles sont d’ordre h.
(x0 −h)
De même pour la différence f 0 (x0 ) − f (x0 +h)−f 2h est appelée
erreur de troncature. Elle est d’ordre h2 .
La différence finie centrée est plus précise que les différences finies
progressives et rétrogrades.
M. AIT ICHOU ESEFA 8/60
2) Cas d’une fonction définie d’une manière discrète
Soit f : [a, b] → R une fonction régulière (continue et dérivable
autant de fois que nécessaire). Subdivisons [a, b] en [a, b]
intervalles égaux. On pose :
b−a
h= , x0 = a, x1 = x0 +h, . . . , xi = xi−1 +h = x0 +ih, . . . , xn = b.
n
Supposons que la fonction f connue aux points (xi )i=0,...,n avec
yi = f (xi )i=0,...,n . Les formules précédentes s’écrivent au point xi .
M. AIT ICHOU ESEFA 9/60
Dérivée numérique d’ordre 1
Progressive :
f (xi + h) − f (xi ) f (xi+1 ) − f (xi ) yi+1 − yi
f 0 (xi ) = = ⇐⇒ yi0 =
h h h
Rétrograde :
f (xi ) − f (xi − h) f (xi ) − f (xi−1 ) yi − yi−1
f 0 (xi ) = = ⇐⇒ yi0 =
h h h
Centrée :
f (xi + h) − f (xi − h) f (xi+1 ) − f (xi−1 )
f 0 (xi ) = = ⇐⇒
2h 2h
yi+1 − yi−1
yi0 =
2h
M. AIT ICHOU ESEFA 10/60
Dérivée numérique d’ordre 2
Si on revient à la formule de Taylor
h2 00 h3
f (xi + h) = f (xi ) + hf 0 (xi ) + f (xi ) + f (3) (xi ) + ... (3)
2 3!
(2h)2 00 (2h)3 (3)
f (xi + 2h) = f (xi ) + 2hf 0 (xi ) + f (xi ) + f (xi ) + ...
2 3!
(4)
h 2 h 3
f (xi − h) = f (xi ) − hf 0 (xi ) + f 00 (xi ) − f (3) (xi ) + ... (5)
2 3!
(2h)2 00 (2h)3 (3)
f (xi − 2h) = f (xi ) − 2hf 0 (xi ) + f (xi ) − f (xi ) + ...
2 3!
(6)
M. AIT ICHOU ESEFA 11/60
Par de calcul simple, on trouve :
Progressive : (1) − (3) ⇐⇒
f (xi + 2h) − 2f (xi + h) + f (xi ) yi+2 − 2yi+1 + yi
f 00 (xi ) = 2
⇐⇒ yi00 =
h h2
Rétrograde : (6) − (5) ⇐⇒
f (xi ) − 2f (xi + h) + f (xi − 2h) yi − 2yi+1 + yi−2
f 00 (xi ) = 2
⇐⇒ yi00 =
h h2
Centrée : (3) − (5) ⇐⇒
f (xi + h) − 2f (xi ) + f (xi − h) yi+1 − 2yi + yi−1
f 00 (xi ) = 2
⇐⇒ yi00 =
h h2
M. AIT ICHOU ESEFA 12/60
Remarque :
1) Les effets de bord sont importants, pour le calcul des dérivées
secondes il est préférable d’utiliser la formule de Taylor à l’ordre 2.
2) On a vu dans le chapitre précédent différents polynômes
d’interpolations. Soit Pn le polynôme d’interpolation de Lagrange
de la fonction f connue aux points (xi ) , i ∈ {0, . . . , n}. On a alors
f 0 (x) = Pn0 (x). De la même manière on peut trouver les dérivées
d’ordres supérieur.
M. AIT ICHOU ESEFA 13/60
3) Définition
Pour simplifier les notations, pour h > 0, posons,
4h f (x0 ) = f (x0 + h) − f (x0 )
∇h f (x0 ) = f (x0 ) − f (x0 − h)
h h
δh f (x0 ) = f x0 + − f x0 −
2 2
La dérivée numérique d’ordre 1, pour h petit, peut s’écrire :
∆h f (x0 ) ∇h f (x0 ) δh f (x0 )
f 0 (x0 ) = , f 0 (x0 ) = , f 0 (x0 ) = .
h h h
Avec ces notations, la généralisation aux dérivées d’ordre supérieur
se fait de la manière suivante : Soit n un entier supérieur à 1 , on
définit par récurrence :
4nh f = 4h 4n−1 ∇nh f = ∇h ∇n−1 δhn f = δh δhn−1 f
h f , h f ,
M. AIT ICHOU ESEFA 14/60
4) Définition
Si f est continue et dérivable autant de fois que nécessaire sur
∆nn f (x0 ) ∇n f (x0 )
[a, b], alors pour tout x0 ∈ [a, b], les quantités : hn , hn et
δnn f (x0 )
hn définissent des approximations de la n-ème dérivée f (n) (x0 )
de f au point x0 , d’ordre h, h et h2 respectivement.
Propriétés
1 Si f ∈ C n+1 ([a, b]), alors ∀x0 ∈ [a, b] et pour h > 0, il existe
∆n f (x )
une constante α > 0, telle que f (n) (x0 ) − h hn 0 ≤ αh.
2 Si f ∈ C n+1 ([a, b]), alors ∀x0 ∈ [a, b] et pour h > 0, il existe
n
une constante α > 0, telle que f (n) (x0 ) − δn fh(x
n
0)
≤ αh2 .
M. AIT ICHOU ESEFA 15/60
Exemple : Nous calculons à nouveau f 0 (1) où f (x) = x 4 . Cette
fois, nous utilisons la méthode des différences centrées.
f (x+h)−f (x−h)
Pas h 2h |E (h)|
10−1 4.0400000000000018 0.0400000000000018
10−2 4.0004000000000035 0.0004000000000035
10−3 4.0000039999997234 0.0000039999997234
10−4 4.0000000399986746 0.0000000399986746
10−5 4.0000000003925784 0.0000000003925784
10−6 3.9999999999484892 0.0000000000515108
10−7 4.0000000001150227 0.0000000001150227
10−8 3.9999999867923464 0.0000000132076536
10−9 4.0000001089168791 0.0000001089168791
M. AIT ICHOU ESEFA 16/60
Extrapolation de Richardson
Jusqu’à présent, nous n’avons pu obtenir une estimation
satisfaisante de la dérivée d’une fonction. En effet, malgré un calcul
en double précision (avec environ 16 décimales correctes), nous ne
pouvons obtenir une approximation de la dérivée ayant plus de 11
décimales correctes. Dans cette section, nous introduisons la
technique d’extrapolation de Richardson qui va nous permettre de
calculer une approximation de la dérivée avec 16 décimales
correctes. La technique exposée ici est en réalité extrêmement
générale et pourra s’appliquer également au cas du calcul d’une
intégrale définie. C’est pourquoi nous lui consacrons une section et
nous l’exposons dans sa généralité.
M. AIT ICHOU ESEFA 17/60
Considérons une quantité N que l’on souhaite évaluer. Considérons,
de plus, que nous disposons d’une série d’approximations M de N
pour différents pas h, h2 , h4 , h8 , . . . en progression géométrique.
M = N(h) + K1 h + K2 h2 + K3 h3 + · · · (7)
Maintenant, divisez h par 2 (doublez le nombre d’intervalles)
2 3
h h h h
M=N + K1 + K2 + K3 + ··· (8)
2 2 2 2
Pour se débarrasser du terme en h, il suffit d’effectuer 2*(8) - (7)
n 2 o
2M − M = 2N h2 − N(h) + {K1 h − K1 h} + K2 h2 − K2 h2
n 3 o
+ K3 h4 − K3 h3 + · · ·
h h 2 3
M = N +N − N(h) −K2 h2 − 3K3 h4 + · · ·
2 2
| {z }
N2 ( h)
M. AIT ICHOU ESEFA 18/60
h h h
N2 (h) ≡ N + N − N(h) = 2N − N(h)
2 2 2
Maintenant,
h2 h3
M = N2 (h) − K2 − 3K3 + ··· (9)
2 4
Réduire de moitié h (doubler le nombre d’intervalles) :
h 1 3
M = N2 − K2 h 2 − K3 h 3 + · · · (10)
2 8 32
Pour se débarrasser du terme en h2 , il suffit d’effectuer 4∗ (10)- (9)
h 3 3
4M − M = 3M = 4N2 − N2 (h) − K3 − K3 h 3 + · · ·
2 8 4
4 h 1 1
M = N2 − N2 (h) + K3 h3 + · · ·
3 2 3 8
| {z }
N3 ( h)
M. AIT ICHOU ESEFA 19/60
h
− N2 (h)
4 h 1 h N2 2
N3 (h) = N2 − N2 (h) = N2 +
3 2 3 2 3
Donc,
1
M = N3 (h) + K3 h3 + · · ·
8
4
L’approximation O h est donnée par :
N3 h2 − N3 (h)
h 8 h 1
N4 (h) = N3 + = N3 − N3 (h)
2 7 7 2 7
L’approximation O h5 est donnée par :
h
− N4 (h)
h N4 2 16 h 1
N5 (h) = N4 + = N4 − N4 (h)
2 15 15 2 15
M. AIT ICHOU ESEFA 20/60
On général :
Nj−1 h2 − Nj−1 (h)
h
Nj (h) = Nj−1 +
2 2j−1 − 1
Construction d’un tableau
M. AIT ICHOU ESEFA 21/60
Appliquer l’extrapolation de Richardson
Dans cette section, nous allons appliquer l’extrapolation de
Richardson au cas du calcul de la dérivée d’une fonction f . Pour ce
faire, nous partons de la formule de différences centrées
f (x + h) − f (x − h) f 000 (ξ) 2
f 0 (x) = − h . (11)
2h 3
Lors de la présentation de l’extrapolation de Richardson, nous
cherchions à approximer g . Cette fois, notre g est en réalité f 0 (x).
Remarquons également que, dans (11), il n’y a pas de terme en h.
On peut prouver qu’il en est ainsi de tout terme de puissance
impaire de h. Pour supprimer le terme en h2 de (11), il faut d’abord
considérer (11)) écrite pour h et pour h/2. On a ainsi
f (x + h) − f (x − h) f 000 (ξ) 2
f 0 (x) = − h (12)
2h 3
f x + h2 − f x − h2
0 f 000 (ξ) h2
f (x) = − (13)
h 3 4
M. AIT ICHOU ESEFA 22/60
A présent en effectuant (13) − 41 (12), on obtient une nouvelle
approximation de f 0 (x) d’ordre h4 qui s’écrit
f (x+ 2h )−f (x− 2h )
h − 14 f (x+h)−f
2h
(x−h)
f 0 (x) ≈ .
1 − 14
Extrapolation de Richardson aux différences centrées pour
f (x) = x 4 en 1.
h N0 N1 N2
10−1 4.04
10−2 4.0004 4.000000000000000
10−3 4.00000399999972 3.99999999999972 3.99999999999972
M. AIT ICHOU ESEFA 23/60
Extrapolation de Richardson pour le calcul de f 0 (x) = e x en 0
h N0 N1 N2 N3
2−1 1.0421906109874948
2−2 1.0104492672326730 0.9998688193143991
2−3 1.0026062019289235 0.9999918468276737 1.0000000486618921
2−4 1.0006511688350699 0.9999994911371187 1.0000000007577483 0.9999999999973651
2−5 1.0001627683641381 0.9999999682071609 1.0000000000118303 0.9999999999999903
M. AIT ICHOU ESEFA 24/60
III. Intégration numérique
M. AIT ICHOU ESEFA 25/60
III. Intégration numérique
L’intégration numérique est un outil indispensable dans le métier
d’ingénieur. L’ordinateur en général ne sait pas calculer les
primitives d’une fonction et le calcul explicite d’une intégrale peut
R dx
être difficile, voire impossible, par exemple ln x n’a pas de
primitive sous la forme d’une fonction élémentaire. Nous nous
proposons, dans cette partie, de calculer numériquement des
intégrales définies. Dans la suite, f désigne une fonction réelle,
intégrable sur un intervalle [a, b], et nous cherchons à approcher
l’intégrale.
Z b
I (f ) = f (x)dx,
a
M. AIT ICHOU ESEFA 26/60
Définition
Une formule
R b de quadrature à n + 1 points pour l’intégrale
I (f ) = a f (x)dx est une approximation de la forme
n
X
I˜(f ) = (b − a) ωi f (xi ) ,
i=0
c’est-à-dire une somme pondérée de valeurs de f en des points
(xi )0,...,n de l’intervalle [a, b]. On dit que ces points sont les nœuds
de la formule de quadrature, et que les nombres ωi ∈ R sont ses
poids - même si les poids réels sont en fait les (b − a)ωi . Les poids
et les nouds dépendent de n mais pas de f .
Définition
Si a et b sont des points d’interpolations, alors la quadrature est
dite de tupe fermée sinon elle est dite de type ouverte.
M. AIT ICHOU ESEFA 27/60
Remarque Rb R1
En remarquant que : a f (x)dx = b−a b−a b+a
2 −1 f 2 t + 2 dt On
peut toujours ramener l’intégration sur [a, b]2 à une intégration sur
[−1, +1] qu’on peut prendre comme intervalle de référence.
M. AIT ICHOU ESEFA 28/60
1) Méthode des rectangles
Rb
La méthode historique, celle qui donne sa notation a f (x)dx est la
méthode des rectangles. On divise ainsi l’intervalle [a, b] en n
intervalles de taille dx.
On forme alors des rectangles dont l’aire cumulée approchera celle
de la courbe. Il y a trois possibilités pour construire un rectangle
entre les abscisses x et x + dx :
M. AIT ICHOU ESEFA 29/60
Méthode des rectangles
La méthode des rectangles consiste à :
- diviser l’intervalle [a, b] en n segments égaux. On obtient ainsi
(n + 1) points équidistants : On pose :
b−a
xi = a + ih, i = 0, 1, . . . , n avec h =
n
- approximer la surface de chaque "tranche" par un rectangle
(Figure).
M. AIT ICHOU ESEFA 30/60
Z xi
f (x)dx = (xi − xi−1 ) f (αi ) = hf (αi ) , αi ∈ [xi−1 , xi ]
xi−1
La fonction est donc remplacée par une constante (polynôme de
degré 0 ) sur chaque sous-intervalle. On peut prendre
• αi = xi (point à droite)
• αi = xi−1 (point à gauche)
• αi = 21 (xi−1 + xi ) (point à milieu)
La meilleur valeur est celle du point milieu. En additionnant la
somme des surfaces de tous les rectangles, on obtient :
Z b Z xn X n Z xi
f (x)dx = f (x)dx = f (αi ) dx
a x0 i=1 xi−1
n n
b−aX xi −1 + xi
X
R n (f ) = h f (αi ) = f
i=1
n i=1 2
Dans la figure précédente, on a choisi de construire le rectangle à
partir du point milieu de chaque sous-intervalle.
M. AIT ICHOU ESEFA 31/60
Calcul de l’erreur
Pour αi = xi (point à droite) et αi = xi−1 (point à gauche)
On admet que si f est de classe C 1 alors l’erreur commise par la
méthode des rectangles est majorée par l’inégalité suivante :
b
(b − a)2
Z
f (t)dt − Rn (f ) ≤ max f 0 .
a 2n [a,b]
Pour αi = 21 (xi−1 + xi ) (point à milieu)
On admet que si f est de classe C 2 alors l’erreur commise par la
méthode du point milieu est majorée par l’inégalité suivante :
b
(b − a)3
Z
f (t)dt − Rn (f ) ≤ max f 00 .
a 24n2 [a,b]
M. AIT ICHOU ESEFA 32/60
Preuve
Prenons f ∈ C 1 ([a, b]) | et on note M1 := max[a,b] |f 0 |. Soient
n > 1 | un entier (grand) et Ef (n) l’erreur commise dans la
méthode des rectangles. On dispose d’une subdivision (xi ) de
[a, b] | du type xi = a + i(b − a)/n | avec i = 0, . . . , n − 1 | et donc
b n−1
b−aX
Z
|Ef (n)| = f (x)dx − f (xi )
a n
i=0
Z b n−1
X Z xi+1
= f (x)dx − f (xi ) dx
a i=0 xi
n−1 Z
X xi+1
= (f (x) − f (xi )) dx
i=0 xi
n−1 Z xi+1
X M1 (b − a)2
6 M1 (x − xi ) dx = .
xi 2n
i=0
M. AIT ICHOU ESEFA 33/60
Preuve erreur : cas de point à milieu
On utiliser la formule de Taylor, centrée en xi0 = (xi + xi+1 ) /2 et à
l’ordre 2 , en supposant la fonction f deux fois continument
dérivable. Alors pour tout, il existe tel que
2
f (x) = f xi0 + x − xi0 f 0 xi0 + x − xi0 f 00 (ci )
et en intégrant sur l’intervalle [xi , xi+1 ], on obtient
Z xi+1 Z xi+1 Z xi+1
M2 2
(f (t) − f (xi0 )) dt ≤ f 0
(xi0 ) (t − xi0 ) dt + (t − xi0 ) dt
xi xi 2 xi
où M2 est un majorant de f 00 sur [a, b]. En faisant le changement de
variable u = t − xi0 , on obtient pour le premier terme du membre de droite
Z xi+1 Z h/2
(t − xi0 ) dt = udu = 0
xi −h/2
M. AIT ICHOU ESEFA 34/60
et pour le second
Z xi+1 2
Z h/2
t− xi0 dt = t 2 dt = h3 /12
xi −h/2
On est donc à nouveau en mesure de "recoller les morceaux" :
n−1 Z
X xi+1
|Ef (n)| ≤ (f (t) − f (xi0 )) dt ≤ nM2 h3 /24
i=0 xi
(b − a)3 M2
= (b − a)M2 h2 /24 =
24n2
On voit donc que cette fois, l’erreur est proportionnelle (pour une
fonction et un intervalle donnés) au carré de h. On dit qu’une telle
méthode est d’ordre 2 .
M. AIT ICHOU ESEFA 35/60
Exemple
R5
- Calculer 0 e sin x dx en prenant n = 5 ; Donner une majoration de
l’erreur.
- Calculer le nombre de segments qui permet d’avoir une précision
de 0.01.
xi−1 +xi
xi αi = 2 f (αi )
x0 = a = 0
x0 +x1
α1 = 2 = 0.5 1.6151
x1 = x0 + h = 1
x1 +x2
α2 = 2 = 1.5 2.7115
x2 = x1 + h = 2
x2 +x3
α3 = 2 = 2.5 1.8193
x3 = x2 + h = 3
x3 +x4
α4 = 2 = 3.5 0.7041
x4 = x3 + h = 4
x4 +x5
α5 = 2 = 4.5 0.3762
x5 = x4 + h = 5 = b
M. AIT ICHOU ESEFA 36/60
Z 5 n
X
e sin x dx = h f (αi ) = 1(1.6151+2.7115+1.8193+0.7041+0.3762)
0 i=1
= 7.2263
00
sin(x)
, f (x) = −e sin(x) sin2 (x) + sin(x) − 1 ,
f (x) = e
M2 = sup f 00 (x) = e
|{z}
x∈[0,5]
5 n
(b − a)3 (5 − 0)3
Z X
f (x)dx − h f (αi ) ≤ M 2 = e = 0.5663
0 24n2 24 × 52
i=1
(b−a)3
Pour avoir une précision de 0.01, il faut avoir : 24n2
M2 ≤ 0.01 Ce
q
3
qui donne n ≥ M24×0.01
2 (b−a)
= 37.6, soit n = 38
M. AIT ICHOU ESEFA 37/60
Code Python
import m a t p l o t l i b . pyplot as p l t
i m p o r t numpy a s np
def fonction ( x ) :
r e t u r n np . exp ( np . s i n ( x ) )
def rectangle ( f , a , b , n) :
I = 0
dx = ( b−a ) / n
x = ( a+b ) / 2
f o r i in range (n ) :
I=I+ f ( x ) ∗ dx
x=x+ dx
return I
p r i n t ( rectangle ( fonction , 0 , 5 , 5))
#V a l e u r r e e l l e de l ’ i n t e g r a l e : 7 . 4 2
M. AIT ICHOU ESEFA 38/60
2) Méthode des Trapèzes
La méthode des Trapèzes consiste à :
• diviser l’intervalle [a, b] en n segments égaux. On obtient ainsi
(n + 1) points équidistants.
On pose : xi = a + ih, i = 0, 1, . . . , n avec h = b−a
n .
• approximer la surface de chaque "tranche" par un trapèze
construit à partir des valeurs de la fonction aux bornes de
chaque sous-intervalle (Figure ).
M. AIT ICHOU ESEFA 39/60
Z xi
f (xi−1 ) + f (xi )
f (x)dx = h
xi−1 2
La fonction f est donc remplacée par une droite (polynôme de
degré 1) sur chaque sous-intervalle. En additionnant la somme des
surfaces de tous les trapèzes, on obtient :
Z b Z xn n Z
X xi
f (x)dx = f (x)dx = f (x)dx
a x0 i=1 xi−1
Z b
h h
f (x)dx = (f (x0 ) + f (x1 )) + (f (x1 ) + f (x2 )) + · · ·
a 2 2
h
(f (xn−1 ) + f (xn ))
2
n−1
" #
h X
Tn (f ) = f (a) + f (b) + 2 f (xi )
2
i=1
M. AIT ICHOU ESEFA 40/60
Calcul de l’erreur
On peut montrer que pour la formule des trapèzes, l’erreur est
donnée par :
(b − a)3
|I (f ) − Tn (f )| ≤ M2
12n2
avec M2 = max[a,b] |f 00 (x)|
M. AIT ICHOU ESEFA 41/60
Preuve
Pour majorer l’erreur de la méthode des trapèzes, nous allons faire
comme pour la méthode des rectangles. Supposons f de classe C 2
(donc f "’ est bornée sur [a, b] par une constante M. L’aire du
trapèze i est
f (xi+1 ) − f (xi )
Ti (f ) = (xi+1 − xi )
2
de sorte que
xi+1
f (xi+1 ) − f (xi )
Z
εn,i = f (t)dt − (xi+1 − xi ) .
xi 2
Cette fois, on considère
Z x
f (x) − f (xi )
E (x) = f (t)dt − (x − xi ) .
xi 2
M. AIT ICHOU ESEFA 42/60
Là, encore, majorer E sur[a, b] nous permet de majorer εn,i .
Essayons comme tout-à-l’heure de dériver E .
1
E 0 (x) = f (x) − f (xi ) − (x − xi ) f 0 (x) .
2
Cela ne suffit pas, dérivons une nouvelle fois.
1 0 (x − xi ) f 00 (x)
E 00 (x) = f (x) − f 0 (x) − (x − xk ) f 00 (x) = −
.
2 2
On a alors puisque f ” est bornée
M (x − xi )
E 00 (x) ≤ .
2
Il ne nous reste plus qu’à intégrer deux fois sur [xi , x] (sachant que
E 0 (xi ) et E (xi ) sont nuls) pour obtenir une majoration.
M. AIT ICHOU ESEFA 43/60
M(x−xi )2
On obtient |E 0 (x)| ≤ 4 et
M (x − xi )3
|E (x)| ≤ .
12
Et donc en évaluant en xi+1 , on obtient
M (xi+1 − xi )3 M(b − a)3
|εn,i | ≤ = .
12 12n3
Ce résultat nous permet de majorer l’erreur εn :
n−1 n−1
X X M(b − a)3
|Ef (n)| 6 |εn,i | 6 .
12n3
i=0 i=0
Et donc :
M(b − a)3
|Ef (n)| 6 .
12n2
|Ef (n)| −→ 0 donc la méthode des trapèzes converge bien vers
n→+∞
I (f ) et elle a une convergence en O n12 . Elle a donc une meilleure
vitesse de convergence que la méthode des rectangles.
M. AIT ICHOU ESEFA 44/60
Exemple
R5
- Calculer 0 e sin x dx en prenant n = 5 ; Donner une majoration de
l’erreur.
- Calculer le nombre de segments qui permet d’avoir une précision
de 0.01.
xi f (xi )
x0 =a=0 1
x1 = x0 + h = 1 2.3198
x2 = x1 + h = 2 2.4826
x3 = x2 + h = 3 1.1516
x4 = x3 + h = 4 0.4692
x5 = x4 + h = 5 = b 0.3833
M. AIT ICHOU ESEFA 45/60
D’après la formule des trapèzes, on a :
Z 5
h
f (x)dx = [f (0) + f (5) + 2(f (1) + f (2) + f (3) + f (4))] = 7.1147
0 2
n−1
Z 5 " #
h X (b − a)3
f (x)dx − f (a) + f (b) + 2 f (xi ) ≤ M2
0 2 12n2
i=1
(5 −0)3
= e = 1.1326
12 × 52
3
Pour avoir une précision de 0.01 , il faut avoir : (b−a)
12n2
M2 ≤ 0.01
q
M2 (b−a)3
Ce qui donne n ≥ 12×0.01 = 53.2, soit n = 54
M. AIT ICHOU ESEFA 46/60
Code Python
import m a t p l o t l i b . pyplot as p l t
i m p o r t numpy a s np
def fonction ( x ) :
return np . exp ( np . s i n ( x ) )
def trapeze ( f , a , b , n) :
I = 0
dx = ( b−a ) / n
x = a
f o r i in range (n) :
I += ( f ( x ) + f ( x + dx ) ) ∗ dx / 2
x += dx
return I
p r i n t ( trapeze ( fonction , 0 , 5 , 5))
#V a l e u r r e e l l e de l ’ i n t e g r a l e : 7 . 1 1 4 7
M. AIT ICHOU ESEFA 47/60
3) Méthode de Simpson
La méthode de Simpson consiste à :
• diviser l’intervalle [a, b] en n segments égaux avec n un
nombre pair (n = 2m). On obtient ainsi (2m + 1) points
équidistants xi = a + ih, i = 0, 1, . . . , n avec h = b−a
n .
• approximer la fonction sur chaque "tranche" par une parabole
construite à partir de trois points consécutifs (Figure ).
M. AIT ICHOU ESEFA 48/60
Z b Z x2 Z x4 Z x2m
f (x)dx = f (x)dx + f (x)dx + · · · + f (x)dx
a x0 x2 x2m−2
Entre x0 et x2 et passant par x1 , il y a trois points d’interpolation,
on peut donc remplacer la fonction f (x) par un polynôme de degré
2. D’après la forme de Lagrange, ce polynôme s’écrit :
P2 (x) = f (x0 ) L0 (x) + f (x1 ) L1 (x) + f (x2 ) L2 (x)
avec
(x − x1 ) (x − x2 ) (x − x0 ) (x − x2 ) (x − x0 ) (x − x1 )
L0 (x) = , L1 (x) = , L2 (x) =
(x0 − x1 ) (x0 − x2 ) (x1 − x0 ) (x1 − x2 ) (x2 − x0 ) (x2 − x1
Si pose : x − x1 = th, alors :
x − x2 = (x − x1 ) − (x2 − x1 ) = th − h = h(t − 1)
x − x0 = (x − x1 ) + (x1 − x0 ) = th + h = h(t + 1)
M. AIT ICHOU ESEFA 49/60
Ce qui donne :
1 2 1 2
L1 (x) = 1 − t 2 , L2 (x) =
L0 (x) = t −t , t +t
2 2
Z x2 Z x2
f (x)dx = P2 (x)dx
x0 x0
En remplaçant P2 (x) par son expression on obtient :
Z x2 Z 1 Z 1
f (x0 ) 2
1 − t 2 dt+
f (x)dx = h t − t dt + f (x1 ) h
x0 2 −1 −1
Z 1
f (x2 )
t 2 − t dt
h
2 −1
M. AIT ICHOU ESEFA 50/60
Ce qui donne après calcul :
Z x2
f (x0 ) 4f (x1 ) f (x2 )
f (x)dx = h+ h+ h
x0 3 3 3
h
= (f (x0 ) + 4f (x1 ) + f (x2 ))
3
m m−1
!
h X X
S(f ) = f (a) + f (b) + 4 f (x 2i−1 ) + 2 f (x 2i )
3
i=1 i=1
M. AIT ICHOU ESEFA 51/60
Calcul de l’erreur
On peut montrer que pour la formule de Simpson, l’erreur est
donnée par :
(b − a)5
|I (f ) − S(f )| ≤ M4
2880n4
Avec
M4 = max f (4) (x)
[a,b]
M. AIT ICHOU ESEFA 52/60
Preuve
Pour la méthode de Simpson, le calcul de l’erreur est un peu plus
long à faire. Cette fois, nous considérons f de classe C 4 . L’intégrale
du i ème polynôme considéré est
Z xi+1
xi+1 − xi f (xi ) + f (xi+1 )
Li (t)dt = + 2f (c)
xi 3 2
et donc l’erreur à considérer est
Z xi+1
xi+1 − xi f (xk ) + f (xi+1 )
εn,i = f (t)dt − + 2f (xi,5 ) .
xk 3 2
En considérant c = xi +x2 i+1 = 2δ et le point milieu xi,5 , nous
pouvons transformer l’expression précédente de la manière suivante.
Z xi,5 +c
c
εn,i = f (t)dt − (f (xi,5 − c) + f (xi,5 + c) + 4f (xi,5 )) .
xi,5 −c 3
M. AIT ICHOU ESEFA 53/60
On va maintenant considérer (toujours sur [a, b] )
Z xi,5 +x
x
E (x) = f (t)dt − (f (xi,5 − x) + f (xi,5 + x) + 4f (xi,5 )) .
xi,5 −x 3
Et on dérive (cette fois, il sera nécessaire de dériver trois fois).
2 x 0 4
E 0 (x) = (f (xi,5 + x) + f (xi,5 − x)) − f (xi,5 + x) − f 0 (xi,5 − x) − f (xi,5 ) .
3 3 3
00 1 0 0 x 00 00
E (x) = f (xi,5 + x) − f (xi,5 − x) − f (xi,5 + x) + f (xi,5 − x) .
3 3
x
E (3) (x) = f (3) (xi,5 − x) − f (3) (xi,5 + x) .
3
M. AIT ICHOU ESEFA 54/60
On peut maintenant utiliser notre propriété (car on a supposé f de
classe C 4 ). Donc, il existe une constante M telle que
| f (3) (xi,5 − x) − f (3) (xi,5 + x) | ≤ M| (xi,5 − x) − (xi,5 + x) | =
2M|x |. On a alors
2M|x|2
E (3) (x) ≤ .
3
Il nous reste à intégrer trois fois pour obtenir la majoration de E .
En faisant ces trois intégrations sur [0, x] (on a E (0), E 0 (0) et
E 00 (0) nuls), on obtient successivement
3 Mx 4
|E 00 (x)| ≤ 2Mx 0
9 , |E (x)| ≤ 18 et finalement
M|x|5
|E (x)| ≤ .
90
M. AIT ICHOU ESEFA 55/60
En évaluant E en c, on obtient
M (xi+1 − xi )5 M(b − a)5
εn,i ≤ = .
25 ∗ 90 2880n5
On peut maintenant majorer l’erreur,
n−1 n−1
X X M(b − a)5
|Ef (n)| ≤ |εn,i | ≤ .
2880n5
i=0 i=0
On obtient finalement
M(b − a)5
|Ef (n)| ≤ .
2880n4
On a |Ef (n)| −→ 0, donc la méthode de simpson converge bien.
n→+∞
De plus, elle a une convergence en O n14 (donc elle converge plus
vite que les autres lorsqu’on diminue le pas).
M. AIT ICHOU ESEFA 56/60
Exemple
R5
-Calculer 0 e sin x dx en partageant l’intervalle [0, 5] en 4 segments ;
Donner une majoration de l’erreur.
-Calculer le nombre de segments qui permet d’avoir une précision
de 0.01.
Pour la méthode de Simpson, le nombre de segments doit être
pair, c’est la raison pour laquelle on a pris n = 4 et non pas n = 5
comme pour les cas précédents.
b−a 5−0
h= = = 1.25, n = 2m = 4, ce qui donne m = 2
n 4
xi f (xi )
x0 =a=0 1
x1 = x0 + h = 1.25 2.5831
x2 = x1 + h = 2.5 1.8193
x3 = x2 + h = 3.75 1.5646
x4 = x3 + h = 5 = b 0.3833
M. AIT ICHOU ESEFA 57/60
D’après la formule de Simpson, on a :
2 1
!
Z 5
h X X
f (x)dx = f (a) + f (b) + 4 f (x2i−1 ) + 2 f (x2i )
0 3
i=1 i=1
Z 5
1.25
f (x)dx = (f (x0 ) + f (x4 ) + 4 (f (x1 ) + f (x3 )) + 2f (x2 )) = 7.3387
0 3
2 1
!
b
(5 − 0)5
Z
h X X
f (x)dx − f (a) + f (b) + 4 f (x2i−1 ) + 2 f (x2i ) ≤ M4
a 3 18044
i=1 i=1
En dérivant 4 fois la fonction f (x) = e sin x , on obtient :
f (4) (x) = e sin(x) sin4 (x) + 6 sin3 (x) + 5 sin2 (x) − 5 sin(x) − 3 ,
M4 = sup f (4) (x) = 4e
|{z}
x∈[0,4]
5 n
(b − a)5 (5 − 0)5
Z X
f (x)dx − h f (αi ) ≤ M 2 = 4e = 0.7374
0 24n2 180 × 44
i=1
M. AIT ICHOU ESEFA 58/60
- Pour avoir une précision de 0.01, il faut avoir :
(b − a)5
M4 ≤ 0.01
180n4
Ce qui donne : s
4 M4 (b − a)5
n≥ = 11.7,
180 × 0.01
soit n = 12 Rappelons que n doit être pair, le premier entier naturel
pair ≥ 11.7 est bien 12 . Ce qui montre que la méthode de Simpson
est plus précise comparée aux méthodes précédentes.
M. AIT ICHOU ESEFA 59/60
Code Python
import m a t p l o t l i b . pyplot as p l t
i m p o r t numpy a s np
def fonction ( x ) :
return np . exp ( np . s i n ( x ) )
def simpson ( f , a , b , n ) :
I = 0
dx = ( b−a ) / n
x = a
f o r i in range (n) :
I += ( f ( x ) + f ( x + dx ) + 4 ∗ f ( x + dx / 2 ) ) ∗ dx
x += dx
return I
p r i n t ( simpson ( f on c ti on , 0 , 5 , 5))
#V a l e u r r e e l l e de l ’ i n t e g r a l e : 7 . 1 8 9 1
M. AIT ICHOU ESEFA 60/60