Voy para los más fáciles de explicar. Estos son absolutamente, 100%, los mejores algoritmos para calcular el $\pi$. Este debe estar bien, porque en la práctica, el mejor algoritmo es recuperar los dígitos de un archivo o página web! Puesto que usted está pidiendo pseudocódigo te voy a dar real de código javascript, con programas que puede ejecutar y editar en Khan Academy del sitio web.
El primero es el más fácil de entender. Me gusta el segundo mejor porque no uso raíces cuadradas, pero requiere de la intuición acerca de la "tasa de cambio". Si usted no sabe cómo los enlaces de los programas de trabajo, usted puede hacer preguntas sobre el sitio web de la Academia Khan, o ir a través de los tutoriales que hay.
El área de un Círculo
Usted puede saber que podemos describir de la unidad de círculo por la ecuación de $x^2+y^2=1$. Podemos describir la mitad superior del círculo unitario por la función $f(x)=\sqrt{1-x^2}$. Podemos aproximar el área de una circunferencia se divide en $n$ rectángulos. Para $n=1$ podemos dejar que nuestra aproximación se $A_1=f(0)/n=1$, ya que podemos aproximar la altura del rectángulo como $f(0)$, y el ancho como $1/n$, y el área es igual a la anchura veces la altura.
Para $n=2$, tenemos la suma de dos rectángulos: $A_2=f(0)/n+f(\frac{1}{2})/n=1/2+\frac{\sqrt{1-1/4}}{2}$.
Para $n=3$, se suma tres rectángulos: $A_3=f(0)/n+f(\frac{1}{3})/n+f(\frac{2}{3})/n=1/3+\frac{\sqrt{1-1/9}}{3}+\frac{\sqrt{1-4/9}}{3}$.
Podemos escribir esto en general: la notación para esto es capital-notación sigma.
$A_n=\frac{1}{n}\sum_{i=0}^{n-1}\sqrt{1-(\frac{i}{n})^2}$
Como $n$ hace más y más grande obtenemos una mejor aproximación al área, la cual debe ser, de acuerdo con el área del círculo, $1/4 \pi$. Por lo tanto, escribimos $\pi=4 \lim_{n\to \infty} A_n$.
Código Javascript:
var n=10;
var f=function(x){return sqrt(1-x*x);}
var areaApproximation=0;
for(var i=0;i<n;i++){
areaApproximation+=f(i/n)/n;
}
//now areaApproximation is approximately pi/4.
(Programa de Khan Academy)
Período de Primavera
Este utiliza las notables propiedades de un movimiento armónico simple. Imagine que usted tiene un carro, con una cierta cantidad de peso, unido a un gigante de la primavera que está a su vez conectado a una pared. El resorte mantiene el carro en su lugar - si usted empuja el carrito hacia la pared resistir y tratar de empujar lejos, y si se tira el carro lejos de la pared va a resistir tirando hacia la pared. También tiene otra propiedad: Si se tira de la carreta de dos metros de distancia, experimenta el doble de la fuerza de lo que si tire de ella a un metro de distancia. Si tiramos del carro y de la liberación, ¿cómo se mueve? La solución de este problema exacto requiere el conocimiento de la física, pero podemos repetir: Supongamos $f(t)$ es una función que da la posición del objeto en el tiempo t. Digamos que empezamos a $f(0)=0$, y que empujamos el carro de manera que tiene una velocidad de 1. Lo que sabemos es que la aceleración es siempre proporcional a lo lejos el carro fue desplazada, en otras palabras, el carro tiene una aceleración en el momento en $t$$-f(t)$.
Problemas como estos son lo que el cálculo fue inventada. Decimos:
$f(0)=0$ (la posición en el tiempo $0$ es $0$), $f'(0)=0$ (la velocidad en el tiempo de $0$$1$), y $f''(t)=-f(t)$ (la aceleración en el tiempo de $t$$-f(t)$).
"La casualidad" de que la única solución a este problema es$f(t)=\sin(t)$, $f(0)=0$ y lo que es más importante, $f(\pi)=0$. Así, una vez que la primavera ha pasado de 0 todo el camino de vuelta a 0, $\pi$ segundos! No hay otro modo de resolver la función numéricamente, mediante el aumento de $f$ $f'$ y el aumento de la $f'$ $f''$ a un montón de veces! Una explicación de esto podría ser difícil y un poco fuera de lugar aquí, pero es muy intuitivo. Vea si usted puede averiguar cómo este código funciona, utiliza la velocidad y la aceleración en pequeños pasos de tiempo, y una vez que la posición de los resortes más allá de 0 en los negativos, vamos a detener la simulación y decir que la cantidad total de tiempo que ha transcurrido es una aproximación a $\pi$.
var time=0;
var position=0;
var velocity=1;
var step=0.001;
while(position>=0){
position+=velocity*step; //position increases by velocity
velocity-=position*step; //apply "acceleration=-x"
time+=step; //keep track of the elapsed time
}
//now "time" stores an approximation to pi
Como "el paso" se acerca más y más a cero, el resultado se acerca más y más a $\pi$.
(el código que se ejecuta en Khan Academy)
(Dinámica de movimiento de un resorte, en Khan Academy)
Su Fórmula
Voy a escribir algo de código en aras de la exhaustividad, pero si usted está buscando para la comprensión o algoritmos simples, usted debe ir con el método anterior!
(uh, el código es feo, ver George V. Williams post, no voy a copiar aquí. También, se pone dentro de la máquina de precisión después de los primeros dos o tres iteraciones, así que asegúrate de que lo que va!)
(Khan Academy aplicación)