next up previous contents index
suivant: La méthode de Romberg monter: Accélération de convergence : précédent: Application au calcul de   Table des matières   Index


Application au calcul de la constante d'Euler

Par définition la constante d'Euler $ \gamma$ est la limite quand n tend vers l'infini de :

un = $\displaystyle \sum_{{k=1}}^{{n}}$$\displaystyle {\frac{{1}}{{k}}}$ - ln(n)

(voir aussi 8.3.4 et 8.4.2)
On a donc : $ \gamma$ = S = 1 + $ \sum_{{k=2}}^{{+\infty}}$$ {\frac{{1}}{{k}}}$ + ln(1 - $ {\frac{{1}}{{k}}}$) On a :

Rp = S - 1 - $\displaystyle \sum_{{k=2}}^{p}$$\displaystyle {\frac{{1}}{{k}}}$ + ln($\displaystyle {\frac{{k-1}}{{k}}}$) = $\displaystyle \sum_{{k=p+1}}^{\infty}$$\displaystyle {\frac{{1}}{{k}}}$ + ln(1 - $\displaystyle {\frac{{1}}{{k}}}$)

D'après la comparaison avec l'intégrale de la fonction décroissante f (x) = ln(x) - ln(x - 1) - 1/x pour x $ \geq$ 1 on a :

$\displaystyle \int_{{p+1}}^{\infty}$f (x)dx < - Rp < $\displaystyle \int_{p}^{\infty}$f (x)dx

Donc

p ln(1 - $\displaystyle {\frac{{1}}{{p+1}}}$) + 1 < - Rp < (p - 1)ln(1 - $\displaystyle {\frac{{1}}{{p}}}$) + 1

donc S0, p = Sp = S - Rp = S - p ln(1 - $ {\frac{{1}}{{p+1}}}$) + 1 + O($ {\frac{{1}}{{p^2}}}$) = $ {\frac{{1}}{{2p}}}$ + O($ {\frac{{1}}{{p^2}}}$)
On écrit le programme suivant :
richard(n):={
local s0,s1,k,j,st,S,puiss;
s0:=[1.0];
st:=1.0;
for (k:=2;k<=2^n;k++) {
st:=st+1/k+ln(1-1/k);
s0:=concat(s0,st);
}
//attention s0=S a 2^n termes d'indices 0 (2^n)-1
S:=s0;
for (j:=1;j<=n;j++){
  s1:=[];
  puiss:=2^j;
  //j-ieme acceleration s1 a 2^(n-j) termes d'indices 
  // allant de 0 a 2^(n-j)-1
  for (k:=1;k<=2^(n-j);k++) {
     st:=(puiss*s0[2*k-1]-s0[k-1])/(puiss-1);
     s1:=concat(s1,st);
  }
  s0:=s1;
}
return S[2^n-1],s1[0];
}:;
La première valeur est la somme des 2n premiers termes, calculée sans accélération , la deuxième valeur a été obtenue après avoir accéléré cette somme n fois.
Avec 24 digits, on tape :
richard(8)
On obtient :
0.5791675183377178935391464, 0.5772156649015050409260531
On a du calculer 26 = 64 termes (1 et 8 décimales exactes).
On tape :
richard(12)
On obtient plus de décimales :
0.5773377302469791589300024, 0.5772156649015328606067501 (3 décimales exactes sans accélération et 21 décimales exactes)
On a du calculer 212 = 4096 termes.
On tape : Digits:=24;
evalf(euler_gamma)
On obtient : 0.5772156649015328606065119


next up previous contents index
suivant: La méthode de Romberg monter: Accélération de convergence : précédent: Application au calcul de   Table des matières   Index
Documentation de giac écrite par Renée De Graeve