Calcul de racine imbriqués

Fermé
amorigolo Messages postés 3 Date d'inscription mardi 15 juin 2021 Statut Membre Dernière intervention 15 juin 2021 - 15 juin 2021 à 12:33
yg_be Messages postés 22933 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 6 juillet 2024 - 15 juin 2021 à 14:09
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 22933 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 6 juillet 2024 1 482
15 juin 2021 à 13:01
bonjour,
as-tu une idée de comment calculer le premier terme?
0
amorigolo Messages postés 3 Date d'inscription mardi 15 juin 2021 Statut Membre Dernière intervention 15 juin 2021
15 juin 2021 à 13:06
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 mardi 15 juin 2021 Statut Membre Dernière intervention 15 juin 2021
15 juin 2021 à 13:13
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 22933 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 6 juillet 2024 1 482
15 juin 2021 à 13:54
tu n'as pas partagé ton programme complet.
0
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 22933 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 6 juillet 2024 1 482
15 juin 2021 à 14:09
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