Vous êtes sur la page 1sur 3

METHODES D’INTEGRATION

Soit une fonction f à valeurs réelles, continue par morceaux sur un intervalle [a,b].
b

On souhaite calculer une valeur approchée de l’intégrale : ∫ f ( t ) dt .


a

1-Méthode des rectangles


La méthode des rectangles consiste à approximer la fonction f par une fonction en escalier.
b−a
On considère un entier n et un pas de subdivision . Pour tout entier k de [0,n], on pose
n
b−a
a k =a+ k . . Sur l’intervalle[a ¿ ¿ k , a k+1 ]¿, on approxime f par la fonction constante égale à :
n
a +a
( )
f k k+1 ¿voir figure 1).
2
On prend comme valeur approchée de l’intégrale de f su [a,b] , l’intégrale de la fonction escalier
ainsi construite, c'est-à-dire la somme des aires des rectangles (les rectangles ont tous une base de
b−a
longueur ).
n
b n−1
b−a (b−a) (b−a)
∫ f ( t ) dt ≈
a

n k=0 (f a+
2n
+k
n )

Figure 1 : Méthode des rectangles


b

Une implémentation de la méthode des rectangles pour calculer ∫ f ( t ) dt . en subdivisant l’intervalle


a
[a,b] en n intervalles est proposée ci-après .
En voici le code python.
def rectangles(f, a, b, n):
pas =(b-a)/n
x = a + pas/2
s = 0
for k in range(n):
s = s + f(x + k*pas)
return s*pas

Ingénierie numérique /Intégration -1- M.GUEROIHI


2- Méthode des trapèzes
La méthode des trapèzes consiste à approximer la fonction f par une fonction continue affine par
morceaux. Ceux-ci coïncident avec la fonction f aux points de la subdivision (voir figure 2) en notant
b−a
a k =a+ k . les points de la subdivision du segment [a,b], l’air de chaque trapèze est égale à
n
(b−a)
. ¿ ¿ , c’est-à-dire en sommant,
n
b
f (a)+ f (b) n−1
∫ f ( t ) dt ≈ b−a
n
.
( 2
+∑ f ( a k )
)
a k=1

Figure 2 : Méthode des trapèzes


Voici une implémentation de la méthode des trapèzes en Python.
def trapezes(f,a,b,n):
pas=(b-a)/n
s=0
for k in range(1,n):
s=s+f(a+k*pas)

return pas*((f(a)+f(b))/2 + s)

3- Méthode des Simpson


b−a
On note toujoursa k =a+ k . . La méthode de Simpson consiste à approximer le graphe de la
n
fonction sur chaque segment [a+k . pas , a+( k +1). pas]par un arc de parabole qui coïncide avec le

ak +a k+1
graphe de la fonction aux points d’abscisses a k , a k+1 et . En notant f k la fonction
2

ak +a k+1
parabolique obtenue pour le segment [a ¿ ¿ k , a k+1 ]¿ et m k = , on peut monter que l’aire
2
sous l’arc de la parabole ainsi construite est égale à :
a k+ 1
ak+1 −ak
∫ f k (t ) dt = . ( f ( a k )+ 4 f ( m k ) +f ( ak+1 ) ) .
ak
6

Le résultat après sommation est une expression d’une valeur approchée de l’intégrale.
b n−1 n−1
( b−a)
∫ f ( t ) dt ≈ 16
a n [
. f ( a ) + f ( b ) +4 ∑ f ( mk ) + 2 ∑ f ( ak )
k=0 k=1
]
Ingénierie numérique /Intégration -2- M.GUEROIHI
Figure 3 : Méthode de Simpson
Voici une implémentation de la méthode de Simpson en Python.
def simpson(f,a,b,n):
pas=(b-a)/n
m=a+pas/2
sm=f(m)
sx=0
for k in range(1,n):
sm=sm+f(m+k*pas)
sx=sx+f(a+k*pas)
return (pas/6)*(f(a)+f(b)+4*sm+2*sx)

4- Fonctions quad et romberg()


- La fonction standard du sous module integrate du module scipy pour calculer les intégrales simples
est la fonction quad.
Essayez la commande:
>>>import scipy.integrate as sp
>>>import numpy as np
>>>print (sp.quad(np.sin,0,np.pi))
(2.0, 2.220446049250313e-14)
La fonction retourne deux données dans un tuple : la valeur estimée de l'intégrale,
ici 2.0, et la valeur haute de l'erreur, ici 2.220446049250313e-14
- Prenons la même fonction sin et intégrons-la avec la méthode de Romberg sur les mêmes
bornes. On utilise la commande:
>>> print (sp.romberg(np.sin,0,np.pi))
2.0
Vous constaterez que le résultat est le même mais que l'erreur n'est pas indiquée.
Par défaut, elle est bornée à 1.48e-8.

Exercice :
A l’aide des méthodes d’intégrations vues au cours, calculer une valeur approchée de l’intégrale :
π

∫ x . cos ( x ) . dx
0

Comparez les résultats avec l’une des fonctions romberg() ou quad() du sous module integrate du module scipy.

Ingénierie numérique /Intégration -3- M.GUEROIHI

Vous aimerez peut-être aussi