Méthodes d'intégration numérique expliquées
Méthodes d'intégration numérique expliquées
Dans ce chapitre, on s’intéresse au calcul de la valeur numérique de l’intégrale d’une fonction f sur un
intervalle [a, b] donné. Autrement dit, on cherche non pas à obtenir un résultat du type
Z b
f (x) dx = F (b) F (a)
a
où F serait une primitive de f sur [a, b], mais plutôt un résultat du type
Z b
f (x) dx ⇡ 0.789312
a
autrement dit une approximation (bonne, dans la mesure du possible) de la valeur de l’intégrale de f sur
[a, b]. Ceci est tout particulièrement intéressant quand on ne dispose pas d’une primitive de la fonction
f : c’est le cas par exemple pour l’intégrale dite elliptique qui nous donne le périmètre d’une ellipse de
demi-axes 1 et b > 0 Z ⇡p
2
P =4 1 (1 b2 ) cos(x)2 dx.
0
Nous allons supposer que pour tout ↵ dans [a, b], on est capable de donner la valeur de f (↵). L’idée
des méthodes d’intégration numérique que nous allons étudier est d’approcher l’intégrale de f par une
combinaison linéaire de valeurs de f prises en des points particuliers de l’intervalle [a, b]. Autrement dit, on
se donne (n + 1) couples (xi , i ), les xi dans [a, b] et les i dans R, et on pose
Z b n
X
f (x) dx ⇡ i f (xi ).
a i=0
Nous n’allons pas nous intéresser1 au choix des points xi de l’intervalle [a, b], ce qui constitue un problème
difficile. Nous allons donc supposer que l’on se fixe (n + 1) abscisses x0 , . . . , xn distinctes. On va s’intéresser
aux deux questions suivantes : P Rb
- déterminer les coefficients i tels que ni=0 i f (xi ) soit une bonne approximation de a f (x) dx
- estimer l’erreur d’approximation, c’est à dire la di↵érence entre la valeur exacte de l’intégrale,
et sa valeur approchée donnée par la méthode d’intégration numérique.
À partir de maintenant, on suppose que la fonction f est (au moins) continue sur l’intervalle [a, b]. On
notera I(f ) l’intégrale exacte de f sur [a, b], et J(f ) son intégrale approchée, soit
Z b n
X
I(f ) = f (x) dx, J(f ) = i f (xi ).
a i=0
Notons que I et J sont des applications linéaires sur l’espace vectoriel des fonctions continues sur [a, b].
Afin de ne pas alourdir inutilement
Rb P de notation suivant : pour k 2 N, on
les énoncés, on fera souvent l’abus
notera I(xk ) := I(x 7! xk ) = a xk dx , et J(xk ) := J(x 7! xk ) = ni=0 i xki . En particulier :
Z b n
X
I(1) = 1 dx = b a, J(1) = i,
a i=0
Z b n
X
b2 a2
I(x) = x dx = , J(x) = i xi .
a 2
i=0
1
sauf éventuellement à titre d’exercice
1
1 Méthodes d’intégration numérique
On se donne x0 , . . . , xn (n+1) abscisses distinctes dans [a, b], et on cherche une formule d’intégration
numérique J de la forme
Xn
J(f ) = k f (xk ), 8f 2 C 0 ([a, b]).
k=0
L’objectif est donc de déterminer les coefficients réels i pour que la méthode d’intégration numérique nous
donne une bonne approximation de la valeur de l’intégrale de f sur [a, b]. Pour faire cela, nous allons
demander à ce que notre méthode d’intégration numérique soit exacte pour une famille de fonctions : les
polynômes de degré inférieur ou égal à n. Ceci impose en fait la valeur des coefficients i , comme le montre
le théorème suivant :
Théoreme 1.1 Il existe un unique (n + 1)-uplets ( 0, . . . , n) tel que la formule d’intégration numérique
J soit exacte sur Rn [x].
Preuve : on demande à ce que pour tout polynôme p 2 Rn [x], on ait I(p) = J(p), soit
Z b n
X
p(t)dt = i p(xi ). ()
a i=0
Pour cela, il faut et il suffit que la relation () soit vraie pour la base de Rn [x] des monômes {1, x, . . . , xn }.
En e↵et, il est évident que si () est vraie pour tout polynôme de Rn [x], elle est en particulier vraie pour
la base des monômes.
L’autre sens s’obtient tout aussi aisément : soit un polynôme p quelconque de Rn [x], il existe ↵0 , . . . , ↵n
(n + 1) réels tels que p(x) = ↵0 + ↵1 x + . . . + ↵n xn . Comme I et J sont des applications linéaires, on a
On est donc ramené à vérifier () pour la base des monômes. Autrement dit, pour tout k 2 {0, . . . , n},
on veut : Z b
Xn
k bk+1 ak+1
i xi = xk dx = .
a k+1
i=0
2
On reconnaı̂t dans la matrice du système la transposée de la matrice de Vandermonde V (x0 , x1 , . . . , xn ) ;
on a prouvé dans le chapitre sur l’interpolation qu’elle est inversible si et seulement si les x0 , x1 , . . . , xn sont
tous disctincts, ce qui est le cas ici. On a donc bien existence et unicité des i . ⇤
Preuve : on a
n
X n
X
i f (xi ) = i Pn (xi ) (par définition, Pn (xi ) = f (xi ))
i=0 i=0
Z b
= Pn (x)dx (deg(Pn ) n, et J est exacte sur Rn [x])
a
où on a posé p̃(⌘) = p((b a)⌘ + a) pour tout ⌘. Comme p̃ est aussi un polynôme de degré inférieur ou égal
à n, on a
Z 1 n
X n
X n
X
p̃(⌘) d⌘ = ˜ k p̃(⌘k ) = ˜ k p((b a)⌘k + a) = ˜ k p(xk ).
0 k=0 k=0 k=0
3
On a donc, pour tout polynôme p de degré inférieur ou égal à n,
Z b n
X
p(t) dt = (b a) ˜ k p(xk ).
a k=0
On conclut par unicité de la méthode d’intégration approchée sur [a, b] associée à x0 , ..., xn . ⇤
Ainsi, pour calculer la méthode d’intégration numérique sur [a, b], on préfèrera souvent se ramener sur
[0, 1], où la résolution du système (S) est souvent plus simple, puis en déduire la formule sur [a, b] quelconque.
Bien évidemment, on n’est pas obligé de procéder comme cela !
Remarque - il existe une autre méthode pour calculer les coefficients i : en e↵et, si on note
Y x xi
Lm (x) =
xm xi
i=0,...,n, i6=m
le m-ième polynôme de la base de Lagrange, qui rappelons le, vérifie Lm (xi ) = 1 si m = i, 0 sinon, et est de degré n, on a
Z b Xn
Lm (x)dx = i Lm (xi ) = m .
a i=0
Le coefficient m est donc égal à l’intégrale de Lm sur [a, b]. Néanmoins, on préfèrera la plupart du temps résoudre le système
(S).
Par construction, la méthode d’intégration numérique est exacte pour tous les polynômes de degré
inférieur ou égal à n. Mais rien n’empêche qu’elle soit exacte pour des polynômes de degré plus élevé. Ceci
nous mène à la définition de l’ordre d’une méthode d’intégration numérique.
P
Définition 1.1 On dit que la méthode d’intégration numérique J(f ) = ni=0 i f (xi ) est d’ordre N (N 2 N)
si :
• pour tout polynôme p de degré inférieur ou égal à N , on a
Z b n
X
p(x)dx = i p(xi )
a i=0
On a donc nécessairement N n.
Pour connaı̂tre l’ordre d’une méthode d’intégration, il suffit par linéarité de la tester sur la base des
monômes. Autrement dit, on a la définition équivalente2 : la méthode d’intégration numérique est d’ordre
N si
• pour tout m dans {0, . . . , N }, on a
Z b n
X
m m
x dx = i xi
a i=0
Z b n
X
N +1 N +1
• x dx 6= i xi .
a i=0
2
le lecteur pourra s’amuser à montrer l’équivalence des deux définitions
4
Intéressons-nous maintenant à quelques méthodes d’intégration numérique bien connues. Comme dit
précédemment, nous allons les obtenir d’abord sur [0, 1], puis nous en déduirons la formule générale sur un
intervalle [a, b] quelconque.
5
Comme n = 1, on demande à ce que la méthode soit exacte pour les polynômes de degré inférieur ou égal
à 1, et on obtient donc
Z 1 Z 1
1
dx = 1 = 0 + 1 (pol. de degré 0), x dx = = 1 (pol. de degré 1)
0 0 2
• méthode de Simpson
1
C’est une méthode à trois points : ⌘0 = 0, ⌘1 = 2 et ⌘2 = 1. On cherche donc 0, 1 et 2 tels que
Z 1 ⇣1⌘
f (x)dx ⇡ 0 f (0) + 1f + 2 f (1).
0 2
Ici, n = 2, donc on veut que la méthode soit exacte sur R2 [x], ce qui nous donne :
8 Z 1
>
>
>
> 0 + 1 + 2 = 1 dx = 1
>
> Z 01
<
1 1
(S) 1 + 2 = x dx =
>
> 2 2
>
> Z 0
1
>
> 1 1
: 1 + 2 = x2 dx =
4 0 3
6
1
La résolution du système linéaire (S) donne 0 = 2 = 6 et 1 = 23 , et on obtient donc
Z 1
1 2 ⇣1⌘ 1
f (x)dx ⇡ f (0) + f + f (1).
0 6 3 2 6
On approche l’aire sous la courbe représentative de f par celle sous l’unique parabole passant par les points
(a, f (a)), ( a+b a+b
2 , f ( 2 )) et (b, f (b)).
Méthode de Simpson
2 Estimations d’erreur
2.1 Premières estimations d’erreur
P
Définition 2.1 Soient x0 < x1 < . . . < xn (n+1) abscisses distinctes, xi 2 [a, b], et J(f ) = ni=0 i f (xi )
la formule d’intégration approchée associée. Pour toute fonction continue f , on note E(f ) l’erreur commise
lorsque l’on remplace I(f ) par J(f ), c’est à dire
Z b n
X
E(f ) = I(f ) J(f ) = f (x)dx i f (xi )
a i=0
Propriété 2.1 Soit f 2 C n+1 ([a, b]). On note Mn+1 = supt2[a,b] |f (n+1) (t)|. Alors
Z bY
n
Mn+1
|E(f )| |t xi |dt.
(n + 1)! a i=0
7
Preuve : on a montré que J(f ) = I(Pn ), où Pn est le polynôme d’interpolation de Lagrange associé à f et
aux noeuds x0 , x1 , . . ., xn . On a donc
Z b
E(f ) = I(f ) J(f ) = I(f ) I(Pn ) = ( f (t) Pn (t) ) dt.
a
De plus, on a vu lors du cours sur l’interpolation de Lagrange que pour tout t 2 [a, b], on a
n
Mn+1 Y
|f (t) Pn (t)| |t xi |.
(n + 1)!
i=0
Mn+1
E(f ) (b a)n+2 .
(n + 1)!
Preuve : il suffit de remarquer que pour tout t 2 [a, b] et tout i 2 {0, . . . , n}, |t xi | (b a). ⇤
Remarquons que l’estimation donnée par le corollaire est moins bonne que celle donnée par la propriété.
En contrepartie, elle ne nécessite aucun calcul !
Applications
a+b
• méthode des rectangles - J(f ) = (b a)f 2 .
C’est une formule à un noeud (n = 0). Le corollaire nous donne donc l’estimation d’erreur, pour toute
fonction f dérivable sur [a, b]
|E(f )| M1 (b a)2 .
Si on utilise la propriété, on a :
Z b
a+b
|E(f )| M1 |t | dt
a 2
Z 1/2
2 t a 1
= M1 (b a) |⌘| d⌘ (chgt. de variable ⌘ = )
1/2 b a 2
Z1/2
(b a)2
= 2 M1 (b a)2 ⌘ d⌘ = M1 .
0 4
Supposons que l’on veuille calculer une valeur approchée de l’intégrale de sin(x) sur [0, 1] par la méthode
des rectangles : on a Z 1
I(f ) = sin(t) dt = 1 cos(1) ' 0.45969769413186
0
et
1
J(f ) = sin( ) ' 0.4794255386042.
2
M1
Comme M1 = supt2[0,1] | cos(t)| = 1, on vérifie bien que |E(f )| ' 0.01972784447234 4 = 0.25. On est
donc bien meilleur que notre estimée ne nous le laissait espérer !
(b a)
• méthode des trapèzes - J(f ) = (f (a) + f (b)).
2
8
Formule à deux noeuds x0 = a et x1 = b. Le corollaire nous donne donc, pour toute fonction f 2
C 2 ([a, b]),
M2
|E(f )| (b a)3 .
2
Si on utilise la propriété, on obtient
Z b
M2
|E(f )| |(t a)(t b)| dt
2 a
Z 1/2
M2 3 t a 1
= (b a) |(t 1/2)(t + 1/2)| dt (chgt. de variable ⌘ = )
2 1/2 b a 2
Z 1/2
M2
= M2 (b a)3 (1/4 t2 ) dt = (b a)3 .
0 12
sin(1)
|E(sin(x))| ' 0.03896220172791 = 0.070122582067325.
12
⇣ ⌘
b a a+b
• méthode de Simpson - J(f ) = 6 f (a) + 4 f 2 + f (b)
a+b
Formule à trois noeuds : x0 = a, x1 = 2 et x2 = 1. Le corollaire nous donne donc
M3
|E(f )| |b a|4 .
6
L’utilisation de la propriété nous donne une meilleure estimation de l’erreur, comme attendu:
Z b
M3 a+b
|E(f )| |(t a)(t )(t b)| dt
6 a 2
Z 1/2
M3 4 t a 1
= (b a) |t(t 1/2)(t + 1/2)| dt (chgt. de variable ⌘ = )
6 1/2 b a 2
Z 1/2
M3 M3
= (b a)4 t(1/4 t2 ) dt = (b a)4 .
3 0 192
Appliquer à f (x) = sin(x) sur [0, 1], on a J(sin(x)) = 16 (4 sin(1/2) + sin(1)) ' 0.4598621899. On a donc
M3
|E(f )| ' 0.0001644958 ' 0.005208333333.
192
9
le dit pas : en e↵et, si P est de degré N , alors supt2[a,b] |P (n+1) (t)| = 6 0 ! On va donc chercher à améliorer
nos estimations d’erreur en tenant compte de l’ordre de la méthode.
On considère toujours nos (n + 1) abscisses distinctes x0 , x1 ,... xn , vérifiant xi 2 [a, b], et J la méthode
d’intégration numérique sur [a, b] associée, de coefficients ( i )i2{0,...,n} :
n
X
J(f ) = i f (xi ).
i=0
xi a
Pour i 2 {0, . . . , n}, on note ⌘i := b a 2 [0, 1], et on définit
n
X
˜ =
J(g) ˜ i g(⌘i )
i=0
la formule d’intégration numérique sur [0, 1] associée aux ⌘i . On rappelle (voir la propriété 1.2) que i =
(b a) ˜ i .
Théoreme 2.2 Supposons que la méthode d’intégration numérique J soit d’ordre N (nécessairement N
n). Soit f 2 C N +1 ([a, b]). On note MN +1 := supt2[a,b] |f (N +1) (t)|. Alors
MN +1 ⇣ 1 X ⌘n
|E(f )| (b a) N +2
+ |˜i| .
(N + 1)! N +2
i=0
Preuve : comme f 2 C N +1 ([a, b]), pour tout t 2 [a, b], il existe un ⇠t 2]a, t[ tel que3
(t a)N (N ) f (N +1) (⇠t )
f (t) = f (a) + (t a)f 0 (a) + ... + f (a) + (t a)N +1 = p(t) + R(t)
N! (N + 1)!
PN f (i) (a)
où p(t) = i=0 i! (t a)i est un polynôme de degré inférieur ou égal à N, et
f (N +1) (⇠t ) MN +1
|R(t)| = (t a)N +1 (t a)N +1 .
(N + 1)! (N + 1)!
On a par linéarité E(f ) = E(p) + E(R) et même E(f ) = E(R) puisque E(p) = 0, la méthode d’intégration
numérique J étant d’ordre N . On obtient finalement
Z b Xn
|E(f )| = |E(R)| = R(t) dt i R(xi )
a i=0
Z b n
X
= R(t) dt (b a) ˜ i R(xi )
a i=0
Z b X n
|R(t)| dt + (b a) | ˜ i ||R(xi )|
a i=0
Z n
MN +1 b
N +1 MN +1 X ˜
(t a) dt + (b a) | i |(xi a)N +1
(N + 1)! a (N + 1)!
i=0
n
X
MN +1 MN +1
= (b a)N +2 + (b a) | ˜ i |(xi a)N +1
(N + 2)! (N + 1)!
i=0
n
X
MN +1 MN +1
(b a) N +2
+ (b a) N +2
|˜i|
(N + 2)! (N + 1)!
i=0
3
c’est le développement de Taylor-Lagrange de f à l’ordre N
10
ce qui achève la preuve. ⇤
Pour tout polynôme P de degré inférieur ou égale à N , on a bien MN +1 = 0, et notre nouvelle estimation
de l’erreur nous donne donc E(P ) = 0 !
En résumé, nous avons obtenus le résultat suivant : soit a < b, x0 ,..., xn (n + 1) abscisses disctinctes
dans [a, b], et J la méthode d’intégration numérique associée. On suppose que J est d’ordre N , avec N n.
Alors il existe une constante C dépendant de n, N et des ˜ i , tels que
On rappelle qu’on peut transporter cette méthode numérique sur tout segment [↵, ] pour obtenir J[↵, ] ,
méthode d’intégration numérique sur [↵, ] d’ordre N elle aussi, donnée par
n
X
J[↵, ] (f ) = ( ↵) ˜ i f (( ↵)⌘i + ↵).
i=0
Donnons nous alors un intervalle quelconque [a, b]. L’idée des méthodes composites et de chercher à
approcher l’intégrale d’une fonction f quelconque sur [a, b], non pas en utilisant directement la formule
d’intégration numérique J[a,b] , mais en découpant l’intervalle [a, b] en un grand nombre de petits intervalles,
en utilisant la formule sur chacun de ces petits intervalles, et en sommant les résultats obtenus.
Plus mathématiquement, on se donne M un entier naturel strictement positif, et pour tout m 2
{0, . . . , M}, on pose xm = a + bMa m. On découpe ainsi l’intervalle [a, b] en M intervalles [xm , xm+1 ] de
même longueur4 xm+1 xm = bMa . On peut alors définir notre méthode d’intégration numérique composite
:
M
X1 M
X1 X n
JM (f ) = J[xm ,xm+1 ] (f ) = (b a) ˜ i f ( b a ⌘i + xm ) (2)
M
m=0 m=0 i=0
11
En particulier, cette propriété implique que JM (f ) tend vers l’intégrale de f lorsque le nombre d’intervalles
M tend vers l’infini, comme MN1+1 , où N est l’ordre de la méthode d’intégration numérique : plus la méthode
est d’ordre élevé, plus la convergence est rapide !
Comme J est d’ordre N , la relation (1) appliquée sur chaque intervalle [xm , xm+1 ] nous donne
Z xm+1
f (x) dx J[xm ,xm+1 ] (f ) C|xm+1 xm |N +2 sup |f N +1 (t)|
xm t2[xm ,xm+1 ]
(b a)N +2
=C sup |f N +1 (t)|
MN +2 t2[xm ,xm+1 ]
(b a)N +2
MN +1 , C
MN +2
où la constante C > 0 ne dépend pas de m. On obtient donc finalement
Z b MX1 ✓Z xm+1 ◆
f (x) dx JM (f ) f (x) dx J[xm ,xm+1 ] (f )
a m=0 xm
M
X 1 Z xm+1
f (x) dx J[xm ,xm+1 ] (f )
m=0 xm
M
X1 (b a)N +2 (b a)N +2
C MN +1 = C MN +1
MN +2 MN +1
m=0
Appliquons ce résultat aux trois méthodes d’intégration numérique que nous avons vues en exemple : on
considère un intervalle [a, b] quelconque, que l’on découpe en M intervalles [xm , xm+1 ], avec xm = a + bMa m.
R
• méthode des rectangles : ↵ f (x) dx ⇡ ( ↵)f ( ↵+
2 ).
On obtient la méthode d’intégration composite
Z b M
X1 M 1
xm + xm+1 b a X xm + xm+1
f (x) dx ⇡ JM (f ) = (xm+1 xm )f ( )= f( ).
a 2 M 2
m=0 m=0
12
Méthode des rectangles composite, avec M = 5.
R
• méthode des trapèzes : ↵ f (x) dx ⇡ b 2 a (f (↵) + f ( )).
On obtient la méthode d’intégration composite
Z M M
!
b X1 xm+1 xm b a X2
f (x) dx ⇡ JM (f ) = (f (xm ) + f (xm+1 )) = f (a) + f (b) + 2 f (xm ) .
a 2 2M
m=0 m=1
13
La méthode étant d’ordre N = 3, on obtient l’estimation d’erreur pour f 2 C 4 ([a, b]),
Z b
(b a)5
f (x) dx JM (f ) C M4 .
a M4
1
La méthode converge en M4
: quand on multiplie par 10 le nombre d’intervalles, on divise par 10000 l’erreur
commise !
14