Sie sind auf Seite 1von 22

Integration numerique

Math ematiques - Mini Projet


P.Meier, A.Bonanomi, D.Messina
16 juin 2006
Introduction
Le present article a ete ecrit au sein du cours de travaux pratiques
de mathematiques adresse aux etudiants du quatri`eme semestre de mathe-
matiques `a lEPFL.
Nous avons choisi un travail dans le domaine de lintegration numerique.
Plus precisement, nous avons etudie dierentes methodes qui permettent
dapprocher les integrales sur des intervalles bornes.
Le calcul daires, de surfaces, de volumes et longueurs darc etait une des
preoccupations majeures des scientiques depuis Euclide et Archim`ede jus-
qu`a Kepler, Galilei, Fermat et Descartes. Puis, avec la decouverte du The-
or`eme fondamental du calcul dierentiel, ces integrales netaient quune
inversion de formules pour la derivee. Les Bernoullis et surtout Euler, dans
son gigantesque traite (Inst. Calculi Integralis 1768, 1769, 1770, Opera XI-
XIII), se sont donc mis avec enthousiasme `a la recherche de formules analy-
tiques pour les primitives. Cependant, de nombreuses integrales resistent
encore et toujours `a lenvahisseur (par exemple
_
e
x
x
dx,
_
dx
log x
) et len-
thousiasme laisse lentement place `a un renouveau de linteret pour les for-
mules de quadrature, qui avait ete commence par Newton et ses successeurs
anglais Cotes et Simpson. De nombreux calculs en astronomie (perturba-
tions des orbites planetaires) contraignent Gauss (1814) `a intensier cette
theorie. Les premiers ordinateurs, dans les annees 40 et 50, ont surtout ete
developpes pour le calcul dintegrales et dequations dierentielles. En eet,
ces probl`emes sont les plus faciles `a programmer.
Dans la premi`ere partie de cet article nous presentons quelques methodes
pour le cas unidimensionel, notamment celle du point milieu, du trap`eze,
de Cavalieri-Simpson et celle de Newton-Cotes. Nous avons aussi verie, `a
laide dun exemple et en realisant des petits programmes en MATLAB, que
les formules theoriques obtenues pour les erreurs des dierentes metodes
correspondent bien `a ce quon peut trouver dans un cas concret. Avec le
meme exemple nous avons constate que le choix dune methode plutot quune
autre se base sur plusieurs aspects. En eet, certains formules sont plus avan-
tageuses au niveau de la grandeur de lerreur, mais par contre elles peuvent
co uter beaucoup plus en termes doperations.
Dans la deuxi`eme partie de larticle nous abordons le cas bidimensionel `a
laide de la methode de reduction. On a pour nir implemente un programme
qui resout numeriquement un integrale sur un domaine carre.
2
Table des mati`eres
Introduction 2
1 Integration numerique unidimensionelle 4
1.1 Polynome de Lagrange . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Formules de quadrature . . . . . . . . . . . . . . . . . . . . . 5
1.3 Formule du rectangle ou du point milieu . . . . . . . . . . . . 6
1.4 La formule du trap`eze . . . . . . . . . . . . . . . . . . . . . . 9
1.5 Formule de Cavalieri-Simpson . . . . . . . . . . . . . . . . . . 12
1.6 Formules de Newton-Cotes . . . . . . . . . . . . . . . . . . . . 15
2 Integration numerique multidimensionelle 17
References 22
3
1 Integration numerique unidimensionelle
Lobjectif de cette section est de decrire quelques methodes numeriques
calssiques permettant devaluer des integrales de fonctions dont les valeurs
sont connues en un nombre ni de points. On essaiera dexpliciter les for-
mules des erreurs dans chacun des cas.
1.1 Polyn ome de Lagrange
Dans ctte partie on veut bri`evement introduire comment approximer
une fonction dont on ne connat les valeurs quen certains points. Plus
precisement, etant donne n +1 couples (x
i
, y
i
), le probl`eme consiste `a trou-
ver une fonction = (x) telle que (x
i
) = y
i
pour i = 0, . . . , m, o` u les
y
i
sont des valeurs donnees. On dit alors que interpole {y
i
} aux noeuds
{x
i
}. On parle dinterpolation polynomiale quand est un polynome.
Considerons n +1 couples (x
i
, y
i
). Le probl`eme est de trouver un polynome

m
P
m
, appele polyn ome dinterpolation tel que

