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

Étude d'une série #4      Calcul de p par intégration d'un développement en série
    Programme JavaScript        version tableur , #3 calcul semblable selon Gregory        #1 , #2

Si (un) est une suite géométrique de raison r, | r | < 1, de premier terme 1, on sait que la somme Sn = 1 + r + r2 + ... rn-1 de ses n premiers termes a pour limite le nombre :

Par suite, pour tout x de l'intervalle ouvert ]-1,+1[, nous pouvons écrire, avec r = -x2 :

(s)      

En posant fn(x) = (-1)nx2n, la série de fonctions ci-dessus converge normalement sur tout intervalle [0,a] inclus dans [0,1[. En effet, pour tout x de l'intervalle [0,a], on a : | fn(x) | = x2n  < a2n et ce dernier nombre est le terme général d'une série géométrique convergente puisque 0 < a2 < 1.

Par ailleurs f : xtan(x) réalise une bijection de [0,p/4[ sur [0,1[. En posant g = f-1, g est la fonction réciproque de f, c'est à dire xatan(x) qui réalise donc une bijection dérivable de [0,1[ sur [0,p/4[ et l'on a :

La convergence étant normale, on peut déduire par intégration terme à terme :

On a en particulier, lorsque a = 1/3, g(1/3) = p/6, et on en déduit :

La formule obtenue est facilement programmable et converge assez rapidement mais pour nous en assurer nous devons majorer le reste en. Notons (S) la série de terme général :

(S) est manifestement alternée, strictement décroissante et à termes positifs. Il suit, selon un résultat de Leibniz, que | en | est strictement inférieur à | tn+1 |.

Cette constatation est fondamentale car non seulement elle prouve la convergence du procédé mais elle permet aussi d'évaluer l'erreur commise sur ¹ en s'arrêtant au rang n. Le défaut dans ce type de calcul est évident : on ajoute à une somme de type Sn-1, un terme tn tendant vers 0.

On ne s'étonnera pas qu'à partir d'un certain rang, nous aurons Sn = Sn-1 car le terme | tn | décroissant vers 0 deviendra nul pour la machine !

<SCRIPT LANGUAGE=JavaScript>
function go()
{
sn=1; snm1=0; tn=0; n=0; signe=1
while (snm1!=sn)   
//-- tant que sn non égal à snm1
{
n++;
tn=1/(2*n+1)/Math.pow(3,n)
signe=-signe;
snm1=sn ; sn=sn+tn*signe;
er=tn;
}
k=2*Math.sqrt(3)
alert("pi = "+k*sn+"\n"+"Erreur maxi. = "+er+"rang n = "+n)
}
</SCRIPT>

Programmation de la méthode en JavaScript

 sn et snm1 désignent respectivement Sn et Sn-1. Les calculs se poursuivent tant que sn et snm1 sont distincts.

 fonctions mathématiques usuelles


 
 

 

 Toutes ces décimales sont exactes !

  1000 décimales de p ?


© Serge Mehl - www.chronomath.com