Sacar decimales al Número PI

Iniciado por Komodo, 25 Abril 2010, 18:34 PM

0 Miembros y 1 Visitante están viendo este tema.

Komodo

Ya esta todo EXPLICADO, buscaba un código sobre como conseguir decimales del número PI, algún algoritmo, algo matemático, si no hay code, al menos información de como se puede sacar.

Graci.as.


do-while

#1
¡Buenas!

En este momento no tengo ninguna formula a mano, pero el desarrollo en serie de potencias de las funciones arcoseno, arcocoseno y arcotangente, al ser evaluada en algun punto en concreto, suele dar buenas aproximaciones de pi.

Por ejemplo, puedes obtener aproximaciones de pi evaluando la serie de Taylor de la funcion arcoseno en 1 (sen(Pi/2) = 1 -> arcsen(1) = pi/2), arcocoseno en 0  (cos(pi/2) = 0 -> arccos(0) = pi/2), arctg (tg(pi/4) = 1, atg(1) = pi/4)... Ademas, tienes diversas formas de expresar el resto de la aproximacion de un polinomio de Taylor a una funcion (restos de cauchy, de lagrange...) de esta forma para un grado n del polinomio que utilices puedes calcular el error que estas cometiendo al aproximar dicho valor, y por lo tanto, podras saber que grado tiene que tener el polinomio para obtener un error menor que un valor dado.

¡Saludos!

Otra alternativ la tienes en el calculo de probabilidades:

Considera un cuadrado de lado 2, y la circunferencia maxima contenida en el (popr lo tanto de radio 1). Si generas un punto aleatorio dentro del cuadrado, al estar en un espacio de probabilidad geometrico, la probabilidad de que el punto este dentro del ciculo sera: superficie_circulo/superficie_cuadrado = (Pi * r2) / 22 = Pi/4

Ahora pasas de la probabilidad a la estadistica. Tomas un cuadrado de lado 2, generas N puntos de forma aleatoria dentro de el y contabilizas en n los que estan dentro de la circunferencia. La frecuencia relativa, n/N, de los punos interiores a la cicunferencia tiene que aproximarse por tanto a Pi/4...

Y para terminar tienes la Santa Wikipedia en la que informacion no te va a faltar.
- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!

Komodo

Gracias haber si encuentro +info


Komodo

Busco también el modo más exacto, pues 377/120 puede servir pero no quiero que de periodo.

Tambien me gusta esto:



Pero sin duda lo que voy a usar es esto.


biribau

El problema es que para evaluar funciones trigonométricas necesitas aproximaciones, de hecho creo que así se implementan en el ordenador, pues si quieres aplicar el método de Newton derivas y siempre obtienes otra trigonométrica(ademas el ordenador usa esas tablas de aproximaciones basados en cómputos previos con pi ya conocido). La probabilística es buena idea, eso es lo del método Monte Carlo no?.
Un método exacto determinístico:
Creo que es el que usaban los antiguos, la aproximacion al perímetro o área por polígonos circunscritos/inscritos. Simplemente vas añadiendo lados y pi queda en el medio de los "pi's" de los 2 polígonos, no es eficiente pero puedes sacar el numero de decimales que quieras sin error, aunque también recuerdo haber visto sucesiones o expresiones más sencillas.

do-while

Pues si buscas exactitud, te recomiendo los desarrolos de Taylor con restos de las funciones trigonometricas inversas que te he dicho, ya que partiendo del resto (que te indica el error) puedes obtener el grado del polinomio que te hace falta para cometer un error mas pequeño que cualquier numero que te propongas. Lo malo es el desarrollo de Taylor de dichas series, ya que se trata de calcular las derivadas sucesivas de las funciones, y hay que ser cuidadoso. Si me das tiempo, a ver si desarrollo alguna y te lo dejo por aqui.

¡Saludos!

Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.
- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!

Tha_Traker

Fuente: http://stackoverflow.com/questions/19/fastest-way-to-get-value-of-pi (La página está en ingles.

El código fuente esta colgado en la página esa.

Este es otro método que converge rápidamente (~ 14digits por iteración), la aplicación actual es más rápido PiFast utiliza esta fórmula con la FFT. Voy a escribir la fórmula, ya que el código es muy sencillo. Esta fórmula la encontró  Ramanujan y fue descubierto por Chudnovsky. Es como logro calcular varios miles de millones dígitos del número de - por lo que  es un método a tener en cuenta. La fórmula se desbordará rápidamente, ya que estamos dividiendo factoriales, sería ventajoso para el cálculo de dicha demora para eliminar términos.



k1 = 545140134; k2 = 13591409; k3 = 640320; k4 = 100100025; k5 = 327843840; k6 = 53360;

A continuación se muestra el algoritmo de Brent-Salamín. Wikipedia dice que cuando a y b son "lo suficientemente cerca" entonces (a + b) ^ 2/4t será una aproximación de pi. No estoy seguro de lo que significa "lo suficientemente cerca", sino de mis pruebas, una iteración tiene 2 dígitos, dos tienen 7, y tres tenían 15, por supuesto, esto es con habitaciones dobles, por lo que podría error han basado en su representación y el ' verdadero 'cálculo podría ser
más exactos.

Es solo una alternativa a lo que han dicho.

Un saludo