ChronoMath, une chronologie des MATHÉMATIQUES
à l'usage des professeurs de mathématiques, des étudiants et des élèves des lycées & collèges


 

Méthode des trapèzes             Accéder au programme en ligne , Autres méthodes

La méthode d'intégration approchée, dite des trapèzes, décrite ci-après, introduite par Newton & Cotes est plus précise que la méthode élémentaire, dite des rectangles, correspondant aux sommes de Riemann consistant à remplacer la fonction initiale par une approximation en escalier : sur l'intervalle [xi, xi+1], on remplace l'arc de courbe par le segment [MiNi+1], donc l'aire sous la courbe, par le rectangle « xi Mi Ni+1 xi+1 ».

La méthode des trapèzes étudiée ci-après remplace l'arc de courbe par le segment [MiMi+1], donc l'aire sous la courbe, par le trapèze colorié en rose « xi Mi Mi+1 xi+1 ».

Il est important de remarquer que si f est monotone (i.e. croissante ou bien décroissante) sur [a,b], l'approximation J obtenue par la méthode des trapèzes n'est autre que la moyenne arithmétique des aires des rectangles encadrant l'intégrale cherchée, à savoir :

         

   exercice d'application

Soit f une fonction continue et positive sur un intervalle [a,b] dont on veut calculer l'intégrale :

     (intégrale au sens de Riemann)

Si nous choisissons une subdivision régulière de l'intervalle [a,b] en n sous-intervalles [xi,xi+1] avec i variant de o à n :

xo = a < x1< x2 < ... < xn = b,

on a xi+1 - xi = (b - a)/n. La somme des aires colorées en jaune pointé représente une approximation J de l'intégrale I. Chaque aire est celle d'un trapèze de hauteur xi+1 - xi, de bases respectives f(xi) et f(xi+1). Par suite :


 
Évaluation de l'erreur commise :

Évaluons un majorant de l'erreur commise par ce procédé (et représentée concrètement en bleu-vert sur le schéma ci-dessus) : supposons f de classe C2 sur l'intervalle [a,b] : f est dérivable jusqu'à l'ordre 2 au moins et ses dérivées f ' et f " sont continues. Posons h = (b - a)/n. L'erreur ei(h) sur [xi, xi+1] = [xi,xi + h] est, selon la formule de l'aire d'un trapèze :

En utilisant la 1ère formule de Maclaurin, on obtient immédiatement :

Il s'agit maintenant de faire la somme des erreurs pour i variant de 0 à n-1 : notons M le maximum de |f ''(x)| sur [a,b] : la valeur absolue de l'erreur commise est majorée par e = nM x h3/12, c'est à dire :

On voit que cette erreur est en 1/n2 : si on multiplie par 10 le nombre de points de la subdivision, l'erreur est, en théorie, divisée par 100. La méthode des trapèzes est donc plus précise que la méthode élémentaire des rectangles, dont on montre facilement, que l'erreur est en 1/n, plus précisément inférieure à :

 

En effet, l'erreur sur [xi, xi + h] est ici :

Si f est au moins de classe C1 (continûment dérivable), le développement de Taylor avec reste de Lagrange de f(x) est au voisinage de x = xi est f(x) = f(xi) + (x - xi)f '(ui) , ui [xi, xi + h]. Dans l'intégrale, poser t = x - xi. On intègre alors de 0 à h et ei(h) = ½h2f '(ui). Mais h = (b - a)/n. Il n'y a plus qu'à sommer et majorer.

Programmation de la méthode en JavaScript :


<SCRIPT LANGUAGE=JavaScript>

var x,fonc
var pi=3.141592653589793;
var e=2.7182818284590452;
function trap()
{
with (Math)
{
fonc="1/x"
a=1 ; b="" ; n="100";
fonc=prompt("Entrez votre fonction :",fonc)
a=eval(prompt("Entrez a :",a))
b=eval(prompt("Entrez b :",b))
n=prompt("Nombre de points n= ",n)
if (n==null) {return} else {n =eval(n)};
h=(b-a)/n ; s=(f(a)+f(b))/2;
for(i=1;i<=n-1;i++) {s=s+f(a+i*h)}
alert("Integrale = "+s*h)
}
}

function f(x)
{
with(Math){y=eval(fonc);return y}
}
</SCRIPT>

  Pour tester ce programme vous devez entrer la fonction utilisée en utilisant une syntaxe comprise par le langage JavaScript . Cependant, l'instruction with (Math), placée en début de procédure, évite à l'utilisateur de préciser Math devant chaque fonction mathématique utilisée.

  • multiplication : * ,   division : /
  • racine carrée : sqrt(x)                 
  • puissance : pow(x,n). Pour x2 ou x3, utiliser plutôt x*x et x*x*x
  • fonctions usuelles : sin(), cos(), tan(), atan(), acos(), asin(), abs(); log népérien : log() , exponentielle de base e : exp() , ...
  • pi et e sont compris par le programme
   fonctions mathématiques usuelles


  Par défaut f(x) = 1/x. C'est dire que nous calculons des approximations du logarithme népérien de x en donnant à la borne inférieure a la valeur 1 et en donnant à b une valeur strictement positive de notre choix.

Pour cette fonction, très "régulière", le programme est assez performant mais n'espérez pas dépasser 4 ou 5 décimales exactes... l'évaluation de l'erreur commise n'est pas simple à programmer car il s'agit de calculer un majorant de f " sur l'intervalle d'intégration et la fonction à intégrer peut posséder une dérivée seconde difficile à étudier.

Autres méthodes :


© Serge Mehl - www.chronomath.com