2 votos

¿Por qué el método de Arquímedes para calcular Pi disminuye su precisión después de cierto tiempo?

Estoy utilizando la siguiente fórmula recursiva para calcular Pi basándome en las ideas de Arquímedes.

$$ S' = \sqrt{2-\sqrt{4-S^2}} $$ La fórmula devuelve la longitud de las aristas de un polígono B basándose en la longitud de las aristas del polígono A. B tiene el doble de aristas que A. Para obtener Pi simplemente hay que multiplicar S' por el número de aristas y luego dividir el resultado por dos.

Empiezas con un polígono simple de 6 lados, que tiene el radio 1, porque está formado por 3 triángulos isósceles puedes concluir que S también es 1. Si empiezo a calcular con mi programa Pyhton alcanzo una precisión de unos 500 dígitos de Pi después de unas 800 repeticiones, pero luego la precisión vuelve a disminuir.

Aquí un gráfico que muestra la precisión decimal (eje y) frente a las veces que se ha repetido la fórmula (eje x): http://imgur.com/WAU5nV4

¿Por qué disminuye la precisión? ¿Está en la naturaleza de la fórmula? ¿He metido la pata en mi programa?

EDITAR: Este es el código de python, he utilizado mpmath para la precisión arbitraria:

from sympy.mpmath import *    
decimal = []

S = mpf(1)
u = mpf(0)
pi = mpf(0)
Edge = mpf(6)
mp.dps = 100;
for n in range(0,1000):

    u = sqrt(mpf(4)-S**2)
    S = sqrt(mpf(2) - u)
    Edge = Edge*2
    pi = (S*Edge)/mpf(2)  
    decimal.append(testestellen(pi)) #tests how much decimals are right and put them in a list

2voto

Vincent Puntos 5027

Esto es definitivamente un error de redondeo. La biblioteca de Python sympy.mpmath tiene una precisión configurable, que se puede establecer con mp.prec o mp.dps . Pruebe a cambiarlos y vea qué efecto tiene en el resultado.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X