ComeçarComece de graça

Calculando o valor de pi

Agora vamos trabalhar um exemplo clássico: estimar o valor de \(\pi\).

Imagine um quadrado de lado \(2\) com a origem \((0, 0)\) como centro e os quatro cantos com coordenadas \((1, 1), (1, -1), (-1, 1), (-1, -1)\). A área desse quadrado é \(2\times 2 = 4\). Agora imagine um círculo de raio \(1\) com centro na origem que se ajusta perfeitamente dentro desse quadrado. A área do círculo será \(\pi \times \text{raio}^2 = \pi\).

Para estimar \(\pi\), sorteamos aleatoriamente vários pontos nesse quadrado e calculamos a fração de pontos dentro do círculo (\(x^2 + y^2 <= 1\)). A área do círculo então é \(4\) vezes essa fração, o que nos dá nossa estimativa de \(\pi\).

Depois deste exercício, você vai entender como usar simulação para fazer cálculos.

Este exercício faz parte do curso

Simulação Estatística em Python

Ver curso

Instruções do exercício

  • Consulte o valor verdadeiro de \(\pi\) usando np.pi no console. Inicialize sims com 10000 e circle_points com 0.
  • Dentro do loop for, gere um ponto (coordenadas x e y) usando np.random.uniform() entre -1 e 1, com size=2.
  • Verifique se o ponto está dentro do círculo unitário com a equação \(x^2 + y^2 <= 1\), atribua a within_circle e incremente circle_points conforme apropriado.
  • Imprima a estimativa de \(\pi\) pi_sim como 4 vezes a fração de pontos que estão dentro do círculo.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# 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 e executar o código