Vous êtes sur la page 1sur 12

Chapitre 2 - Intgration numrique

2. INTGRATION NUMRIQUE
2.1. INTRODUCTION
Nous dveloppons ci-aprs quelques mthodes qui permettent de calculer, sur un
b
intervalle fini [a,b], lintgrale dfinie
a f ( x) dx dune fonction f continue
donne.
Ces mthodes sont particulirement utiles dans le cas o les primitives de f ne sont pas
des fonctions lmentaires ou sont trop difficiles calculer.
Cest le cas par exemple pour les intgrales

e x dx

et

b
0

sin x
dx .
x

Nous distinguerons deux optiques :


la fonction intgrer est remplace par une fonction interpolante ou par une fonction
dapproximation ;
lintgrale est approche par une somme pondre de valeurs prises par la fonction en
des points situs dans un voisinage de [a,b].
2.2. FORMULE DES TRAPZES
On subdivise lintervalle [a,b] en sous- intervalles {[xi-1,xi] , i = 1,2,, n; x0 = a; xn = b}
sur lesquels la fonction f est remplace par le segment de droite qui joint les
points (xi-1 , f(xi-1)) et (xi , f(xi)).
Cette procdure revient remplacer, sur [a,b], f par une fonction dinterpolation
linaire par morceaux. Dun point de vue gomtrique, on assimile laire comprise entre
le graphe de f et laxe des x la somme des aires de n trapzes.

Chapitre 2 - Intgration numrique

Considrons que la division en sous-intervalle est uniforme et posons :


xi = a + ih

ba
n

et f(xi) = fi ; i = 0, 1, 2, , n.

Sur lintervalle [xi , xi+1] laire

x i 1
xi

f ( x )dx est remplace par h( fi + fi+1 )/2 , aire du

trapze correspondant.
En additionnant les aires des n trapzes, on obtient la formule des trapzes :

b
a

f ( x) dx

h
( f 0 2 f1 2 f 2 2 f n 1 f n )
2

On peut montrer que lerreur commise est proportionnelle h2 (si la fonction f est deux
fois continment drivable).
On dit que la mthode des trapzes est dordre 2.
La formule est exacte pour les fonctions f de degr 1.
2.3. FORMULE DES TRAPZES AMLIORE
La formule des trapzes peut tre amliore en procdant comme suit, on dveloppe f(x)
en srie de Taylor au voisinage de x0 :
f ( x ) f ( x0 ) ( x x0 ) f ( x0 )

1
( x x0 )2 f ( x0 ) ...
2!

en intgrant de x0 x1, on obtient :

x1
x0

f ( x) dx hf ( x0 )

h2
h3
f ( x0 )
f ( x0 ) ...
2!
3!

comme : f1 f ( x1 ) f 0 hf ( x0 )

h2
f ( x0 ) ...
2!

en multipliant par h/2 , on a :


h2
h
h3
f ( x0 ) ( f1 f 0 )
f ( x0 ) ...
2!
2
4

et lintgrale devient :

x1
x0

h
h3
h3
h
h3

f ( x )dx hf ( x0 ) [ ( f1 f 0 )
f ( x0 )] [
f ( x0 )] ... ( f 0 f1 )
f ( x0 ) ...
2
4
3!
2
12

Chapitre 2 - Intgration numrique

lintgrale totale vaut :

xn
x0

f ( x)dx

h
h 2 n 1
[ f 0 2 f1 2 f 2 ... 2 f n 1 f n ]
hf ( xk )
2
12 k 0

Comme le dernier terme est une approximation de

xn b
x0 a

f ( x )dx en le remplaant

par f (b) f (a ) , on obtient la formule des trapzes amliore :

b
a

f ( x)dx

h
h2
[ f 0 2 f1 2 f 2 ... 2 f n 1 f n ] [ f (b) f (a )]
2
12

Lerreur commise est proportionnelle h4 , et cette mthode est donc dordre 4.


Cette formule montre galement que la formule des trapzes est bien dordre 2 et que
son erreur est donne par :
E ( h)

h2
(b a ) f ,
12

[a,b].

Chapitre 2 - Intgration numrique

2.4. FORMULE DE SIMPSON


Dveloppons prsent une mthode dordre 4 qui quivaut remplacer la fonction
intgrer par des paraboles dfinies sur des sous-intervalles comprenant trois abscisses
dintgration successives.
Approximation parabolique par morceaux

On suppose que lintervalle [a,b] est partag en n sous-intervalles gaux :


