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
Instruções do exercício
- Consulte o valor verdadeiro de \(\pi\) usando
np.pino console. Inicializesimscom 10000 ecircle_pointscom 0. - Dentro do loop
for, gere um ponto (coordenadas x e y) usandonp.random.uniform()entre -1 e 1, comsize=2. - Verifique se o ponto está dentro do círculo unitário com a equação \(x^2 + y^2 <= 1\), atribua a
within_circlee incrementecircle_pointsconforme apropriado. - Imprima a estimativa de \(\pi\)
pi_simcomo 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))