0% ont trouvé ce document utile (0 vote)
699 vues7 pages

Intégration numérique avec la méthode de Simpson

Le document décrit plusieurs méthodes d'intégration numérique, notamment la méthode de Simpson. La méthode de Simpson approche l'intégrale d'une fonction sur un intervalle en interpolant la fonction avec un polynôme de degré 2, dont l'intégrale est plus facile à calculer.
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
699 vues7 pages

Intégration numérique avec la méthode de Simpson

Le document décrit plusieurs méthodes d'intégration numérique, notamment la méthode de Simpson. La méthode de Simpson approche l'intégrale d'une fonction sur un intervalle en interpolant la fonction avec un polynôme de degré 2, dont l'intégrale est plus facile à calculer.
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Bases de Python (bases-python.

html)
Présentation de NumPy (bases-numpy.html)
Tracé de courbes (introduction-courbes.html)
Tableaux et calcul matriciel (tableaux-numpy.html)
Visualisation et animation (visualisation.html)
Classes et objets (classes-et-objets.html)
Fiches pratiques (fiches-pratiques.html)
Mettre en forme des chaînes de caractères en Python (print-format.html)
Dérivée d’une fonction en Python (derivee-fonction.html)
Intégration numérique (integration-numerique.html)
Méthodes des rectangles et des trapèzes (integration-rectangle-trapeze.html)
Intégration par la méthode de Simpson
Interpolation par un polynôme de degré 2
Intégration des polynômes de Lagrange
Formule de Simpson
Formule de Simpson composite
Transformation de Fourier (fft-fourier.html)
Introduction à Qt5 et PyQt5 (interface-graphique.html)
Annexes (annexes.html)
Bibliographie (bibliographie.html)

Intégration par la méthode de


Simpson
Il existe de nombreuses méthodes pour réaliser une intégration numérique. Nous allons considérer la
méthode de Simpson. Ceux qui souhaiteraient aller plus loin peuvent consulter par exemple Pratique de
la simulation numérique de Bijan Mohammadi et Jacques Hervé Saïac, Dunod (2003).
La méthode de Simpson permet le calcul approché d’une intégrale avec la formule suivante :
b
b − a a + b
∫ f (x)dx ≈ [f (a) + 4f ( ) + f (b)]
a
6 2

Dans cette formule, on peut se demander d’où viennent les coefficients 1

6
et 2

3
(qui apparaît sous la
forme de ).
4

C’est ce que nous allons voir de façon détaillée maintenant.


Pour obtenir la formule de Simpson, on va réaliser une interpolation avec un polynôme de degré 2. Un
polynôme étant une fonction très facile à intégrer, on approche l’intégrale de la fonction f sur l’intervalle
[a, b], par l’intégrale du polynôme sur ce même intervalle.

Interpolation par un polynôme de degré 2


Une interpolation qui passe par 3 points peut être réalisée grâce à un polynôme de degré 2. Dans le cas
de la méthode de Simpson, le polynôme va prendre les mêmes valeurs que f aux points d’abscisses a, b
et m = (a + b)/2. La technique utilisée pour déterminer le polynôme est basée sur les polynômes de
Lagrange, on parle d”interpolation lagrangienne.
Les polynômes de Lagrange de degré 2 ont pour caractéristique de prendre la valeur 1 pour une seule
des 3 abscisses et la valeur 0 pour les 2 autres. On définit ainsi 3 polynômes :

qui prend pour valeur 1 en x = a et 0 en m et b.


(x−m)(x−b)
l 0 (x) =
(a−m)(a−b)

qui prend pour valeur 1 en x = m et 0 en a et b.


(x−a)(x−b)
l 1 (x) =
(m−a)(m−b)

qui prend pour valeur 1 en x = b et 0 en a et m.


(x−a)(x−m)
l 2 (x) =
(b−a)(b−m)

Visualisation des polynômes de Lagrange

from pylab import *