m
(x
i
) = a
m
x
m
i
+ + a
1
x
i
+ a
0
= y
i
i = 0, . . . , n.
Si n = m on a le resultat suivant :
Theor`eme 1.1. Etant donne n + 1 points distincts x
0
, . . . , x
n
et n + 1
valeurs correspondantes y
0
, . . . , y
n
, il existe un unique polynome
n
P
n
tel
que
n
(x
i
) = y
i
pour i = 0, . . . , n.
Demonstration. Pour prouver lexistence, on va construire explicitement
n
.
Posons
l
i
P
m
: l
i
(x) =
n

j=0
j=i
x x
j
x
i
x
j
i = 0, . . . , n.
Les polynomes {l
i
, i = 0, . . . , n} forment une base de P
n
. En decomposant

n
sur cette base, on a
n
(x) =

n
j=0
b
j
l
j
(x), do` u

n
(x
i
) =
n

j=0
b
j
l
j
(x
i
) = y
i
, i = 0, . . . , n.
et comme l
j
(x
i
) =
ij
, on en deduit immediatement que b
i
= y
i
.
Par consequent, le polynome dinterpolation existe et secrit sous la forme
suvante

n
(x) =
n

i=0
y
i
l
i
(x)
(1)
4
Pour montrer lunicite supposons quil existe un autre polynome
m
de degre
m n, tel que
m
(x
i
) = y
i
pour i = 0, . . . , n. La dierence
n

m
sannule
alors en n + 1 points distincts x
i
, elle est donc nulle. Ainsi,
m
=
n
.
La relation (1) est appelee formule dinterpolation de Lagrange, et les po-
lynomes l
i
(x) sont les polynomes caracteristiques (de Lagrange).
1.2 Formules de quadrature
Soit f une fonction reelle integrable sur lintervalle [a, b]. Le calcul ex-
plicite de lintegral denie I(f) =
_
b
a
f(x) dx peut etre dicile, voire impos-
sible. On appelle formule de quadrature ou formule dintegration numerique
toute formule permettant de calculer une approximation de I(f). Une pos-
sibilite consiste `a remplacer f par une approximation f
n
, o` u n est un entier
positif, et calculer I(f
n
) au lieu de I(f). En posant I
n
(f) = I(f
n
), on a
I
n
(f) =
b
_
a
f
n
(x) dx, n 0. (2)
Si f C
0
([a, b]), lerreur de quadrature E
n
(f) = I(f) I
n
(f) satisfait
|E
n
(f)|
b
_
a
|f(x) f
n
(x)| dx (b a) f f
n

. (3)
Donc si pour un certain n, f f
n

, alors |E
n
(f)| (b a).
Lapproximation f
n
doit etre facilement integrable, ce qui est le cas si, par
exemple, f
n
P
n
. Une approche naturelle consiste `a prendre f
n
=
n
f, le
polynome dinterpolation de Lagrange de f sur un ensemble de n+1 noeuds
distincts {x
i
, i = 0, . . . , n}. Ainsi, on deduit de (2) que
I
n
(f) =
n

i=0
f(x
i
)
b
_
a
l
i
(x) dx, (4)
o` u l
i
est le polynome caracteristique de Lagrange de degre n associe au
noeud x
i
(voir sous-section 1.1). On notera que (4) est un cas particulier de
la formule de quadrature suivante
I
n
(f) =
n

i=0

i
f(x
i
)
(5)
o` u les coeciants
i
de la combinaison lineaire sont donnes par
_
b
a
l
i
(x) dx.
La formule (5) est une somme ponderee des valeurs de f aux points x
i
, pour
5
i = 0, . . . , n. On dit que les nombres
i
R sont ses coecients ou encore
ses poids. Les poids et les noeuds dependent en general de n.
La formule de Lagrange est une formule de quadrature interpolatoire, car la
fonction f est remplacee par son polynome dinterpolation de Lagrange.
On denit le degre dexactitude dune formule de quadrature comme le plus
grand entier r 0 pour lequel
I
n
(f) = I(f), f P
r
.
Toute formule de quadrature interpolatoire utilisant n + 1 noeuds distincts
a un degre dexactitude au moins egal `a n.
En eet, si f P, alors
n
f = f et donc I
n
(
n
f) = I(
n
f). La reciproque
est aussi vraie : une formule de quadrature utilisant n + 1 noeuds distincts
et ayant un degre dexactitude au moins egal `a n est necessairement de type
interpolatoire (sans preuve).
1.3 Formule du rectangle ou du point milieu
Une facon simple dapproximer I(f) peut etre obtenue en remplacant la
fonction f par une constante egale `a la valeur de f au milieu de [a, b] (voir
gure 1a), ce qui nous donne
I
0
(f) =
_
b
a
f
_
a + b
2
_
dx = (b a)f
_
a + b
2
_
(6)
Le poids est donc
0
= b a et le noeud x
0
=
a+b
2
. Si f C
2
([a, b]), lerreur
de quadrature est
E
0
(f) =
h
3
3
f