[xi-1, xi] ,tels que xi = a + ih , avec h = (b-a)/n .
On groupe les points par trois, n doit donc tre pair
a = x0, x1, x2 | x2, x3, x4 | |xn-2, xn-1 xn = b.
Et on remplace, sur chaque intervalle [xi-1, xi+1], la fonction f par une parabole.
Pour lintervalle [x0, x2], la courbe reprsente par f(x) est approche par la parabole
dquation :

p( x) f 0
f0

( x x1 )( x x2 )
( x x0 )( x x2 )
( x x0 )( x x1 )
f1
f2
( x0 x1 )( x0 x2 )
( x1 x0 )( x1 x2 )
( x2 x0 )( x2 x1 )

( x x1 )( x x2 )
( x x0 )( x x2 )
( x x0 )( x x1 )
f1
f2
2
2
2h
h
2h 2

Chapitre 2 - Intgration numrique

et lintgrale est alors approche par :

x2
x0

f ( x )dx

x2
x0

p ( x )dx

h
[ f 0 4 f1 f 2 ]
3

En rptant ce procd pour les n (pair !) sous-intervalles, on a finalement la


formule de Simpson :

b
a

f ( x ) dx

h
[ f 0 4 f1 2 f 2 4 f 3 ... 2 f n 2 4 f n 1 f n ]
3

Cette formule est exacte pour les polynmes f(x) de degr 3.


2.5. FORMULE DE SIMPSON AMLIORE
Tout comme pour la mthode des trapzes, on peut obtenir une formule de Simpson
amliore :

b
a

f ( x)dx

h
h4
[ f 0 4 f1 2 f 2 4 f 3 ... 2 f n 2 4 f n 1 f n ]
[ f (b) f ( a )]
3
180

Lerreur de cette formule est de lordre de h6.


La mthode de Simpson est donc dordre 4 et son erreur est donne par :
E (h)

h4
(b a ) f ( 4 ) ( )
180

[a,b].

2.6. MTHODE DE ROMBERG (1955)


Dsignons la somme des aires des n trapzes de la mthode des trapzes par S0(n).
Lorsque n , la suite S0(n) converge en gnral assez lentement vers la valeur exacte
de lintgrale. La mthode de Romberg permet dacclrer considrablement la
convergence.
Lide est la suivante :
Selon la formule des trapzes amliore, S0(n) est lie la valeur exacte de lintgrale par
une relation de la forme :
b

S 0 (n) a f ( x)dx Ch 2 O(h 4 ) , h

ba
n

o la constante C ne dpend pas de h.

Si on double le nombre dintervalles on a :


b

S0 (2n) a f ( x )dx C

h2
O (h 4 )
4

ba
n

Par limination de linconnue C on obtient :

Chapitre 2 - Intgration numrique

a f ( x)dx

4 S 0 ( 2n) S 0 ( n)
O (h 4 )
3

On est donc pass dune prcision en h2 (formule des trapzes) une prcision en h4.
Introduisons une nouvelle suite :

4 S 0 ( 2n) S 0 ( n )
3

S1 (2n)

, n 1,2,4,8,...

Cette suite converge plus vite vers la valeur de lintgrale que la suite S0(n) (si C 0).
On voit aisment que S1(2n) est gale lapproximation fournie par la mthode de
Simpson pour une subdivision de [a,b] en 2n intervalles gaux.
On a, en particulier :
S1 (2)

ba
ab
[ f (a) 4 f (
) f (b)]
6
2

Il en rsulte donc que :


b

S1 (n) a f ( x )dx C * h 4 O( h 6 ) , h

ba
n

O C* est une constante indpendante de h.


En procdant comme ci-dessus, cest--dire en doublant le nombre de sous-intervalles et
en liminant linconnue C* on trouve :
b

a f ( x)dx

16 S1 (2n) S1 (n)
O(h6 )
15

On est ainsi pass dune prcision en h4 une prcision en h6, la suite

S 2 ( 2n)

16 S1 (2n) S1 (n)
15

, n 2,4,8,...

converge donc en gnral plus vite vers la valeur exacte de lintgrale.

Chapitre 2 - Intgration numrique

Cette dmarche se gnralise (pour une fonction suffisamment drivable) et donne


lalgorithme de Romberg :
Pour n = 1, 2, 4, 8, calculer :
S 0 ( n)

h
ba
[ f 0 2 f1 2 f 2 ... 2 f n 1 f1 ] , h
2
n

Pour n = 2m-1, 2m, 2m+1, ; m = 1, 2, 3,


calculer :

S m ( 2n )

4m S m 1 ( 2n) S m 1 (n)
4m 1

