Chapitre 3 Pour trouver les premières décimales de π
3.1 La formule de Gregory
La série de Gregory est le développement en série entière de arctan(x)
On a :
arctan(x)=x− | | + | | +...+(−1)k | | +... |
Le reste de cette série alternée est du signe du premier terme négligé
et est majoré en valeur absolue par la valeur absolue du premier terme négligé.
3.2 La formule de Machin
De la formule d’addition des tangentes à savoir :
tan(a+b)= | tan(a)+tan(b) |
|
1−tan(a)*tan(b) |
|
on en déduit la formule pour ab<1 :
arctan(a)+arctan(b)=arctan( | | ) |
Exercices :
1/ Pour a=1/5 on cherche b pour que :
arctan(a)+arctan(b)=arctan(1)= | |
On doit donc résoudre :
On trouve :
Donc :
2/ Pour a=1/5 on cherche b pour que :
arctan(a)+arctan(b)=arctan( | | ) |
On doit donc résoudre :
On trouve :
Donc :
3/ En faisant encore deux fois le même genre de substitution, montrer la
formule de Machin :
Pour cela on prend successivement :
c=7/17 et on trouve b=c−a/1+ac=9/46 et
c=9/46 et on trouve b=c−a/1+ac=−1/239
4/ Écrire un programme qui prend en entrée a et n et qui
renvoie la liste L des valeurs de bk vérifiant :
karctan(a)+arctan(bk)=π/4 pour k=1..n (L[k−1]=bk)
On tape le programme :
machin1(a,n):={
local k,c,L;
c:=1;
L:=[];
for (k:=1;k<n+1;k:=k+1) {
c:=(c-a)/(1+a*c);
L:=append(L,c);
}
return(L);
};
On tape :
machin1(1/5,5)
On obtient :
[2/3,7/17,9/46,1/-239,-122/597]
On tape :
machin1(1/3,5)
On obtient :
[1/2,1/7,-2/11,-17/31,-41/38]
Ainsi :
2arctan(1/3)+arctan(1/7)=π/4
3.3 Les décimales de π avec les formules précédentes
3.3.1 Une remarque
Si on utilise pour calculer π la formule :
arctan(x)=x− | | + | | +...+(−1)k | | +... |
Si on prend x=1, on a arctan(1)=π/4=1−1/3+1/5+...+(−1)k1/2k+1+... mais la convergence est lente.
On remarque que la convergence est beaucoup plus rapide pour x=1/5
et encore plus rapide pour x=1/239 d’où l’utilisation de la formule :
3.3.2 Le programme avec Xcas
Pour calculer la somme de n termes de la série on va utiliser la méthode
de Hörner pour faire le moins possibles de multiplications, on a :
arctan(x)=x(1−x2(1/3−x2(1/5−x2(....−x2(1/2n−1)))))
L’utilisateur doit rentrer la valeur de x (a) et le nombre n de termes de
la série.
//approx de arctan(a) par sa serie de a-a^3/3+..+(-1)^n*a^(2n+1)/(2n+1)
//valeur de la serie est calculee par la methode de Horner
gregory(a,n):={
local t,k;
t:=1/(2*n-1);
for (k:=2*n-3;k>0;k:=k-2) {
t:=1/k-a^2*t;
}
return (a*t);
};
On tape :
16*gregory(1/5,18)-4*gregory(1/239,6)
On obtient :
3.14159265359
On tape :
evalf(16*gregory(1/5,42)-4*gregory(1/239,20))
On obtient (si on a choisit 60 Chiffres dans la configuration du CAS (menu
Cfg->Configuration du CAS) :
3.14159265358979323846264338327950288419716939937510582097494
3.3.3 Combien faut-il calculer de termes ?
Soit Rn(x) le reste de la série ∑k=1∞(−1)k+1x2k−1/2k−1 : Rn(x)=∑k=n+1∞(−1)k+1x2k−1/2k−1.
On sait que |Rn(x)|<|x|2n+1/2n+1
Pour avoir |Rn(1/5)|=|Rn(0.2)|<10−61 il faut que :
22n+1<(2n+1)102n−60 et comme 210≃ 103 cela donne si on
suppose 2n+1>10 :
10(6n+3)/10<102n−59 soit 593<14n soit n≃ 42
On vérifie pour n=42 on a (1/5)85/85<2.56e−62
On peut aussi écrire si on suppose que 2n+1>10 :
|x|2n+1/2n+1<x2n+1/10<10−61
donc on va choisir x2n+1<10−60 soit (2n+1)log10(x)<−60
ou encore n>((−60)/log10(x)−1)/2
Pour x=1/5 on a n>42.4202967422 et comme 2n+1>40 on peut améliorer la
majoration |x|2n+1/2n+1<x2n+1/40<10−61
ce qui donne n>((−60+log10(4))/log10(1/5)−1)/2=41.9896201841 donc on prend
n=42
pour x=1/293 on a n>11.66 donc on prend n=12 et on
vérifie : (1/239)25/25=1.38711499837e−61.
On choisit 62 Chiffres dans la configuration du CAS (menu
Cfg->Configuration du CAS) et on tape :
evalf(16*gregory(1/5,42)-4*gregory(1/239,12))
On obtient :
3.1415926535897932384626433832795028841971693993751058209749446
On tape :
evalf(pi)
On obtient :
3.1415926535897932384626433832795028841971693993751058209749446
Remarque
Avec cette méthode John Machin calcula 100 décimales de π en 1706.
3.3.4 Les formules de même type que celles de Machin
En 1973, Jean Guilloud a mis une journée pour calculer 106 décimales de π en utilisant une formule de même type à savoir :
6arctan( | | )+2arctan( | | )+arctan( | | )= | |
en vérifiant ses calculs avec la formule analogue :
12arctan( | | )+8arctan( | | )−5arctan( | | )= | |
En 1999, Yasumata Kanadaa a atteint le record en calculant 12411* 108 décimales de π en utilisant une formule de même type à savoir :
24arctan( | | )−12arctan( | | ) +44arctan( | | )+7arctan( | | )= | |
et la formule analogue :
12arctan( | | )+32arctan( | | )−5arctan( | | )+12arctan( | | )= | |
On peut vérifier ces formules avec Xcas, on tape par exemple :
tsimplify(12atan(1/49)+32atan(1/57)-5atan(1/239)+12atan(1/110443))
On obtient :
π/4
Comment trouver des formules de type Machin ?
Montrons pour cela que si a ∈ N et si a2+1=a1*a2 alors :
arctan(1/a)=arctan(1/(a+a1/)+arctan(1/(a+a2))
On a si xy<1, arctan(x)+arctan(y)=arctan((x+y)/(1−xy)) donc
arctan(1/(a+a1))+arctan(1/(a+a2))=arctan((2a+a1+a2)/((a+a1)(a+a2)−1))=arctan(1/a) puisque a1a2−1=a2, (a+a1)(a+a2)−1)=a2+a(a1+a2)+a2=a(2a+a1+a2).
On a donc :
a=1 a2+1=2=1*2 donc π/4=arctan(1)=arctan(1/2)+arctan(1/3)
a=2 a2+1=5=1*5 donc arctan(1/2)=arctan(1/3)+arctan(1/7)
a=3 a2+1=10=1*10=2*5 donc arctan(1/3)=arctan(1/4)+arctan(1/13)=arctan(1/5)+arctan(1/8
a=5 a2+1=26=1*26=2*13 donc arctan(1/5)=arctan(1/7)+arctan(1/18)=arctan(1/6)+arctan(1/31
a=7 a2+1=50=1*50=2*25 donc arctan(1/7)=arctan(1/8)+arctan(1/57)=arctan(1/9)+arctan(1/32)
On en déduit donc que :
π/4=2arctan(1/3)+arctan(1/7) |
π/4=2arctan(1/3)+arctan(1/5)−arctan(1/18) |
π/4=2arctan(1/3)+arctan(1/5)−arctan(1/18) |
π/4=2arctan(1/3)+arctan(1/8)+arctan(1/57) |
π/4=3arctan(1/3)−arctan(1/5)+arctan(1/57) |
et en utilisant π/4=4arctan(1/5)−arctan(1/239) on retrouve facilement
les 2 formules utilisées par Jean Guilloud :
6arctan(1/8)+(6−4)arctan(1/57)+arctan(1/239)=
6(π/4−2arctan(1/3))−4(π/4−3arctan(1/3)+arctan(1/5))−π/4+4arctan(1/5)=
π/4
et
12arctan(1/18)+8arctan(1/57)−5arctan(1/239)=
12(−π/4+2arctan(1/3)+arctan(1/5))+8(π/4−3arctan(1/3)+arctan(1/5))+5(π/4−4arctan(1/5))=π/4
3.4 Pour bien afficher les décimales
//approx de arctan(a) par sa serie de a-a^3/3+..+(-1)^n*a^(2n+1)/(2n+1)
//valeur de la serie est calculee par la methode de Horner
gregory(a,n):={
local t,k;
t:=1/(2*n-1);
for (k:=2*n-3;k>0;k:=k-2) {
t:=1/k-a^2*t;
}
return (a*t);
}
:;
//pour afficher selon un tableau
affiche1(fl,n):={
local s,p,q,j,k,L,LT;
L:="";
s:=string(fl);
p:=size(s);
q:=iquo(p,11*n)
si irem(p,11*n)==0 alors
LT:=[0$q];sinon
LT:=[0$(q+1)];
fsi;
pour j de 0 jusque q-1 faire
pour k de 1 jusque 11 faire
L:=L+mid(s,0,n)+" ";
s:=mid(s,n);
fpour;
LT[j]=<[L];
L:="";
fpour;
si r!=0 alors
pour k de 1 jusque size(s) faire
L:=L+mid(s,0,n)+" ";
s:=mid(s,n);
fpour;
LT[q]=<[L];
fsi;
return LT;
}:;
//pour afficher selon une liste de chaines
affiche2(fl,n):={
local s,p,q,j,k,L,LT;
L:="";
s:=string(fl);
p:=size(s);
q:=iquo(p,11*n);
r:=irem(p,11*n);
si r==0 alors
LT:=[0$q];sinon
LT:=[0$q+1];
fsi;
pour j de 0 jusque q-1 faire
pour k de 1 jusque 11 faire
L:=L+mid(s,0,n)+" ";
s:=mid(s,n);
fpour;
LT[j]=<L;
L:="";
fpour;
si r!=0 alors
pour k de 1 jusque size(s) faire
L:=L+mid(s,0,n)+" ";
s:=mid(s,n);
fpour;
LT[q]=<L;
fsi;
return LT;
}:;
On vérifie pour n=2900 on a (1/5)85/5801<0.33e−4058
et on vérifie pour n=860 on a (1/239)11721/1721=0.35e−4096.
On tape :
(1/5.)^
5801/5801,(1/239.)^
1721/1721
On obtient :
0.3247147235398264366269e-4058,0.347881711410409416161e-4096
Digits:=4000
On tape :
LR1:=affiche1(evalf(16*gregory(1/5,2900)-4*gregory(1/239,860)),5)
On obtient comme réponse une matrice.
Ou on tape :
LR2:=affiche2(evalf(16*gregory(1/5,2900)-4*gregory(1/239,860)),5)
pour j de 0 jusque size(LR2)-1 faire print(LR2[j]) fpour
On obtient après 0.88s:
3.141 59265 35897 93238 46264 33832 79502 88419 71693 99375 10582
09749 44592 30781 64062 86208 99862 80348 25342 11706 79821 48086
51328 23066 47093 84460 95505 82231 72535 94081 28481 11745 02841
02701 93852 11055 59644 62294 89549 30381 96442 88109 75665 93344
61284 75648 23378 67831 65271 20190 91456 48566 92346 03486 10454
32664 82133 93607 26024 91412 73724 58700 66063 15588 17488 15209
20962 82925 40917 15364 36789 25903 60011 33053 05488 20466 52138
41469 51941 51160 94330 57270 36575 95919 53092 18611 73819 32611
79310 51185 48074 46237 99627 49567 35188 57527 24891 22793 81830
11949 12983 36733 62440 65664 30860 21394 94639 52247 37190 70217
98609 43702 77053 92171 76293 17675 23846 74818 46766 94051 32000
56812 71452 63560 82778 57713 42757 78960 91736 37178 72146 84409
01224 95343 01465 49585 37105 07922 79689 25892 35420 19956 11212
90219 60864 03441 81598 13629 77477 13099 60518 70721 13499 99998
37297 80499 51059 73173 28160 96318 59502 44594 55346 90830 26425
22308 25334 46850 35261 93118 81710 10003 13783 87528 86587 53320
83814 20617 17766 91473 03598 25349 04287 55468 73115 95628 63882
35378 75937 51957 78185 77805 32171 22680 66130 01927 87661 11959
09216 42019 89380 95257 20106 54858 63278 86593 61533 81827 96823
03019 52035 30185 29689 95773 62259 94138 91249 72177 52834 79131
51557 48572 42454 15069 59508 29533 11686 17278 55889 07509 83817
54637 46493 93192 55060 40092 77016 71139 00984 88240 12858 36160
35637 07660 10471 01819 42955 59619 89467 67837 44944 82553 79774
72684 71040 47534 64620 80466 84259 06949 12933 13677 02898 91521
04752 16205 69660 24058 03815 01935 11253 38243 00355 87640 24749
64732 63914 19927 26042 69922 79678 23547 81636 00934 17216 41219
92458 63150 30286 18297 45557 06749 83850 54945 88586 92699 56909
27210 79750 93029 55321 16534 49872 02755 96023 64806 65499 11988
18347 97753 56636 98074 26542 52786 25518 18417 57467 28909 77772
79380 00816 47060 01614 52491 92173 21721 47723 50141 44197 35685
48161 36115 73525 52133 47574 18494 68438 52332 39073 94143 33454
77624 16862 51898 35694 85562 09921 92221 84272 55025 42568 87671
79049 46016 53466 80498 86272 32791 78608 57843 83827 96797 66814
54100 95388 37863 60950 68006 42251 25205 11739 29848 96084 12848
86269 45604 24196 52850 22210 66118 63067 44278 62203 91949 45047
12371 37869 60956 36437 19172 87467 76465 75739 62413 89086 58326
45995 81339 04780 27590 09946 57640 78951 26946 83983 52595 70982
58226 20522 48940 77267 19478 26848 26014 76990 90264 01363 94437
45530 50682 03496 25245 17493 99651 43142 98091 90659 25093 72216
96461 51570 98583 87410 59788 59597 72975 49893 01617 53928 46813
82686 83868 94277 41559 91855 92524 59539 59431 04997 25246 80845
98727 36446 95848 65383 67362 22626 09912 46080 51243 88439 04512
44136 54976 27807 97715 69143 59977 00129 61608 94416 94868 55584
84063 53422 07222 58284 88648 15845 60285 06016 84273 94522 67467
67889 52521 38522 54995 46667 27823 98645 65961 16354 88623 05774
56498 03559 36345 68174 32411 25150 76069 47945 10965 96094 02522
88797 10893 14566 91368 67228 74894 05601 01503 30861 79286 80920
87476 09178 24938 58900 97149 09675 98526 13655 49781 89312 97848
21682 99894 87226 58804 85756 40142 70477 55513 23796 41451 52374
62343 64542 85844 47952 65867 82105 11413 54735 73952 31134 27166
10213 59695 36231 44295 24849 37187 11014 57654 03590 27993 44037
42007 31057 85390 62198 38744 78084 78489 68332 14457 13868 75194
35064 30218 45319 10484 81005 37061 46806 74919 27819 11979 39952
06141 96634 28754 44064 37451 23718 19217 99983 91015 91956 18146
75142 69123 97489 40907 18649 42319 61567 94520 80951 46550 22523
16038 81930 14209 37621 37855 95663 89377 87083 03906 97920 77346
72218 25625 99661 50142 15030 68038 44773 45492 02605 41466 59252
01497 44285 07325 18666 00213 24340 88190 71048 63317 34649 65145
39057 96268 56100 55081 06658 79699 81635 74736 38405 25714 59102
89706 41401 10971 20628 04390 39759 51567 71577 00420 33786 99360
07230 55876 31763 59421 87312 51471 20532 92819 18261 86125 86732
15791 98414 84882 91644 70609 57527 06957 22091 75671 16722 91098
16909 15280 17350 67127 48583 22287 18352 09353 96572 51210 83579
15136 98820 91444 21006 75103 34671 10314 12671 11369 90865 85163
98315 01970 16515 11685 17143 76576 18351 55650 88490 99898 59982
38734 55283 31635 50764 79185 35893 22618 54896 32132 93308 98570
64204 67525 90709 15481 41654 98594 61637 18027 09819 94309 92448
89575 71282 89059 23233 26097 29971 20844 33573 26548 93823 91193
25974 63667 30583 60414 28138 83032 03824 90375 89852 43744 17029
13276 56180 93773 44403 07074 69211 20191 30203 30380 19762 11011
00449 29321 51608 42444 85963 76698 38952 28684 78312 35526 58213
14495 76857 26243 34418 93039 68642 62434 10773 22697 80280 73189
15441 10104 46823 25271 62010 52652 27211