(), h =
b a
2
, (7)
o` u est dans lintervalle ]a, b[. On en deduit que cette methode est exacte
pour les constantes et les fonctions anes (car dans les deux cas f

() = 0
pour tout ]a, b[ ). Le degre dexactitude du point milieu est donc egal `a 1.
Pour obtenir la formule du point milieu composite on applique la methode
du point milieu sur m sous-intervalles de [a, b], avec m 1. En introduisant
les noeuds de quadrature x
k
= a + (2k + 1)H/2, pour k = 0, . . . , m 1 et
H = (a b)/m, on obtient ainsi :
I
0,m
(f) = H
m1

k=0
f(x
k
), m 1
(8)
Pour linterpretation graphique voir la gure 1b.
6
x
x
0
f(x)
a b
k
x
0
x
x
M
x
f(x)
Fig. 1 a, b
Si f C
2
([a, b]), lerreur de quadrature est donnee par :
E
0,m
(f) = I(f) I
0,m
(f)
=
b a
24
H
2
f

() (9)
o` u ]a, b[. Meme dans ce cas, on a un degre dexactitude egal `a 1. On
remarque que si la longueur des intervalles H nest pas susamment petite,
lerreur de quadrature peut etre assez grande. On retrouve cet inconvenient
aussi pour les deux methodes dintegration numerique presentees ci dessous.
On peut ecrire un petit programme MATLAB (cf. le programme 1) qui utilise
la methode du point milieu pour integrer numeriquement une fonction f.
Programme 1 formule du point milieu composite
function Imp=midpntc(a,b,M,f,varargin)
% MIDPNTC Composite midpoint numerical integration.
% IMP = MIDPNTC(A,B,M,FUN) computes an approximation
% of the integral of the function FUN via the midpoint
% method (with M equispaced intervals ). FUN accepts a
% real vector input x and returns a real vector value.
% FUN can also be an inline object.
%
% [a, b] extremes of the interval
% M number of subintervals
% fun function to be integrated in [a,b]
%
% IMP=MIDPNT(A,B,M,FUN ,P1,P2 ,...) calls the function
% FUN passing the optional parameters P1,P2 ,... as
% FUN(X,P1 ,P2 ,...).
H=(b-a)/M;
x = linspace(a+H/2,b-H/2,M);
fmp=feval(f,x,varargin {:}).* ones(1,M);
Imp=H*sum(fmp);
return
7
Exercice 1.1. Trouver le nombre minimum M de sous intervalles pour avoir
une approximation avec une erreur absolue plus petite que 10
4
avec la
methode du point milieu pour la fonction suivante :
f(x) =
1
1 + (x )
2
sur [0, 5].
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Fig. 2 graphe de f(x)
La primitive de cette fonction est facile `a calculer, il sagit de F(x) = arctan(x ).
On sait donc que :
_
5
0
f(x) dx = arctan(5 ) arctan(0 ) 2.33976
On a resolu ce probl`eme en realisant le programme 2 en MATLAB.
Lexecution de ce programme donne M=52. En eet, avec cette valeur M
lapproximation obtenue avec la methode du point milieu est Imp = 2.33986
et lerreur est donc erreur = 2.33976-2.33986 = -9(10^{-5}).
Lerreur theorique maximale pour cette methode est donnee par lequation
(9). La gure 3 obtenu avec le programme 2 montre bien que la courbe des
erreurs reelles est au-dessous de celle des erreurs theoriques maximales.
8
Programme 2 exercice
function [Imp ,M,erreur ]= exercice ()
f=atan(y-pi);
y=5;
y5=eval(f);
y=0;
y0=eval(f);
intexact =(y5 -y0);
% intexact =2.33976628366847
g=1./(1+(x-pi ).^2);
a=0;
b=5;
M=1;
erreur =10;
%pour faire demarrer la boucle on peut utiliser
%nimporte quel erreur plus grand que 1e-4, nous avons
%pris erreur =10
while ( erreur > 1e-4);
Imp=midpntc(a,b,M,g);
erreur=abs(Imp -intexact );
Y(M)=M;
E(M)= erreur;
h=5/M;
Emaxtheorique(M)=(h^2)*5/24*(1/2);
M=M+1;
end;
loglog(Y,E,.-,Y,Emaxtheorique );
legend(Erreur obtenu avec midpntc ,
Erreur theorique maximale );
return
% Les valeurs returnees par la fonction sont:
% M=nombre minimale de sous intervalles pour lequel
% lerreur est plus petite que 1e-4
% erreur=lerreur obtenu avec M sous -intervalles
% Imp=valeur de lintegrale calcule avec la methode
% du point milieu pour M sous -intervalles
1.4 La formule du trap`eze
La methode du trap`eze est obtenue en remplacant f par son polynome
dinterpolation de Lagrange de degre 1 aux noeuds x
0
= a et x
1
= b, cest-`a-
dire
1
(f) = (f(a) + f(b))/2. Les noeuds de la formule de quadrature sont
donc x
0
= a et x
1
= b et ses poids
0
=
1
= (b a)/2, ceci donne donc :
I
1
(f) =
b a
2
[f(a) + f(b)]
Dans la gure 4a on voit bien quon a approxime lintegrale avec la surface
du trap`ze avec bases f(a) et f(b) et hauteur (b a).
9
10
0
10
1
10
2
10
5
10
4
10
3
10
2
10
1
10
0
10
1