Remarque : pour obtenir une prcision leve en utilisant peu de termes de la suite S0 (n)
il suffit de prendre des valeurs de n plus grandes en respectant toutefois leur progression
gomtrique, par exemple en choisissant n = 100, 200, 400, 800, 1600, 3200.
2.7. MTHODE DES COEFFICIENTS INDTERMINS
Soit calculer lintgrale

1
1

f ( x )dx laide dune formule dintgration qui soit

exacte pour tout polynme de degr infrieur ou gal n (on gnralise aisment si
lintervalle dintgration est [a,b]).
On peut procder de la manire suivante :
1)
2)

on subdivise lintervalle dintgration en n sous-intervalles gaux


xi = -1 + i.h, h = 2/n, i = 0, 1, 2, , n.
1
on pose 1 f ( x ) dx w0f(x0) + w1f(x1) + + wnf(xn)

3)
4)

on impose que la dernire expression soit exacte pour 1, x, x2, x3,, xn.
on rsout le systme de n+1 quations qui fournit les poids dintgration wn.

Cette procdure donne les formules de Newton-Cotes dont les formules des trapzes et
de Simpson sont des cas particuliers. Elles sont exactes pour les polynmes de degr n
si n est impair et de degr n+1, si n est pair. On constate donc quil peut tre
intressant de diviser lintervalle dintgration en un nombre pair de sous-intervalles.
NB : il nest pas indispensable que les sous-intervalles soient gaux.

Chapitre 2 - Intgration numrique

2.8. INTGRATION DE GAUSS-LEGENDRE


Si on applique la mthode des coefficients indtermins sans imposer, a priori, la
position des points dintgration ( les xi ), on dispose de 2n + 2 grandeurs ajustables
pour construire une formule dintgration.
Ces grandeurs sont les n+1 abscisses xi et les n+1 poids dintgration wi.
On peut donc, en principe, en nutilisant que n+1 points dintgration, obtenir des
formules dintgration numriques qui exactes pour les polynmes de degr 2n + 1.
2.8.1. FORMULE DEUX POINTS
Etablissons la formule de Gauss-Legendre deux points dintgration :
1

f ( x ) dx G2(f) = w0f(x0) + w1f(x1)

exacte pour les polynmes de degr 3.


La formule dintgration sera exacte pour toute cubique f(x) = a3x3 + a2x2 + a1x +a0
si elle est exacte pour les quatre fonctions 1, x, x2, x3 ; ( linarit + additivit ).
Les conditions sur x0, x1, w0 et w1 sont donc :

1dx

= 2 = w0 +w1

xdx

= 0 = w0x0+w1x1

x 2 dx

2
w0 x02 w1 x12
3

x 3 dx 0 w0 x03 w1 x13

La rsolution de ce systme dquations non linaire fournit, sans trop de difficults :


w0 = w1 = 1 et

-x0 = x1 = 1 /

Et la rgle de Gauss-Legendre deux points snonce comme suit :


si f(x) est continue sur [-1, +1], alors

f ( x ) dx

G2(f) = f(-1/3) + f(1/3)

Cette formule est exacte pour tout polynme de degr 3 et, si f C4[-1,+1], on a :

f ( x ) dx

f(-1/3) + f(1/3) +

f ( 4 ) ( )
avec [-1,+1].
135

Chapitre 2 - Intgration numrique

2.8.2. FORMULE

N POINTS

La rgle dintgration de Gauss-Legendre N points est exacte pour tout polynme


de degr infrieur ou gal 2N 1 et scrit :
GN(f) = wN,1 f(xN,1) + wN,2 f(xN,2) + + wN,N f(xN,N)
Les abscisses et les poids dintgration ont t tabuls et sont disponibles dans la
littrature (cf. Handbook of Mathematical Functions, Abramowitz and Stegun (1968),
pp.916 et seq. : A.S.) et dans divers logiciels de calcul numrique.
2.9. INTGRATION MULTIDIMENSIONNELLE
Les formules dintgration de fonctions dune variable peuvent se gnraliser au cas
des fonctions de plusieurs variables.

A une formule du type

f ( x)dx wi f ( xi ) ,
i 1

on peut faire correspondre une formule


d

f ( x, y )dxdy wi w j f ( xi , y j )
i 1 j 1