a = 0

b = 8

m = (a+b)/2

x = linspace(a, b, 101)

l0 = (x-m)/(a-m)*(x-b)/(a-b)

l1 = (x-a)/(m-a)*(x-b)/(m-b)

l2 = (x-a)/(b-a)*(x-m)/(b-m)

plot([a,m,b],zeros(3),"s") # position des valeurs 0

plot([a,m,b],ones(3), "o") # position des valeurs 1

plot(x,l0, label="l0")

plot(x,l1, label="l1")

plot(x,l2, label="l2")

title("Polynomes de Lagrange")

xlim(-1,9)

ylim(-1,2)

text(a,-0.1,"(a,0)",ha="center",va="top")

text(m,-0.1,"(m,0)",ha="center",va="top")

text(b,-0.1,"(b,0)",ha="center",va="top")

text(a,1.05,"(a,1)",ha="center",va="bottom")

text(m,1.05,"(m,1)",ha="center",va="bottom")

text(b,1.05,"(b,1)",ha="center",va="bottom")

legend()

grid()

show()

(Source code (./integration/simpson_lagrange.py))


Le polynôme P de degré 2 qui prend les mêmes valeurs que f aux points d’abscisses a, b et m peut être
écrit sous la forme suivante :

(x − m)(x − b) (x − a)(x − b) (x − a)(x − m)


P (x) = f (a) + f (m) + f (b)
(a − m)(a − b) (m − a)(m − b) (b − a)(b − m)

Exemple d’interpolation de Lagrange avec un polynôme de degré 2


from pylab import *

a = 0

b = 8

m = (a+b)/2

# valeurs de la fonction en a, m, et b

ya = 4

ym = 8

yb = -6

x = linspace(a, b, 101)

l0 = (x-m)/(a-m)*(x-b)/(a-b)

l1 = (x-a)/(m-a)*(x-b)/(m-b)

l2 = (x-a)/(b-a)*(x-m)/(b-m)

P = ya*l0 + ym*l1 + yb*l2

plot([a,m,b],zeros(3),"s") # position des valeurs 0

plot([a,m,b],[ya,ym,yb], "o") # position des valeurs de f

plot(x,P)

title("Interpolation de Lagrange")

xlim(-1,9)

ylim(-8,10)

text(a,-0.5,"(a,0)",ha="center",va="top")

text(m,-0.5,"(m,0)",ha="center",va="top")

text(b,-0.5,"(b,0)",ha="center",va="top")

text(a,ya+0.05,"(a,f(a))",ha="right",va="bottom")

text(m,ym+0.2,"(m,f(m))",ha="left",va="bottom")

text(b,yb-0.4,"(b,f(b))",ha="left",va="top")

grid()

show()

(Source code (./integration/interpolation_lagrange.py))


La courbe rouge représente le polynôme d’interpolation P .

Intégration des polynômes de Lagrange


Un polynôme étant une fonction très facile à intégrer, on approche l’intégrale de la fonction f sur
l’intervalle [a, b], par l’intégrale de P sur ce même intervalle. Pour cela, nous allons calculer les intégrales
des 3 polynômes de Lagrange.
Considérons tout d’abord le calcul de l’intégrale du polynôme de Lagrange l . 2

b b
(x − a)(x − m)
∫ l 2 (x)dx = ∫ dx.
a a
(b − a)(b − m)

Le calcul de cette intégrale n’est pas immédiat et nous allons détailler une façon de réaliser ce calcul.
On va poser k = b−a

2
, ainsi k = m − a = b − m.
Nous faisons ensuite le changement de variable suivant : u = x−m

k
, ainsi du = dx

k
.
Pour x = a, on a u = −1. De même, pour x = b, on a u = 1.
x−a (x−m)+(m−a) x−m m−a x−m k u 1 u+1
= = + = + = + =
b−a a−b b−a b−a 2k 2k 2 2 2

