Calcular el valor de pi
Ahora vamos con un ejemplo clásico: estimar el valor de \(\pi\).
Imagina un cuadrado de lado \(2\) con el origen \((0, 0)\) en su centro y las cuatro esquinas con coordenadas \((1, 1), (1, -1), (-1, 1), (-1, -1)\). El área de este cuadrado es \(2\times 2 = 4\). Ahora imagina un círculo de radio \(1\) con centro en el origen que encaja perfectamente dentro de este cuadrado. El área del círculo será \(\pi \times \text{radius}^2 = \pi\).
Para estimar \(\pi\), muestreamos aleatoriamente múltiples puntos en este cuadrado y calculamos la fracción de puntos dentro del círculo (\(x^2 + y^2 <= 1\)). El área del círculo es entonces \(4\) veces esta fracción, lo que nos da nuestra estimación de \(\pi\).
Después de este ejercicio, tendrás una idea clara de cómo usar la simulación para el cálculo.
Este ejercicio forma parte del curso
Simulación estadística en Python
Instrucciones del ejercicio
- Examina el valor verdadero de \(\pi\) usando
np.pien la consola. Inicializasimsen 10000 ycircle_pointsen 0. - Dentro del bucle
for, genera un punto (coordenadas x e y) usandonp.random.uniform()entre -1 y 1, consize=2. - Comprueba si el punto está dentro del círculo unitario con la ecuación \(x^2 + y^2 <= 1\), asígnalo a
within_circlee incrementacircle_pointsen consecuencia. - Imprime la estimación de $\pi
,pi_sim`, como 4 veces la fracción de puntos que caen dentro del círculo.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Initialize sims and circle_points
sims, circle_points = ____, ____
for i in range(sims):
# Generate the two coordinates of a point
point = ____
# if the point lies within the unit circle, increment counter
within_circle = point[0]**2 + point[1]**2 <= 1
if ____ == True:
circle_points +=1
# Estimate pi as 4 times the avg number of points in the circle.
pi_sim = ____
print("Simulated value of pi = {}".format(pi_sim))