qui permet dintgrer de manire approche, une fonction continue de deux variables.
sur le rectangle [a,b][c,d].
Les poids et abscisses sont les mmes que pour lintgration de fonctions dune
variable.
Ils sont dfinis sur les intervalles [a,b] et [c,d].
La gnralisation un nombre plus lev de dimensions est immdiate mais elle ne
fournit pas la mthode la plus efficace et la moins coteuse en temps de calcul
(dailleurs, deux dimensions non plus !).
2.10. REMARQUES
Il existe de trs nombreuses mthodes ddies lintgration de fonctions prsentant
des caractristiques particulires :

fonctions oscillant trs fortement sur lintervalle dintgration (mthodes


adaptatives);
fonctions dont certaines drives sont connues en des points de lintervalle
dintgration;
fonctions intgrer sur un intervalle non born (Hermite-Legendre);
fonctions dfinies dans un polygone ou un polydre;
etc.

Chapitre 2 - Intgration numrique

dans Matlab help quad donne ce qui suit :

QUAD Numerically evaluate integral, adaptive Simpson quadrature.


Q = QUAD(FUN,A,B) tries to approximate the integral of function FUN from A to B to
within an error of 1.e-6 using recursive adaptive Simpson quadrature.
The function Y = FUN(X) should accept a vector argument X and return a vector result Y,
the integrand evaluated at each element of X.
Q = QUAD(FUN,A,B,TOL) uses an absolute error tolerance of TOL
instead of the default, which is 1.e-6. Larger values of TOL result in fewer function
evaluations and faster computation, but less accurate results. The QUAD function in
MATLAB 5.3 used a less reliable algorithm and a default tolerance of 1.e-3.
[Q,FCNT] = QUAD(...) returns the number of function evaluations.
QUAD(FUN,A,B,TOL,TRACE) with non-zero TRACE shows the values of [fcnt a b-a Q]
during the recursion.
QUAD(FUN,A,B,TOL,TRACE,P1,P2,...) provides for additional arguments P1, P2, ... to
be passed directly to function FUN, FUN(X,P1,P2,...). Pass empty matrices for TOL or
TRACE to use the default values. Use array operators .*, ./ and .^ in the definition of FUN
so that it can be evaluated with a vector argument.
Function QUADL may be more efficient with high accuracies and smooth integrands.
Example:
FUN can be specified three different ways.
A string expression involving a single variable:
Q = quad('1./(x.^3-2*x-5)',0,2);
An inline object:
F = inline('1./(x.^3-2*x-5)');
Q = quad(F,0,2);
A function handle:
Q = quad(@myfun,0,2);
where myfun.m is an M-file:
function y = myfun(x)
y = 1./(x.^3-2*x-5);
See also QUADL, DBLQUAD, INLINE, @.

10

Chapitre 2 - Intgration numrique

2.11.

EXEMPLES

2.11.1. Intgrale simple


Calculons une valeur approche de

5
1

dt
par la formule de Gauss-Legendre trois points.
t

La formule de Gauss-Legendre trois points, pour lintervalle standard [-1,+1], est (cf. tables
de poids et abscisses, p.e. : A.S.) :
1

f ( x) dx G3 ( f )

avec

G3 ( f )

5 f ( 3 / 5 ) 8 f (0) 5 f ( 3 / 5 )
9

Si f C6[-1,+1] lerreur E3(f)

est :

E3 ( f )

f ( 6 ) ( )
15.750

avec 1,1

Comme lintervalle dintgration nest pas lintervalle [-1,+1], on effectue un changement de


variable pour obtenir la formule dintgration :

f (t )dt

ba N
ab ba
wN ,k f (

x N ,k )

2 k 1
2
2

Le calcul approch de
G3 ( f ) 2
G3 ( f ) 2

5
1

dt
t

donne, avec a = 1 et b = 5 :

5 f (3 2(0.6)1 / 2 ) 8 f (3 0) 5 f (3 2(0.6)1/ 2 )
9

3.446359 2.666667 1.099096


1.602694
9

valeur approche comparer n(5) ln(1) 1.609438


2.11.2 Intgrale double
On veut calculer

f ( x, y ) dxdy o reprsente le domaine ci-dessous

11

Chapitre 2 - Intgration numrique

On place une grille mailles carres sur le domaine figure de droiteet sur chaque maille
on utilise une formule dintgration adapte au carr (cf. A.S., p.892).
On somme ensuite les contributions de chaque carr lintgrale.
Lerreur commise dpend videmment de la taille des mailles.
Ce type de mthode est frquemment utilis lorsquon rsout des quations aux drives
partielles et se gnralise aisment trois dimensions (mthode des lments finis, mthode
des volumes finis).
On emploie trs souvent un maillage triangulaire dans le plan et ttradrique dans lespace.
Les points o lon value la fonction intgrer sont parfois appels points de Gauss.

12