x−m
= u
b−m

b 1 (u+1) k 1 2 k 1 2
∫ l 2 (x)dx = k ∫ udu = ∫ (u + u)du = 2∫ u du
a −1 2 2 −1 2 0

car on intègre sur un intervalle symétrique et u est une fonction paire et u impaire. 2

Ainsi, ∫
b 3
u k
l 2 (x)dx = k[ ] =
a 3 3
0

Au final :
b
b − a
∫ l 2 (x)dx =
a
6
On comprend donc ici l’origine du facteur 1

6
.
On peut obtenir de même :
b
b − a
∫ l 0 (x)dx =
a
6

Pour l , on a :
1

b b (x−a)(x−b)
∫ l 1 (x)dx = ∫ dx
a a (m−a)(m−b)

x−a (x−m)+(m−a)
= = u + 1
m−a m−a

x−b (x−m)+(m−b)
= = −u + 1
m−b m−b

b 1 1 1
2 2
∫ l 1 (x)dx = k ∫ (u + 1)(−u + 1)du = k ∫ (1 − u )du = 2k ∫ (1 − u )du
a −1 −1 0

car on intègre sur un intervalle symétrique et 1 et u sont des fonctions paires. 2

Ainsi, ∫
3
b u 2
l 1 (x)dx = 2k[u − ] = 2k
a 3 3
0

Au final :
b
2
∫ l 1 (x)dx = (b − a)
a
3

On a donc ici l’origine du facteur 2

3
.

Formule de Simpson
En utilisant les résultats des 3 intégrales, on obtient ainsi la simple formule :
b b
b − a a + b
∫ f (x)dx ≈ ∫ P (x)dx = [f (a) + 4f ( ) + f (b)]
a a
6 2

C’est la formule de Simpson.

Formule de Simpson composite


Par ailleurs, plus l’intervalle est petit, meilleure est l’approximation de la valeur de l’intégrale. Par
conséquent, pour obtenir un résultat correct, on subdivise l’intervalle [a, b] en un nombre pair de sous-
intervalles et on additionne la valeur obtenue sur chaque sous-intervalle. On a ainsi :
n est le nombre de sous-intervalles de [a, b] avec n pair ;
h = (b − a)/n est la longueur de ces sous-intervalles ;
x i = a + ih pour i = 0, 1, … , n − 1, n.
n/2−1 n/2
b
h
∫ f (x)dx ≈ [f (x 0 ) + 2 ∑ f (x 2j ) + 4 ∑ f (x 2j−1 ) + f (x n )]
a
3
j=1 j=1

Exemple
Nous allons illustrer le cas où n = 4. On a 5 points : x , x , x , x , x .
On applique deux fois la formule 0 1 2 3 4

de Simpson : une fois pour le sous-intervalle [x , x ] et une fois pour le sous-intervalle [x , x ].


0 2 2 4

b
b
x2 − x0 x4 − x2
∫ f (x)dx ≈ [f (x 0 ) + 4f (x 1 ) + f (x 2 )] + [f (x 2 ) + 4f (x 3 ) + f (x 4 )]
a
6 6

Or x 2
− x 0 = x 4 − x 2 = 2h , donc au final :
b
h
∫ f (x)dx ≈ [f (x 0 ) + 4f (x 1 ) + 2f (x 2 ) + 4f (x 3 ) + f (x 4 )]
a
3

Ceci est bien conforme à la formule de Simpson composite énoncée ci-dessus.


Exercice
Faire un programme d’intégration numérique qui utilise la formule de Simpson composite.

Licence CC BY-NC-SA 4.0 (https://creativecommons.org/licenses/by-nc-sa/4.0/deed.fr) 2021, Haut de page


David Cassagne.
Créé le 15 oct 2012.
Mis à jour le 11 sept. 2021.
Created using Sphinx (http://sphinx-doc.org/) 4.0.1.

Vous aimerez peut-être aussi