informatique - S2 2009
TP 5 - calculs approchés d’intégrales
département Mesures Physiques - IUT1 - GrenobleIl existe de nombreuses manières de calculer une valeur approchée de l’intégraleRb
a f d’une fonction continuef. En particulier :
– la méthode des rectangles consiste à approcher l’intégrale, vue comme l’aire située sous la courbe, par la somme des aires denrectangles.
Plus précisément, on répartit régulièrement entrea etb n+ 1 points x0 = a, x1, . . ., xn+1 = b, puis on approche l’intégrale par b−a
n
Pn−1 i=0 f(xi)
(la largeur de chaque rectangle est b−a
n , et les hauteurs sontf(xi)).
– la méthode des trapèzes consiste à approcher l’intégrale par la somme des aires des trapèzes de largeur [xi, xi+1] et de hauteurs f(xi) à gauche,f(xi+1)à droite.
On approche donc l’intégrale par b−a n
Pn−1 i=0
f(xi) +f(xi+1)
2 .
(chaque terme de la somme est la moyenne des hauteurs gauche et droite d’un trapèze)
On voit ici à gauche les rectangles, et à droite les trapèzes, utilisés pour cette approximation :
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000
11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 1111
00000 00000 00000 00000 00000 00000 00000 00000 00000 00000 00000 00000 00000 00000
11111 11111 11111 11111 11111 11111 11111 11111 11111 11111 11111 11111 11111 11111
00000 00000 00000 00000 00000 00000 00000 00000 00000 00000 00000 00000 00000 00000 00000 00000 00000 00000 00000
11111 11111 11111 11111 11111 11111 11111 11111 11111 11111 11111 11111 11111 11111 11111 11111 11111 11111 11111
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000
11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 1111
00000 00000 00000 00000 00000 00000 00000 00000 00000 00000 00000 00000 00000 00000 00000 00000 00000
11111 11111 11111 11111 11111 11111 11111 11111 11111 11111 11111 11111 11111 11111 11111 11111 11111
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000
11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 1111
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111
00000 00000 00000 00000 00000 00000 00000 00000 00000 00000 00000 00000 00000 00000 00000 00000 00000 00000 00000 00000 00000
11111 11111 11111 11111 11111 11111 11111 11111 11111 11111 11111 11111 11111 11111 11111 11111 11111 11111 11111 11111 11111
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000
11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 1111
xi
x0 =ax1 ... ... xn=b x0 =ax1 ... xi ... xn=b
Nous allons tester ces deux méthodes sur un exemple.
1. Ecrire une fonctionfqui prend pour paramètre un réelxet renvoie la valeurln(1 +x).
2. Ecrire la fonctionrectanglesqui prend pour paramètres deux réels aetb, un entiern, et renvoie la valeur approchée deRb
a f obtenue par la méthode des rectangles.
3. Ecrire la fonctiontrapezesqui prend pour paramètres deux réelsa etb, un entiern, et renvoie la valeur approchée deRb
a f obtenue par la méthode des trapèzes.
4. Ecrire une fonctionmainqui propose à l’utilisateur un menu taper :
’1’ pour rentrer les bornes de l’intégrale
’2’ pour rentrer le nombre de subdivisions
’r’ pour faire un calcul par la méthode des rectangles
’t’ pour faire un calcul par la méthode des trapèzes
’q’ pour quitter.
et qui agit en conséquence.
remarque : on ne demande pas au programme de pallier l’imbécillité de l’utilisateur, qui par exemple demanderait un calcul sans avoir rentré les bornes, ...
5. Savez-vous calculer la valeur exacte deR1
0 f?(la réponse devrait être oui...)
Comparez-la aux valeurs obtenues par les méthodes numériques ci- dessus pourn = 10,n= 100,n = 1000.