310
8 Int´ egration num´ erique
Exemple 8.6 La Table 8.9 montre les r´ esultats obtenus en ex´ ecutant le Programme
64 pour calculer la quantit´ e α0 dans les deux cas α
(1)
0 =
π
0
e
x cos(x)dx = −(e
π +1)/2
et α
(2)
0 =
1
0
√
xdx = 2/3.
On a pris n ´ egal `
a 9. Dans la seconde et la troisi` eme colonnes figurent les modules
des erreurs absolues E
(r)
k
= |α
(r)
0 − A
(r)
k+1,k+1 |, pour r = 1, 2 et k = 0, . . . , 6.
La convergence vers z´ ero est beaucoup plus rapide pour E
(1)
k
que pour E
(2)
k . La
premi` ere fonction ` a int´ egrer est en effet infiniment d´ erivable alors que la seconde est
seulement continue.
•
Table 8.9. Int´ egration de Romberg pour le calcul approch´ e de
π
0
e
x cos(x)dx (erreur
E
(1)
k ) et
1
0
√
xdx (erreur E
(2)
k )
k
E
(1)
k
E
(2)
k
k
E
(1)
k
E
(2)
k
0
22.71
0.1670
4
8.923 · 10
−7
1.074 · 10
−3
1
0.4775
2.860 · 10
−2
5 6.850 · 10
−11
3.790 · 10
−4
2 5.926 · 10
−2
8.910 · 10
−3
6 5.330 · 10
−14
1.340 · 10
−4
3 7.410 · 10
−5
3.060 · 10
−3
7
0
4 .734 · 10
−5
L’algorithme de Romberg est impl´ ement´ e en MATLAB dans le Programme 64.
Programme 64 - romberg : Int´ egration de Romberg
function int = romberg(a,b,n,fun)
%ROMBERG Int´ egration de Romberg
% INT=ROMBERG(A,B,N,FUN) calcule une approximation de l’int´ egrale de la
% fonction FUN sur ]A,B[ par la m´ ethode de Romberg.
% FUN accepte en entr´ ee un vecteur r´ eel x et renvoie un vecteur r´ eel.
for i=1:n+1
A(i,1)=trapezc(a,b,2ˆ(i-1),fun);
end
for j=2:n+1
for i=j:n+1
A(i,j)=(4ˆ(j-1)*A(i,j-1)-A(i-1,j-1))/(4ˆ(j-1)-1);
end
end
int=A(n+1,n+1);
return
8.6 Int´ egration automatique
Un programme d’int´ egration num´ erique automatique, ou int´ egrateur automatique, est un ensemble d’algorithmes qui fournit une approximation de l’int´ egrale I(f) =
b
a
f(x)dx avec une certaine tol´ erance.
8 Int´ egration num´ erique
Exemple 8.6 La Table 8.9 montre les r´ esultats obtenus en ex´ ecutant le Programme
64 pour calculer la quantit´ e α0 dans les deux cas α
(1)
0 =
π
0
e
x cos(x)dx = −(e
π +1)/2
et α
(2)
0 =
1
0
√
xdx = 2/3.
On a pris n ´ egal `
a 9. Dans la seconde et la troisi` eme colonnes figurent les modules
des erreurs absolues E
(r)
k
= |α
(r)
0 − A
(r)
k+1,k+1 |, pour r = 1, 2 et k = 0, . . . , 6.
La convergence vers z´ ero est beaucoup plus rapide pour E
(1)
k
que pour E
(2)
k . La
premi` ere fonction ` a int´ egrer est en effet infiniment d´ erivable alors que la seconde est
seulement continue.
•
Table 8.9. Int´ egration de Romberg pour le calcul approch´ e de
π
0
e
x cos(x)dx (erreur
E
(1)
k ) et
1
0
√
xdx (erreur E
(2)
k )
k
E
(1)
k
E
(2)
k
k
E
(1)
k
E
(2)
k
0
22.71
0.1670
4
8.923 · 10
−7
1.074 · 10
−3
1
0.4775
2.860 · 10
−2
5 6.850 · 10
−11
3.790 · 10
−4
2 5.926 · 10
−2
8.910 · 10
−3
6 5.330 · 10
−14
1.340 · 10
−4
3 7.410 · 10
−5
3.060 · 10
−3
7
0
4 .734 · 10
−5
L’algorithme de Romberg est impl´ ement´ e en MATLAB dans le Programme 64.
Programme 64 - romberg : Int´ egration de Romberg
function int = romberg(a,b,n,fun)
%ROMBERG Int´ egration de Romberg
% INT=ROMBERG(A,B,N,FUN) calcule une approximation de l’int´ egrale de la
% fonction FUN sur ]A,B[ par la m´ ethode de Romberg.
% FUN accepte en entr´ ee un vecteur r´ eel x et renvoie un vecteur r´ eel.
for i=1:n+1
A(i,1)=trapezc(a,b,2ˆ(i-1),fun);
end
for j=2:n+1
for i=j:n+1
A(i,j)=(4ˆ(j-1)*A(i,j-1)-A(i-1,j-1))/(4ˆ(j-1)-1);
end
end
int=A(n+1,n+1);
return
8.6 Int´ egration automatique
Un programme d’int´ egration num´ erique automatique, ou int´ egrateur automatique, est un ensemble d’algorithmes qui fournit une approximation de l’int´ egrale I(f) =
b
a
f(x)dx avec une certaine tol´ erance.
