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 3/8 de Simpson          Accéder au programme en ligne

Il s'agit en fait d'une méthode d'interpolation de Newton-Cotes au moyen d'un polynôme de degré 3. L'algorithme n'est pas très performant eu égard à la formule beaucoup plus lourde que la méthode usuelle de Simpson (parfois dite méthode 1/3) donnant des résultats tout aussi précis. Cette dernière était basée sur une subdivision élémentaire à deux intervalles; le jeu consiste ici à trouver une toute aussi jolie formule pour trois intervalles... :

Soit f une fonction continue sur [a,b], il s'agit d'approcher l'intégrale :

Choisissons une subdivision régulière de l'intervalle [a,b] :

a = xo < x1 < x2 < x3 = b

et recherchons un polynôme P de degré 3 qui coïncide avec f en chaque xi. Nous choisissons le polynôme d'interpolation de Lagrange :

où yi désigne f(xi). Posons h = (b - a)/3. On a x1 = a + h, x2 = a + 2h, x3 = b = a + 3h.

L'intégration de ce polynôme sur l'intervalle [a,b] = [a,a + 3h] fournira une approximation de l'intégrale cherchée. Quoique fastidieux, les calculs ne sont pas difficiles mais les erreurs dans les indices et les calculs partiels sont quasiment incontournables...

Si on appelle A(x) le premier terme de P(x), on trouvera :

On intègre A(x) entre a et a + 3h. On obtient (faites le calcul en restant calme) : 3h yo/8.

Appelons B(x) le second terme de P(x), on trouvera :

On intègre B(x) entre a et a + 3h. Vous devriez obtenir ou admettre le résultat : 9h y1/8.

En procédant de même pour les deux derniers termes de P(x), on obtient finalement la belle formule des 3/8 :

En conséquence, pour une intégration avec un grand nombre de points, en regroupant les points de la subdivision 4 par 4 :

 (xo = a, x1, x2, x3) , (x3, x4, x5, x6) , (x6, x7, x8, x9) , ... , (xn-3, xn-2, xn-1, xn = b)

On remarque que que n doit être multiple de 3 et en utilisant la relation de Chasles pour les intégrales, on obtient la formule générale des 3/8 : 

      (3k variant de 0 à n-3)
 
Programmation de la méthode en JavaScript :

  Pour tester ce programme vous devez entrer votre fonction en utilisant une syntaxe comprise par le langage JavaScript. 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. Les opérations et fonctions usuelles sont les suivantes :

 fonctions mathématiques usuelles

Par défaut f(x) = 2x/(1+x2), a = 0, b = 3, n =99 : f est la fonction dérivée de F : x ln(1 + x2). Le programme calcule donc une approximation de F(3) - F(0) = ln10 (logarithme népérien de 10).



 

 

<SCRIPT LANGUAGE=JavaScript>

var fonc
var pi=3.141592653589793;
var e=2.7182818284590452;
function meth38()
{with (Math)
{fonc="2*x/(1+x*x)";a=0 ; b=3 ; n=99;
fonc=prompt("Entrez votre fonction :",fonc);if (fonc==null) {return}
a=eval(prompt("Entrez a :",a));if (a==null) {return}
b=eval(prompt("Entrez b :",b));if (b==null) {return}
n=prompt("Nombre de points voulus = ",n);
if (n==null) {return} else {n =eval(n)};
k=n%3;n=n*(k==0)+(n+2)*(k==1)+(n+1)*(k==2)
if (k!=0){alert("J'ai choisi n = "+n+ " (multiple de 3).")}
h=(b-a)/n;
j=0;
for(i=1;i<=n-2;i=i+3){x=a+i*h;j=j+3*f(x)+3*f(x+h)+2*f(x+2*h)}
j=j+f(a)-f(b)
alert("Integrale = "+j*h*3/8)
}

function f(x)
{with(Math){y=eval(fonc);return y}}


</SCRIPT>

Par construction, l'algorithme fournit des valeurs exactes pour les polynômes de d° < 4. Bien que son erreur soit théoriquement en 1/n5, elle n'a pas vraiment d'intérêt car les résultats ne sont généralement pas meilleurs que par la méthode de Simpson usuelle.

Autres méthodes :


© Serge Mehl - www.chronomath.com