Erreur obtenu avec midpntc
Erreur thorique maximale
Fig. 3 graphique bi-logarithmique des erreurs reelles et des erreurs
theoriques maximales en fonction du nombre de sous-intervalles
Si f C
2
([a, b]), lerreur de cette approximation est donnee par :
E
1
(f) =
_
b
a
(f(x)
1
f(x)) dx
=
1
2
_
b
a
f

((x))(x a)(b x) dx
=
h
3
12
f

(), h = b a,
o` u est un point de lintervalle dintegration. La formule du trap`eze a donc
un degre dexactitude egal `a 1, comme celle du point milieu.
Pour obtenir la formule du trap`eze composite (cf. gure 4b) on remplace
f sur [a, b] par son polynome composite de Lagrange de degre 1 sur m
sous-intervalles, avec m 1. En introduisant les noeuds de quadrature
x
k
= a + kH, pour k = 0, . . . , m et H = (a b)/m, on obtient :
I
1,m
(f) =
H
2
m1

k=0
(f(x
k
) + f(x
k+1
)), m 1, (10)
o` u x
0
= a et x
m
= b. Comme chaque terme de (10) apparat deux fois, sauf
10
x
f(x)
o
= a x x
1
= b
x
f(x)
o
= a x
x
k
x
M
= b
Fig. 4 a, b
le premier et le dernier, la formule du trap`eze composite peut donc secrire :
I
1,m
(f) = H
_
1
2
f(x
0
) + f(x
1
) + . . . + f(x
m1
) +
1
2
f(x
m
)
_
(11)
Si f C
2
([a, b]), on peut montrer que lerreur associee `a cette formule de
quadrature est :
E
1,m
(f) =
b a
12
H
2
f

(), (12)
o` u [a, b]. Le degre dexactitude est donc `a nouveau egal `a 1.
On peut ecrire un petit programme MATLAB (cf. le programme 3) qui
utilise la methode du trap`eze pour integrer numeriquement une fonction f.
Programme 3 formule du trap`eze composite
function Imp = trapezc(a,b,M,f)
% TRAPEZC Composite trapeziodal numerical integration.
% IMP = TRAPEZC(A,B,M,FUN) computes an approximation
% of the integral of the function FUN via the the
% trapeziodal formula (with M equispaced intervals ).
% FUN accepts a real vector input x and returns a real
% vector value. FUN can also be an inline object.
%
% [a, b] extremes of the interval
% M number of subintervals
% fun function to be integrated in [a,b]
h=(b-a)/m; x=[a:h:b]; dim = max(size(x)); y=eval(fun);
if size(y)==1, y=diag(ones(dim))*y; end;
int=h*(0.5*y(1)+ sum(y(2:m))+0.5*y(m+1));
return
Exercice 1.2. Meme question que pour lexercice 1.1 pour la methode du
trap`eze.
On a resolu ce probl`eme avec le meme programme quon a realise pour lexer-
cice 1.1 en remplacant la ligne Imp = midpntc(a,b,M,g) par Imp = trapezc(a,b,M,g).
11
Lexecution du programme donne M=72. En eet, avec cette valeur de M
lapproximation obtenue avec la methode du trap`eze est Imp = 2.33966 et
lerreur est donc erreur = 2.33976-2.33966 = 10^{-4}.
Lerreur theorique maximale pour cette methode est donnee par lequation
(12) et la gure 5 montre bien que la courbe des erreurs reelles est au-dessous
de celle des erreurs theoriques maximales.
10
0
10
1
10
2
10
5
10
4
10
3
10
2
10
1
10
0
10
1


Erreur obtenu avec trapezc
Erreur thorique maximale
Fig. 5 graphique bi-logarithmique des erreurs reelles et des erreurs
theoriques maximales en fonction du nombre de sous-intervalles
1.5 Formule de Cavalieri-Simpson
La formule composite de Cavalieri-Simpson peut etre obtenue en rem-
placant f sur [a, b] par son polynome dinterpolation composite de degre 2
aux noeuds x
0
= a, x 1 = (a + b)/2 et x
2
= b (voir gure 6). Les poids
sont donnes par
0
=
2
= (b a)/6 et
1
= 4(b a)/6, et la formule secrit
I
2
(f) =
b a
6
[f(a) + 4f((a + b)/2) + f(b)]
(13)
12
On peut montrer que, si f C
4
([a, b]), lerreur de quadrature est
E
2
(f) = I(f) I
2
(f) =
1
16
(b a)
5
180
f
(4)
(),
o` u est dans ]a, b[. On en deduit que la formule (13) a un degre dexacti-
tude egal `a 3. En remplacant f par son polynome composite de degre 2 sur
[a, b], on obtient la formule composite correspondant `a (13). On introduit
les noeuds de quadrature x
k
= a + kH/2, pour k = 0, . . . , 2m et on pose
H = (b a)/m, avec m 1. On a alors
I
2,m
=
H
6
_
f(x
0
) + 2
m1

r=1
f(x
2r
) + 4
m1

s=0
f(x
2s+1
) + f(x
2m
)
_
(14)
o` u x
0
= a et x
2m
= b. Si f C
4
([a, b]), lerreur de quadrature associee `a
(14) est
E
2,m
(f) = I(f) I
2,m
(f) =
b a
180
H
4
16
f
(4)
(), (15)
o` u ]a, b[ ; le degre dexactitude de la formule est 3.
x
f(x)
o
= a x = b x x
1 2
= (a+b)/2
Fig. 6
Le programme MATLAB 4 utilise la methode de Simpson pour integrer
numeriquement une fonction f.
Programme 4 formule de Simpson composite
function[Isic]= simpsonc(a,b,M,f,varargin)
% SIMPSON composite Simpson numerical integration.
% ISIC=SIMPSONC(A,B,M,FUN) computes an approximation
% of the integral of the function FUN via the Simpson
% method ( using M equispaced intervals ). FUN accepts
% real vecto input x and returns a real vector value.
% Fun can also be an inline object.
% ISIC=SIMPSONC(A,B,M,FUN ,P1,P2 ,...) calls the
% function FUN passing the optional parametres
% P1 ,P2 ,...as FUN(X,P1,P2 ,...).
H=(b-a)/M;
x=linspace(a,b,M+1);
13
fpm=feval (f,x,varargin {:}).* ones(1,M+1);
fpm (2:end -1)=2* fpm (2:end -1);
Isic=H*sum(fpm )/6;
x=linspace(a+H/2,b-H/2,M);
fpm=feval(f,x,varargin {:}).* ones(1,M);
Isic=Isic +2*H*sum(fpm )/3;
return
Exercice 1.3. Meme question que pour lexercice 1.1 pour la methode de
Simpson.
On a resoulu ce probl`eme avec le meme programme quon a realise pour
lexercice (1.1) en remplacant la ligne Imp = midpntc(a,b,M,g) par
Imp = simpsonc(a,b,M,g). Lexecution du programme donne M = 10. En eet
avec cette valeur de M lapproximation obtenue avec la methode de Simpson
est Imp = 2.33977 et lerreur est erreur = 3.7766e-06.
Lerreur theorique maximale pour cette methode est donnee par lequation
(15) et la gure 7 montre bien que la courbe des erreurs reelles est au-dessous
de celle des erreurs theoriques maximales.
10
0
10
6
10
5
10
4
10
3
10
2
10
1
10
0
10
1
10
2


Erreur obtenu avec simpsonc
Erreur thorique maximale
Fig. 7 graphique bi-logarithmique des erreurs reelles et des erreurs
theoriques maximales en fonction du nombre de sous-intervalles
Remarque. Dans les exercices 1.1, 1.2, 1.3 on a obtenu trois valeurs dierents
pour M. Plus precisement, M = 52 pour la methode du point milieu,
M = 72 pour la methode du trap`eze et M = 10. Cette dierence est due `a
deux choses :
la forme de la courbe,
14
le fait que les premieres deux methodes ont ordre 1 et la troisi`eme a
ordre 2. Ceci implique que les erreurs theoriques maximales du point
milieu et du trap`eze en fonction de M ont le meme comportement
tandis que lerreur pour la methode de Simpson en fonction de M
decroit plus rapidement que pour les deux autres.
On peut voir dans la gure 8 le comportement des erreurs theoriques maxi-
males des trois methodes en fonction du nombre de sous-intervalles pour cet
exercice et on voit bien que les pentes associees `a la premi`ere et `a la seconde
methode sont egales, et que celle associee `a la methode de Simpson est plus
grande. Ceci est donc parfaitement en accord avec la theorie que nous avons
expliquee jusqu`a maintenant.
10
0
10
1
10
2
10
3
10
2
10
1
10
0
10
1
10
2


Point milieu
Trapze
Simpson
Fig. 8 graphique bi-logarithmique des erreurs theoriques maximales en
fonction du nombre de sous-intervalles pour les dierentes methodes
1.6 Formules de Newton-Cotes
Ces formules sont basees sur linterpolation de Lagrange avec noeuds
equirepartis dans [a, b]. Pour n 0 xe, on pose x
k
= x
0
+ kh, k = 0, . . . , n
les noeuds de quadrature. Les formules du point milieu, du trap`eze et de
Simpson sont des cas particuliers des formules de Newton-Cotes correspon-
dant respectivement `a n = 0, n = 1 et n = 2. On denit dans le cas general :
les formules fermees, pour lesquelles x
0
= a, x
n
= b et h =
ba
n
(n 1) ;
15
les formules ouvertes, pour lesquelles x
0
= a + h, x
n
= b h et
h =
ba
n+2
(n 2).
Dans la suite on ne traite que le cas des formules fermees.
Indiquons une propriete interessante des formules de Newton-Cotes : les
poids de quadrature
i
ne dependent explicitement que de n et h et pas de
lintervalle dintegration [a, b]. Pour verier cette propriete dans le cas des
formules fermees, introduisons le changement de variables x = (t) = x
0
+ th.
En notant que (0) = a, (n) = b et x
k
= a + kh, on a
x x
k
x
i
x
k
=
a + th (a + kh)
a + ih (a + kh)
=
t k
i k
.
Ainsi, pour n 1
l
i
(x) =
n

k=0
k=i
t k
i k
=
i
(t), 0 i n,
et on obtient lexpression suivante pour les poids de quadrature

i
=
b
_
a
l
i
(x) dx =
n
_
0

i
(t)h dt = h
n
_
0

i
(t) dt,
do` u on deduit
I
n
(f) = h
n

i=0
w
i
f(x
i
), w
i
=
n
_
0

i
(t) dt
Dans le cas particulier o` u n = 0, comme l
0
(x) =
0
(t) = 1, on a w
0
= 2.
Les coecients w
i
ne dependent pas de a, b, h et f, mais seulement de n; ils
peuvent donc etre tabules. Dans le cas des formules fermees, les polynomes

i
et
ni
, pour i = 0, . . . , n 1, ont par symmetrie la meme integrale. Les
poids correspondants w
i
et w
ni
sont donc egaux pour i = 0, . . . , n1. Pour
cette raison, on ne montre dans la tabelle que la premi`ere moitie des poids.
n 1 2 3 4 5 6
w
0
1/2 1/3 3/8 14/45 95/288 41/140
w
1
0 4/3 9/8 64/45 375/288 216/140
w
2
0 0 0 24/45 250/288 27/140
w
3
0 0 0 0 0 272/140
16
2 Integration numerique multidimensionelle
Nous allons presenter dans cette section la metode de reduction, qui
permet dapproximer lintegrale I(f) =
__

f(x, y) dxdy (f C
0
(

)) si
est normal par rapport `a laxe des x.
Denition 2.1. Soient a, b R tels que a < b et
1
,
2
C
0
(R) telles que

2
(x) >
1
(x),x [a, b]. Un domaine R
2
de la forme = {(x, y)
R
2
, a < x < b,
1
(x) < y <
2
(x)} est appele normal par rapport `a laxe des
x.
x
y

1
(x)
(x)

2
a
b
Fig. 9 Domaine normal par rapport `a laxe des x
La formule de reduction des integrales doubles donne
I(f) =
_
b
a
_

2
(x)

1
(x)
f(x, y) dy dx =
_
b
a
F
f
(x) dx (16)
o` u F
f
(x) =
_

2
(x)

1
(x)
f(x, y) dy.
On peut approcher lintegrale I(f) =
_
b
a
F
f
(x)dx sur [a, b] par une formule
de quadrature composite utilisant M
x
sous-intervalles J
k
(k = 1,. . . ,M
x
), de
longueur H = (ba)/M
x
, et n
(k)
x
+1 noeuds x
k
i
(i = 0,. . . ,n
(k)
x
) dans chaque
sous-intervalle. On peut donc ecrire dans la direction des x
I(f) I
c
n
x
(f) =
M
x

k=1
n
(k)
x

i=0

k
i
F
f
(x
k
i
), (17)
o` u les coecients
k
i
sont les poids de quadrature sur chaque sous-intervalle
J
k
. Pour chaque noeud x
k
i
, lapproximation de lintegrale F
f
(x
k
i
) est eectuee
par une quadrature composite utilisant M
y
sous-intervalles

J
m
(m = 1,. . . ,M
y
),
17
de longueur h
k
i
= (
2
(x
k
i
)
1
(x
k
i
))/M
y
et n
(m)
y
+1 noeuds y
i,k
j,m
(i = 0,. . . ,n
(m)
y
)
dans chaque sous-intervalle.
On utilisant la methode de reduction dans le cas particulier o` u M
x
= M
y
=
M, n
(k)
x
= n
(m)
y
= 0, pour k, m = 1,. . . ,M on a la formule de reduction du
point milieu
I
c
0,0
(f) = H
M

k=1
h
k
0
M

m=1
f(x
k
0
, y
0,k
0,m
), (18)
o` u H = (b a)/M, x
k
0
= a + (k 1/2)H pour k = 1,. . . ,M et y
0,k
0,m
=

1
(x
k
0
) + (m1/2)h
k
0
pour k, m = 1,. . . ,M.
Dans le cas ou M
x
= M
y
= M et n
(k)
x
= n
(m)
y
= 1 pour k, m = 1,. . . ,M on
peut construire de facon analogue la formule de reduction du trap`eze.
On donne ci-dessous (cf. les programmes 5 et 6) deux petits programmes
MATLAB pour la methode de reduction du point milieu et celle du trap`eze.
Les variables phi1 et phi2 doivent contenir les expressions des fonctions
1
et
2
qui delimitent le domaine dintegration.
Programme 5 Formule de reduction du point milieu
function inte=redmidpt(a,b,phi1 ,phi2 ,m,fun)
H=(b-a)/m; xx=[a+H/2:H:b]; dim=max(size(xx));
for i=1:dim ,
x=xx(i); d=eval(phi2 ); c=eval(phi1 ); h=(d-c)/m;
y=[c:h:d]; w=eval(fun ); psi(i)=h*sum(w(1:m));
end;
inte=H*sum(psi(1:m));
Programme 6 Formule de reduction du trap`eze
function inte=redtrap(a,b,phi1 ,phi2 ,m,fun)
H=(b-a)/m; xx=[a:H:b]; dim=max(size(xx));
for i=1:dim ,
x=xx(i); d=eval(phi2 ); c=eval(phi1 ); h=(d-c)/m;
y=[c:h:d]; w=eval(fun);
psi(i)=h*(0.5*w(1)+ sum(w(2:m))+0.5*w(m+1));
end;
inte=H*sum (0.5* psi (1)+ sum(psi(2:m))+0.5* psi(m+1));
Exercice 2.1. On utilise les formules de reduction du point milieu et du
trap`eze pour calculer lintegrale double I(f) =
__

y
1+xy
dxdy sur le domaine
= ]0, 1[
2
. On a execute le programmes 5 et 6 avec M = 2
i
, pour i = 1,. . . ,10
et on a trace dans les deux cas lerreur absolue avec une echelle logarithmique
en fonction de M. Lintegrale exacte est I(f) = log(4) 1. Ensuite on sest
interesses a savoir pour quel M lerreur absolue est de lordre de 10
6
.
Les deux programmes quon a utilisee (voir programmes 7 et 8) nous donnent
que la methode de reduction du point milieu est plus precise de celle du
18
trap`eze, en eet avec M = 2
10
on touve que lerreur pour la methode du
point milieu est 1.1141 10
08
tandis que pour la methode du trapeze il est
2.2282 10
08
. Pour avoir une erreur de lordre de 10
6
on trouve M = 110
pour la metode de reduction du point milieu et M = 154 pour celle du
trapeze.
10
0
10
1
10
2
10
3
10
4
10
8
10
7
10
6
10
5
10
4
10
3
10
2
10
1


redmidpt
redtrap
Fig. 10 graphique bi-logarithmique des erreurs en fonction de M pour les
methodes de reduction du point milieu (redmidpt) et du trap`eze (redtrap)
19
Programme 7 exercice
function [Imp ,M,erreur ]= exercice ()
function [Imp1 ,Imp2 ,erreur1 ,erreur2 ]= exo11a ()
f=y./(1+x.*y);
intexact =(log (4) -1);
a=0;
b=1;
fi1=0;
fi2=1;
for i=0:10;
M=2^i;
Imp1=redmidpt(a,b,fi1 ,fi2 ,M,f);
Imp2=redtrap(a,b,fi1 ,fi2 ,M,f);
erreur1=abs(Imp1 -intexact );
erreur2=abs(Imp2 -intexact );
Y(i+1)=M;
E1(i+1)= erreur1;
E2(i+1)= erreur2;
end;
loglog(Y,E1,.-,Y,E2,o-);
legend(redmidpt , redtrap );
return
% Les valeurs returnes par la fonction sont:
% erreur1=lerreur obtenu avec M sous -interalles
%pour la methode redmidpt
% erreur2=lerreur obtenu avec M sous -interalles pour
% la methode redtrap
% Imp1=valeur de lintegrale calcule
%avec la methode redmidpt
% Imp1=valeur de lintegrale calcule
%avec la methode redtrap
20
Programme 8 exercice
function [Imp ,M,erreur ]= exercice ()
function [Imp1 ,Imp2 ,M1 ,M2 ,erreur1 ,erreur2 ]= exo11b ()
f=y./(1+x.*y);
intexact =(log (4) -1);
a=0;
b=1;
fi1=0;
fi2=1;
erreur1 =10;
erreur2 =10;
M1=1;
M2=1;
while ( erreur1 > 1e-6);
Imp1=redmidpt(a,b,fi1 ,fi2 ,M1 ,f);
erreur1=abs(Imp1 -intexact );
Y1(M1)=M1;
E1(M1)= erreur1;
M1=M1+1;
end;
while ( erreur2 > 1e-6);
Imp2=redtrap(a,b,fi1 ,fi2 ,M2 ,f);
erreur2=abs(Imp2 -intexact );
Y2(M2)=M2;
E2(M2)= erreur2;
M2=M2+1;
end;
loglog(Y1,E1,.-,Y2,E2 ,o-);
legend(Erreur obtenu avec redmidpt ,
Erreur obtenu avec redtrap );
return;
% Les valeurs returnes par la fonction sont:
% M1=nombre minimale de sous intervalles
% pour lequel lerreur est
% plus petite que 1e-4 avec la methode redmidpt
% M2=nombre minimale de sous -intervalles
% pour lequel lerreur est
% plus petite que 1e-4 avec la methode redtrap
% erreur1=lerreur obtenu avec M1 sous -interalles
% pour la methode redmidpt
% erreur2=lerreur obtenu avec M2 sous -interalles
% pour la methode redtrap
% Imp1=valeur de lintegrale calule
% avec la methode redmidpt pour M1
% sous intervalles
% Imp2=valeur de lintegrale calcule
% avec la methode redtrap pour M2
% sous -intervalles
21
References
[1] Alo Quateroni, Riccardo Sacco, Fausto Saleri. Methodes numeriques pour le calcul
scientique. Springer-Verlag France, 2000.
[2] Jean-Pierre Demailly. Analyse numerique et equations. Presses Universitaires de Gre-
noble, 1996.
[3] Lars Elden et Linde Wittmeyer-Koch. Numerical Analysis - An Introduction. Academic
Press, Inc., 1990.
22

Das könnte Ihnen auch gefallen