ComenzarEmpieza gratis

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

Ver curso

Instrucciones del ejercicio

  • Examina el valor verdadero de \(\pi\) usando np.pi en la consola. Inicializa sims en 10000 y circle_points en 0.
  • Dentro del bucle for, genera un punto (coordenadas x e y) usando np.random.uniform() entre -1 y 1, con size=2.
  • Comprueba si el punto está dentro del círculo unitario con la ecuación \(x^2 + y^2 <= 1\), asígnalo a within_circle e incrementa circle_points en 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))
Editar y ejecutar código