Professional Documents
Culture Documents
1 Position du probl`
eme
On se propose detudier differentes methodes pour calculer les decimales du nombre .
1 1u2n
pn = n.un o`
u un = sin n , u6 = 12 et u2n =
2
et pn = n.un o`
u un = tan n , u6 =
1
3
et u2n = un
1u2n
Programmer le calcul de la suite un par une methode iterative et par une methode recursive. Pour evaluer
la vitesse de convergence de cette suite, tracer log( pn ) en fonction de n.
M
ethode de Monte-Carlo
|x|2n+3
2n+3 .
+
(1)k .x2k+1
. Lorsque lon arrete la serie au
2k + 1
= Arctan 1 =
k=0
(1)k
.
2k + 1
(1)k
Programmer le calcul de la serie Sn = 4
.
2k + 1
k=0
Pour evaluer la vitesse de convergence de cette suite, tracer log(| Sn |) en fonction de n.
Cette serie convergeant assez lentement (car x = 1), on peut - pour accelerer la convergence - utiliser
des combinaisons de fonctions Arctan x avec x
1. Programmer une serie utilisant la formule de Gauss:
1
1
1
= 48. Arctan 18
+ 32. Arctan 57
20. Arctan 239
S
erie de Ramanujan
Au debut du vingti`eme si`ecle, S. Ramanujan, mathematicien autodidacte indien, proposa la serie:
+
1
2. 2
(4k)!.(1103 + 26390.k)
.
=
9801
(n!)4 .3934n
k=0
ISEN-Brest. Kany.
Programmer le calcul de la serie Sn =
TD: Calcul de
9801
2. 2
k=0
(4k)!.(1103 + 26390.k)
(n!)4 .3934n
Cette serie converge tr`es vite: verifier quau bout de 2 termes, on a dej`a `a 8 decimales. Mais les termes
Methode iterative
In[2]:=k = 6; u = 1/2; liste = Table[n, {n, 1, 10}]; For[n = 1, n <= 10, n++, k = 2*k;
u = Sqrt[(1 - Sqrt[1 - u^2])/2];
liste = ReplacePart[liste, N[Log[10, Pi - k*u], 100], n]]; ListPlot[liste]
Out[2]=
Monte-Carlo
In[3]:=SeedRandom[];
ISEN-Brest. Kany.
TD: Calcul de
Arctan
In[6]:=SerieArcTan[x , n ] := Sum[(-1)^k*x^(2*k + 1)/(2*k + 1), {k, 0, n}];
In[7]:=Erreur[n ] := N[Abs[Pi - 4*SerieArcTan[1, n]], 10]
In[8]:=liste = Table[Log[10, Erreur[n]], {n, 1, 500}];
In[9]:=ListPlot[liste]
Out[9]=
ISEN-Brest. Kany.
TD: Calcul de
Ramanujan
In[15]:=S[n ] := Sum[(4*k)!*(1103 + 26390*k)/(k!^4*393^(4*k)), {k, 0, n}];
In[16]:=Ramanujan[n ] := 9801/(2*Sqrt[2]*S[n]);
In[17]:=Erreur[n ] := N[Pi - Ramanujan[n], 1000]
In[18]:=liste = Table[Log[10, Erreur[n]], {n, 1, 25}];
In[19]:=ListPlot[liste]
Out[19]=
ISEN-Brest. Kany.
TD: Calcul de
Out[21]=
math
decimal #biblioth`
eque pour pouvoir faire des calculs pr
ecis
sympy
matplotlib.pyplot as plt
numpy as np
0
1
2
3
4
5
6
70
1
2
3
4
5
6
70
3.5
0.5
3.0
0.0
0.0
0.5
0.5
2.5
1.0
1.0
2.0
1.5
1.5
1.0
2.0
2.5
0.5
0.00
1.5
2.0
2.5
3.0
2000
4000
6000
8000
10000
20
40
60
80
100
3.50
2000
4000
6000
8000
0
50
100
150
200
250
3000
10000
3.00
100
200
300
400
500
ISEN-Brest. Kany.
TD: Calcul de
1.4 1e 8+6.58230055
0
50
1.2
100
1.0
150
0.8
200
0.6
250
0.4
300
0.2
0.00
350
10
20
30
40
50
4000
10
20
30
40
50