Integration numérique
June 22, 2025
Ce chapitre fait partie de la partie de l’ingénierie numérique.
On se propose à calculer une approximation de l’intégrale définie par:
𝑏
𝐼𝑎,𝑏 (𝑓) = ∫ 𝑓(𝑥)𝑑𝑥
𝑎
où f est une fonction continue sur le segment [𝑎, 𝑏] à valeurs dans ℝ
0.1 Introduction
Dans certains cas très limités, une telle intégrale peut être calculée analytiquement (à la main).
Cependant, ce n’est que très rarement possible, et le plus souvent un des cas suivants se présente: -
Le calcul analytique est long, compliqué. - Le résultat de l’intégrale est une fonction compliquée qui
fait appel à d’autres fonctions elles-même longues à évaluer - Cette intégrale n’a pas d’expression
analytique
Dans tous ces cas, on préférera calculer numériquement la valeur de l’intégrale 𝐼𝑎,𝑏 (𝑓)
0.1.1 Définitions et notations
Nous allons nous intéresser dans ce cours à certaines méthodes de quadrature qui consistent à
approcher la valeur de l’intégrale par une somme pondérée finie de valeurs de la fonction f en des
points choisis ; en d’autres termes ces méthodes fournissent une approximation de 𝐼𝑎,𝑏 (𝑓) par la
quantité :
𝑝
𝑝
𝐼𝑎,𝑏 (𝑓) = ∑ 𝛼𝑖 𝑓(𝑥𝑖 )
𝑖=0
Les coefficients $�_0,…,�_p $ étant des réels et dépendants de l’entier p et des points 𝑥0 , ..., 𝑥𝑝
appartenant à [𝑎, 𝑏].
L’erreur de quadrature est la quantité :
𝑝
𝐸𝑎,𝑏 (𝑓) = |𝐼𝑎,𝑏 (𝑓) − 𝐼𝑎,𝑏 (𝑓)|
On dira qu’une méthode de quadrature est d’ordre k quand l’erreur commise est nulle lorsque f
est un polynôme de degré inférieur ou égal à k.
1
0.2 Méthode du rectangle
La méthode de quadrature du rectangle est la plus simple qui soit : elle consiste à approcher
la fonction f par la valeur qu’elle prend en un point de l’intervalle [𝑎, 𝑏], en général une de ses
extrémités.
0.2.1 Méthode du rectangle gauche
Si on choisit pour unique nœud 𝑎0 = 𝑎 et pour poids 𝛼0 = 𝑏 − 𝑎, ceci conduit à approcher $
I_{a,b}(f)$ par :
0
𝐼𝑎,𝑏 (𝑓) = (𝑏 − 𝑎)𝑓(𝑎)
[1]: def RG(f,a,b):
return (b-a)*f(a)
Exemple
2
∫ 2𝑥 + 1 𝑑𝑥 = [𝑥2 + 𝑥]20 = 6
0
[2]: f=lambda x: 2*x+1
[3]: RG(f,0,2)
[3]: 2
0.2.2 Méthode du rectangle droit
Si on choisit pour unique nœud 𝑎0 = 𝑏 et pour poids 𝛼0 = 𝑏 − 𝑎, ceci conduit à approcher $
I_{a,b}(f)$ par :
0
𝐼𝑎,𝑏 (𝑓) = (𝑏 − 𝑎)𝑓(𝑏)
[4]: def RD(f,a,b):
return (b-a)*f(b)
[5]: RD(f,0,2)
[5]: 10
0.2.3 Théorème
La méthode du rectangle est d’ordre 0, et si 𝑓 est de classe 𝒞1 , l’erreur de quadrature vérifie :
(𝑏 − 𝑎)2
|𝐸𝑎,𝑏 (𝑓)| ≤ 𝑀1
2
où 𝑀1 est un majorant de |𝑓 ′ | sur l’intervalle [𝑎, 𝑏]
2
Preuve :
• Si 𝑓 est un polynôme constant, on pose 𝑓(𝑥) = 𝜆 et dans ce cas :
𝑏
0
𝐼𝑎,𝑏 (𝑓) = ∫ 𝜆𝑑𝑡 = (𝑏 − 𝑎)𝜆 = (𝑏 − 𝑎)𝑓(𝑎) = 𝐼𝑎,𝑏 (𝑓)
𝑎
ce qui montre que la méthode des rectangles est d’ordre 0. - Si f est une fonction de classe 𝒞1 ,
l’erreur commise vaut :
𝑏 𝑏
𝐸𝑎,𝑏 (𝑓) = ∫ 𝑓(𝑡)𝑑𝑡 − (𝑏 − 𝑎)𝑓(𝑎) = ∫ (𝑓(𝑡) − 𝑓(𝑎))𝑑𝑡
𝑎 𝑎
donc $|E_{a,b}(f)|��_a ^b|f(t)-f(a)|dt $
Fixons 𝑡 ∈]𝑎, 𝑏] et considérons la fonction 𝑔 ∶ 𝑥 ⟶ 𝑓(𝑥) − 𝑓(𝑎) − 𝐾(𝑥 − 𝑎), telle que K est choisie de
sorte que 𝑔(𝑡) = 0. g est de classe 𝒞1 et vérifie 𝑔(𝑎) = 𝑔(𝑡) = 0 donc d’après le théorème de Rolle il
existe 𝑐 ∈]𝑎, 𝑡[ tel que 𝑔′ (𝑐) = 0, ce qui signifie que 𝐾 = 𝑓 ′ (𝑐).On a donc 𝑓(𝑡) − 𝑓(𝑎) = 𝑓 ′ (𝑐)(𝑡 − 𝑎),
ce qui prouve la majoration :|𝑓(𝑡) − 𝑓(𝑎)| ≤ 𝑀1 (𝑡 − 𝑎). On en déduit :
𝑏
(𝑏 − 𝑎)2
|𝐸𝑎,𝑏 (𝑓)| ≤ 𝑀1 ∫ (𝑡 − 𝑎)𝑑𝑡 ≤ 𝑀1
𝑎 2
0.2.4 Méthode du point milieu
Une amélioration très simple de la méthode du rectangle consiste à approcher la fonction 𝑓 par la
valeur qu’elle prend au point milieu de l’intervalle [𝑎, 𝑏], autrement dit à choisir pour unique nœud
𝑥0 = 𝑎+𝑏
2 = 𝑤 et pour poids 𝛼0 = (𝑏 − 𝑎), ce qui conduit à approcher $ I_{a,b}(f)$ par :
0
𝐼𝑎,𝑏 (𝑓) = (𝑏 − 𝑎)𝑓(𝑤)
[6]: def PM(f,a,b):
m=(a+b)/2
return (b-a)*f(m)
[7]: g=lambda x: x**2
[8]: PM(f,0,2)
[8]: 6.0
[9]: PM(g,0,1)
[9]: 0.25
3
0.2.5 Théorème
La méthode du point milieu est d’ordre 1, et si 𝑓 est de classe 𝒞2 , l’erreur de quadrature vérifie :
(𝑏 − 𝑎)3
|𝐸𝑎,𝑏 (𝑓)| ≤ 𝑀2
24
où 𝑀2 est un majorant de |𝑓 ″ | sur l’intervalle [𝑎, 𝑏]
Preuve :
• Si 𝑓 est un polynôme de degré inférieur ou égal à 1, on pose 𝑓(𝑥) = 𝑢𝑥 + 𝑣 et dans ce cas :
𝑏
𝑢 2 𝑎+𝑏
𝐼𝑎,𝑏 (𝑓) = ∫ (𝑢𝑡 + 𝑣)𝑑𝑡 = (𝑏 − 𝑎2 ) + 𝑣(𝑏 − 𝑎) = (𝑏 − 𝑎)(𝑢 0
+ 𝑣) = 𝐼𝑎,𝑏 (𝑓)
𝑎 2 2
ce qui montre que la méthode du point milieu est d’ordre 1. - Si f est une fonction de classe 𝒞2 ,
l’erreur commise vaut :
𝑏 𝑏
𝐸𝑎,𝑏 (𝑓) = ∫ 𝑓(𝑡)𝑑𝑡 − (𝑏 − 𝑎)𝑓(𝑤) = ∫ (𝑓(𝑡) − 𝑓(𝑤))𝑑𝑡
𝑎 𝑎
donc
𝑏
|𝐸𝑎,𝑏 (𝑓)| ≤ ∫ |𝑓(𝑡) − 𝑓(𝑤)|𝑑𝑡
𝑎
Fixons 𝑡 ≠ 𝑤 ∈ [𝑎, 𝑏] et considérons la fonction
(𝑥 − 𝑤)2
𝑔 ∶ 𝑥 ⟶ 𝑓(𝑥) − 𝑓(𝑤) − (𝑥 − 𝑤)𝑓 ′ (𝑤) − 𝐾
2
, telle que K est choisie de sorte que 𝑔(𝑡) = 0. On a 𝑔(𝑤) = 𝑔(𝑡) = 0 donc d’après le théorème de
Rolle il existe 𝑐, dans l’intervalle à extrémité 𝑡 et 𝑤 tel que 𝑔′ (𝑐) = 0.
Mais 𝑔′ (𝑥) = 𝑓 ′ (𝑥) − 𝑓 ′ (𝑤) − 𝐾(𝑥 − 𝑤), donc 𝑔′ (𝑤) = 0; on peut donc de nouveau appliquer le
théorème de Rolle entre 𝑐1 et 𝑤 et affirmer l’existence d’un réel 𝑐2 dans l’intervalle à extrémité 𝑤
et 𝑐1 tel que 𝑔"(𝑐2 ) = 0, égalité qui s’écrit :𝑓"(𝑐2 ) − 𝐾 = [Link] qui signifie que 𝐾 = 𝑓"(𝑐).
2
Ainsi, l’égalité 𝑔(𝑡) = 0 peut aussi s’écrire 𝑓(𝑡) − 𝑓(𝑤) − (𝑡 − 𝑤)𝑓 ′ (𝑤) = 𝑓"(𝑐2 ) (𝑡−𝑤)
2 ,
𝑏 𝑏 (𝑡−𝑤)2 3
Ainsi on a la majoration :| ∫𝑎 (𝑓(𝑡) − 𝑓(𝑤) − (𝑡 − 𝑤)𝑓 ′ (𝑤))𝑑𝑡| ≤ 𝑀2 ∫𝑎 2 𝑑𝑡 = 𝑀2 (𝑏−𝑎)
24 .
𝑏
Comme ∫𝑎 (𝑡 − 𝑤)𝑑𝑡 = 0, On en déduit donc que :
(𝑏 − 𝑎)3
|𝐸𝑎,𝑏 (𝑓)| ≤ 𝑀2
24
4
0.2.6 Méthode du trapèze
La méthode du trapèze consiste à approcher sur [𝑎, 𝑏] la fonction 𝑓 par la fonction affine 𝑓 joignant
les points (𝑎, 𝑓(𝑎)) et (𝑏, 𝑓(𝑏)). Il est facile d’obtenir l’expression de 𝑓 [𝑎, 𝑏]
𝑓(𝑏) − 𝑓(𝑎) 𝑏−𝑥 𝑥−𝑎
𝑓(𝑥) = 𝑓(𝑎) + (𝑥 − 𝑎) = 𝑓(𝑎) + 𝑓(𝑏)
𝑏−𝑎 𝑏−𝑎 𝑏−𝑎
𝑏
ce qui conduit à approcher ∫𝑎 (𝑓) par
𝑏 𝑏
1 𝑏−𝑡 𝑡−𝑎 𝑓(𝑎) + 𝑓(𝑏)
𝐼𝑎,𝑏 (𝑓) = 𝑓(𝑎) ∫ 𝑑𝑡 + 𝑓(𝑏) ∫ 𝑑𝑡 = (𝑏 − 𝑎)
𝑎 𝑏−𝑎 𝑎 𝑏 − 𝑎 2
Il s’agit donc d’une méthode de quadrature à deux nœuds 𝑎0 = 𝑎 et 𝑎1 = 𝑏 avec les poids 𝛼0 =
𝛼1 = 𝑏−𝑎2
[10]: def trapeze(f,a,b):
return (b-a)*(f(a)+f(b))/2
[11]: trapeze(f,0,2)
[11]: 6.0
[12]: trapeze(g,0,1)
[12]: 0.5
0.2.7 Théorème
La méthode des trapèzes est d’ordre 1, et si 𝑓 est de classe 𝒞2 , l’erreur de quadrature vérifie :
(𝑏 − 𝑎)3
|𝐸𝑎,𝑏 (𝑓)| ≤ 𝑀2
12
où 𝑀2 est un majorant de |𝑓 ″ | sur l’intervalle [𝑎, 𝑏]
Preuve :
1
• Si 𝑓 est un polynôme de degré inférieur ou égal à 1, alors 𝑓 = 𝑓, donc 𝐼𝑎,𝑏 (𝑓) = 𝐼𝑎,𝑏 (𝑓)
ce qui montre que la méthode du trapèze est d’ordre 1. - Si f est une fonction de classe 𝒞2 , l’erreur
commise vaut :
𝑏
𝐸𝑎,𝑏 (𝑓) = ∫ (𝑓(𝑡) − 𝑓(𝑡))𝑑𝑡
𝑎
Fixons 𝑡 ∈]𝑎, 𝑏[ et considérons la fonction 𝑔 ∶ 𝑥 ⟶ 𝑓(𝑥) − 𝑓(𝑥) − 𝐾 (𝑥−𝑎)(𝑥−𝑏)
2 , telle que K est choisie
de sorte que 𝑔(𝑡) = 0
5
On a 𝑔(𝑎) = 𝑔(𝑏) = 𝑔(𝑡) = 0 donc d’après le théorème de Rolle il existe 𝑐1 ∈]𝑎, 𝑡[ et 𝑐2 ∈]𝑡, 𝑏[ tels que
𝑔′ (𝑐1 ) = 𝑔′ (𝑐2 ) = 0. Toujours d’après le théorème de Rolle, il existe 𝑐3 ∈]𝑐1 , 𝑐2 [ tel que 𝑔"(𝑐3 ) = 0.
Mais 𝑔"(𝑥) = 𝑓"(𝑥) − 𝐾 donc 𝐾 = 𝑓"(𝑐3 ).
Ainsi,𝑔(𝑡) = 0 ⟺ 𝑓(𝑡) − 𝑓(𝑡) = 𝑓"(𝑐3 ) (𝑡−𝑎)(𝑡−𝑏)
2 ce qui implique :
𝑏
(𝑡 − 𝑎)(𝑡 − 𝑏) (𝑏 − 𝑎)3
|𝐸𝑎,𝑏 (𝑓)| ≤ 𝑀2 ∫ 𝑑𝑡 = 𝑀2
𝑎 2 12
0.3 Méthode composite
0.3.1 Méthode du rectangle composite
La méthode du rectangle composite consiste à considérer une subdivision (𝑎0 , 𝑎1 , ..., 𝑎𝑛 ) de [𝑎, 𝑏] de
pas régulier et à utiliser la linéarité de l’intégrale :
𝑏 𝑛−1 𝑎𝑘+1
𝐼𝑎,𝑏 (𝑓) = ∫ 𝑓(𝑡)𝑑𝑡 = ∑ ∫ 𝑓(𝑡)𝑑𝑡
𝑎 𝑘=0 𝑎𝑘
pour approcher chacune des intégrales $ I_{a_k,a_{k+1}}(f)$ par
𝑏−𝑎 𝑏−𝑎
(𝑎𝑘+1 − 𝑎𝑘 )𝑓(𝑎𝑘 ) = 𝑓(𝑎 + 𝑘 ).
𝑛 𝑛
Autrement dit, cette méthode consiste à approcher $ I_{a,b}(f)$ par :
𝑏 − 𝑎 𝑛−1 𝑏−𝑎
∑ 𝑓(𝑎 + 𝑘 )
𝑛 𝑘=0 𝑛
[13]: def RC(f,a,b,n):
s=0
h=(b-a)/n
for k in range(n):
s+=f(a+k*h)
return h*s
[14]: RC(f,0,2,100)
[14]: 5.96
0.3.2 Théorème :
Si 𝑓 est de classe 𝒞1 , l’erreur de la méthode du rectangle composite vérifie :
(𝑏 − 𝑎)2
|ℰ𝑛 (𝑓)| ≤ 𝑀1
2𝑛
où 𝑀1 est un majorant de |𝑓 ′ | sur l’intervalle [𝑎, 𝑏]
6
𝑛−1
Preuve : En effet, |ℰ𝑛 (𝑓)| ≤ ∑𝑘=0 |𝐸𝑎𝑘 ,𝑎𝑘+1 (𝑓)|
2
Or, |𝐸𝑎𝑘 ,𝑎𝑘+1 (𝑓)| ≤ 𝑀1 (𝑏−𝑎)
2𝑛2
Donc
(𝑏 − 𝑎)2
|ℰ𝑛 (𝑓)| ≤ 𝑀1
2𝑛
0.3.3 Méthode du point milieu composite
Elle consiste à appliquer la méthode du point milieu à une subdivision de pas régulier du segment
𝑏
[𝑎, 𝑏], ce qui revient à approcher 𝐼𝑎,𝑏 (𝑓) = ∫𝑎 𝑓(𝑡)𝑑𝑡 par :
𝑏 − 𝑎 𝑛−1 1 𝑏−𝑎
∑ 𝑓(𝑎 + (𝑘 + ) )
𝑛 𝑘=0 2 𝑛
[15]: def PMC(f,a,b,n):
h=(b-a)/n
s=0
for k in range(n):
s+=f(a+(k+1/2)*h)
return h*s
[16]: PMC(f,0,2,1)
[16]: 6.0
[17]: PMC(g,0,1,110)
[17]: 0.33332644628099173
0.3.4 Théorème :
Si 𝑓 est de classe 𝒞2 , l’erreur de la méthode du point milieu composite vérifie :
(𝑏 − 𝑎)3
|ℰ𝑛 (𝑓)| ≤ 𝑀2
24𝑛2
où 𝑀2 est un majorant de |𝑓"| sur l’intervalle [𝑎, 𝑏]
𝑛−1
Preuve : En effet, |ℰ𝑛 (𝑓)| ≤ ∑𝑘=0 |𝐸𝑎𝑘 ,𝑎𝑘+1 (𝑓)|
3
Or, |𝐸𝑎𝑘 ,𝑎𝑘+1 (𝑓)| ≤ 𝑀2 (𝑏−𝑎)
24𝑛3
Donc
(𝑏 − 𝑎)3
|ℰ𝑛 (𝑓)| ≤ 𝑀2
24𝑛2
7
0.3.5 Méthode du trapèze composite
Elle consiste à appliquer la méthode du trapèze à une subdivision de pas régulier du segment [𝑎, 𝑏],
𝑏
ce qui revient à approcher 𝐼𝑎,𝑏 (𝑓) = ∫𝑎 𝑓(𝑡)𝑑𝑡 par :
(𝑏 − 𝑎) 𝑛−1 𝑓(𝑎𝑘 ) + 𝑓(𝑎𝑘+1 ) (𝑏 − 𝑎) 𝑓(𝑎) + 𝑓(𝑏) 𝑛−1
∑ = ( + ∑ 𝑓(𝑎𝑘 ))
𝑛 𝑘=0
2 𝑛 2 𝑘=1
[18]: def TRC(f,a,b,n):
s=0
h=(b-a)/n
for k in range(1,n):
s+=f(a+k*h)
return h*(s+(f(a)+f(b))/2)
[19]: TRC(g,0,1,10)
[19]: 0.3350000000000001
Théorème : Si 𝑓 est de classe 𝒞2 , l’erreur de la méthode du trapèze composite vérifie :
(𝑏 − 𝑎)3
|ℰ𝑛 (𝑓)| ≤ 𝑀2
12𝑛2
où 𝑀2 est un majorant de |𝑓"| sur l’intervalle [𝑎, 𝑏]
0.3.6 AUTRE METHODE
1. Méthode de Simpson La méthode de Simpson est une méthode de calcul approché
d’intégrale. Elle consiste en l’approximation suivante :
𝑏
𝑏−𝑎 𝑎+𝑏
∫ 𝑓(𝑡)𝑑𝑡 ≃ (𝑓(𝑎) + 4𝑓( ) + 𝑓(𝑏)).
𝑎 6 2
2. Simpson composite
𝑏
ℎ 𝑛−1
∫ 𝑓(𝑡)𝑑𝑡 ≃ ∑(𝑓(𝑎 + 𝑘ℎ) + 4𝑓(𝑎 + (𝑘 + 1/2)ℎ) + 𝑓(𝑎 + (𝑘 + 1)ℎ)).
𝑎 6 𝑘=0
𝑏−𝑎
avec ℎ =
𝑛
3. La fonction quad du module scipy
[20]: import math as m
from [Link] import quad
[21]: def fct(x): return x*[Link](x)
8
[22]: quad(fct,0,[Link]/4)
[22]: (0.26246714845634334, 2.9139707142394148e-15)
4. Exercice et Comparaison Calculer les valeurs approchées des intégrales par les méthodes
composites précédentes:
𝜋/4
∫ 𝑥.𝑐𝑜𝑠(𝑥) 𝑑𝑥
0
2
∫ 𝑐𝑜𝑠(𝜋𝑥)√𝑥2 + 1 𝑑𝑥
0
Comparer les résultats.
Calculer les erreurs.