304
8 Int´ egration num´ erique
on peut recourir aux formules composites, dont l’analyse d’erreur sera effectu´ ee
` a la Section 8.4, ou encore aux formules de quadrature de Gauss (Chapitre 9)
qui poss` edent le degr´ e d’exactitude le plus grand et dont les noeuds ne sont
pas ´ equir´ epartis.
Les formules ferm´ ees de Newton-Cotes, pour 1 ≤ n ≤ 6, sont impl´ ement´ ees
en MATLAB dans le Programme 63.
Programme 63 - newtcot : Formules ferm´ ees de Newton-Cotes
function int = newtcot(a,b,n,fun)
%NEWTCOT Formules ferm´ ees de Newton-Cotes.
% INT=NEWTCOT(A,B,N,FUN) calcule une approximation de l’int´ egrale de la
% fonction FUN sur ]A,B[ par la formule ferm´ ee de Newton-Cotes `
a N noeuds.
% FUN accepte en entr´ ee un vecteur r´ eel x et renvoie un vecteur r´ eel.
h=(b-a)/n;
n2=fix(n/2);
if n > 6, error(’n vaut au plus 6’); end
a03=1/3; a08=1/8; a45=1/45; a288=1/288; a140=1/140;
alpha=[0.5
0
0
0; ...
a03
4*a03 0
0; ...
3*a08 9*a08 0
0; ...
14*a45 64*a45 24*a45 0; ...
95*a288 375*a288 250*a288 0; ...
41*a140 216*a140 27*a140 272*a140];
x=a; y(1)=eval(fun);
for j=2:n+1
x=x+h; y(j)=eval(fun);
end
int=0;
j=[1:n2+1]; int=sum(y(j).*alpha(n,j));
j=[n2+2:n+1]; int=int+sum(y(j).*alpha(n,n-j+2));
int=int*h;
return
8.4 Formules composites de Newton-Cotes
Les exemples de la Section 8.2 ont d´ ej` a montr´ e qu’on peut construire les
formules composites de Newton-Cotes en rempla¸ cant f par son polynˆ ome
d’interpolation de Lagrange composite introduit `
a la Section 7.1.
Le proc´ ed´ e g´ en´ eral consiste ` a d´ ecomposer l’intervalle d’int´ egration [a, b] en
m sous-intervalles T j = [y j , y j+1 ] tels que y j = a + jH, o` u H = (b − a)/m
pour j = 0, . . ., m. On utilise alors, sur chaque sous-intervalle, une formule
interpolatoire de noeuds {x
(j)
k , 0 ≤ k ≤ n} et de poids {α
(j)
k , 0 ≤ k ≤ n}.
8 Int´ egration num´ erique
on peut recourir aux formules composites, dont l’analyse d’erreur sera effectu´ ee
` a la Section 8.4, ou encore aux formules de quadrature de Gauss (Chapitre 9)
qui poss` edent le degr´ e d’exactitude le plus grand et dont les noeuds ne sont
pas ´ equir´ epartis.
Les formules ferm´ ees de Newton-Cotes, pour 1 ≤ n ≤ 6, sont impl´ ement´ ees
en MATLAB dans le Programme 63.
Programme 63 - newtcot : Formules ferm´ ees de Newton-Cotes
function int = newtcot(a,b,n,fun)
%NEWTCOT Formules ferm´ ees de Newton-Cotes.
% INT=NEWTCOT(A,B,N,FUN) calcule une approximation de l’int´ egrale de la
% fonction FUN sur ]A,B[ par la formule ferm´ ee de Newton-Cotes `
a N noeuds.
% FUN accepte en entr´ ee un vecteur r´ eel x et renvoie un vecteur r´ eel.
h=(b-a)/n;
n2=fix(n/2);
if n > 6, error(’n vaut au plus 6’); end
a03=1/3; a08=1/8; a45=1/45; a288=1/288; a140=1/140;
alpha=[0.5
0
0
0; ...
a03
4*a03 0
0; ...
3*a08 9*a08 0
0; ...
14*a45 64*a45 24*a45 0; ...
95*a288 375*a288 250*a288 0; ...
41*a140 216*a140 27*a140 272*a140];
x=a; y(1)=eval(fun);
for j=2:n+1
x=x+h; y(j)=eval(fun);
end
int=0;
j=[1:n2+1]; int=sum(y(j).*alpha(n,j));
j=[n2+2:n+1]; int=int+sum(y(j).*alpha(n,n-j+2));
int=int*h;
return
8.4 Formules composites de Newton-Cotes
Les exemples de la Section 8.2 ont d´ ej` a montr´ e qu’on peut construire les
formules composites de Newton-Cotes en rempla¸ cant f par son polynˆ ome
d’interpolation de Lagrange composite introduit `
a la Section 7.1.
Le proc´ ed´ e g´ en´ eral consiste ` a d´ ecomposer l’intervalle d’int´ egration [a, b] en
m sous-intervalles T j = [y j , y j+1 ] tels que y j = a + jH, o` u H = (b − a)/m
pour j = 0, . . ., m. On utilise alors, sur chaque sous-intervalle, une formule
interpolatoire de noeuds {x
(j)
k , 0 ≤ k ≤ n} et de poids {α
(j)
k , 0 ≤ k ≤ n}.
