118
4 Intégration et différentiation numérique
Quand f ∈ C
4 ([a, b]), on peut montrer que l’erreur vérifie
I(f) − I
c
s (f) = −
b − a
180
H
4
16
f
(4) (ξ),
(4.22)
où ξ est un point de [a, b]. La formule est donc précise à l’ordre 4 en H.
Quand (4.21) est appliqué à un intervalle [a, b], on obtient la formule de
quadrature de Simpson
I s (f) =
b − a
6
[f(a) + 4f((a + b)/2) + f(b)]
(4.23)
L’erreur est alors donnée par
I(f) − I s (f) = −
1
16
(b − a)
5
180
f
(4) (ξ),
(4.24)
pour un ξ ∈ [a, b]. Son degré d’exactitude est donc égal à 3.
On a implémenté la formule composite de Simpson dans le Programme 4.2.
Programme 4.2. simpsonc : formule de quadrature composite de Simpson
function [ Isic ]= simpsonc (a ,b ,M , fun , varargin )
% SIMPSONC i n t é grat ion n u m é rique c o m posi te de Simpson .
% ISIC = SIMPSONC (A ,B ,M , FUN) calcule une a p p r o xima tio n
% de l ’ i n t é grale de la fonction FUN par la méthode de
% Simpson ( avec M i n t e rva lles é q u i répar tis).
% FUN prend en entrée un vecteur réel x et renvoie un
% vecteur de réels .
% FUN peut aussi être un objet inline , une fonction
% anonyme ou définie par un m - file .
% ISIC = SIMPSONC (A ,B ,M , FUN , P1 ,P2 ,...) appelle la
% fonction FUN en passant les p a r amè tres o p t i onn els
% P1 , P2 ,... de la maniere suivante : FUN (X ,P1 , P2 ,...).
H =(b - a )/M ;
x = linspace (a ,b , M +1);
fpm = feval ( fun ,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 ( fun ,x , varargin {:}).* ones (1 , M );
Isic = Isic +2*H * sum( fpm )/3;
return
Exemple 4.2 (Démographie) Considérons le Problème 4.4. Pour calculer
le nombre d’individus dont la taille est comprise entre 1.8 et 1.9 m, on doit
évaluer l’intégrale (4.3) pour h = 1.8 et Δh = 0.1. On se propose pour cela
d’utiliser la formule composite de Simpson avec 100 sous-intervalles :
N = inline ([ ’M /( sigma * sqrt (2* pi ))* exp ( -(h - hbar ).^2 ’ ...
’ ./(2* sigma ^2)) ’] , ’h ’, ’M ’ , ’ hbar ’, ’ sigma ’)
M = 200; hbar = 1.7; sigma = 0.1;
int = simpsonc (1.8 , 1.9 , 100 , N , M , hbar , sigma )
Précédent

- 130/374

Suivant