Calcul de racine imbriqués

amorigolo Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour a tous,
je travail actuellement sur un programme pour donner des valeurs approchés de pi de plusieurs manière et j'aimerais pourvoir utiliser cette formule. Cependant je n'ai aucune idée de comment pourvoir demander le calcul d'un certain terme de cette "suite" si vous avez des idées ou la solution je suis preneur !
A voir également:

3 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour,
as-tu une idée de comment calculer le premier terme?
0
amorigolo Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
Mon idée que je suis entrain d'essayer de mettre en place c'est de calculer les racines qui sont les même (a partir de la 2nd) avec une boucle fort puis de stocker chaque valeur dans une liste puis ensuite a chaque valeur de la liste prendre racine de 2 moins la valeur de la liste puis après multiplié par 2^(son indice).
Je suis entrain d'essayer de la faire mais je ne sais pas si cela va fonctionner
0
amorigolo Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
voici ce que j'ai ça marche mais j'ai un problème au bout d'un moment les valeurs ne sont plus bonnes ce qui n'est pas normal, j'ai l'impression que c'est python qui ne garde pas assez de décimal je sais pas si on peut empécher ça :
def a(N):
x = np.empty(N + 1)
x[0] = 0
x[1] = 0
x[2] = sqrt(2)
for i in range(3, N + 1):
x[i] = sqrt(2+x[i-1])
print(x)
for j in range(N+1):
x[j]=2**j*sqrt(2-x[j])
print(x)
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
tu n'as pas partagé ton programme complet.
0
amaurigolo
 
from math import*
def Pi(N):
Pi = sqrt(2)
for i in range(3, N + 1):
Pi = sqrt(2+Pi)
Pi=2**(N)*sqrt(2-Pi)
print(Pi)

Je l'ai simplifié c'est mieux comme ça. Mais mon problème c'est que la suite est sensé se rapproché de plus en plus a chaque terme or Python me dit :
Pi(14)=3.141592654807589
Pi(15)=3.1415926453212153
Or valeur de Pi : 3,1415926535...
Donc j'ai Pi(14) plus proche que pi(15)
et ça continue de s'éloigner :
Pi(20)=3.1415965537048196
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
j'ai fait un peu différent:
import math
r=0
p=2
for k in range(16):
    a=math.sqrt(2-r)
    print(r,a,p*a)
    r=math.sqrt(2+r)
    p=2*p

comme tu vois, on en arrive à des problèmes de précision.
0