Simulações de Monte Carlo em Python
Izzy Weber
Curriculum Manager, DataCamp
Definir as variáveis de entrada e escolher distribuições de probabilidade
Gerar entradas amostrando dessas distribuições
Fazer um cálculo determinístico com as entradas simuladas
Resumir os resultados
Gere pontos aleatórios $(x, y)$ em que $x$ e $y$ estão no intervalo de -1 a 1.

$$Area_{circle} = \pi $$
$$Area_{square} = 2 \times 2 = 4 $$
$$\frac{Area_{circle}}{Area_{square}} = \frac{\pi}{4} $$
$$\frac{n_{red}}{n_{all}} = \frac{\pi}{4} $$
$$ \pi = 4 \times \frac{n_{red}}{n_{all}}$$
Defina as variáveis de entrada e escolha distribuições de probabilidade
circle_points = 0
square_points = 0
Gere entradas amostrando dessas distribuições
Amostre valores aleatórios de $x$ e $y$ uniformemente entre -1 e 1:
for i in range(n):
x = random.uniform(-1, 1)
y = random.uniform(-1, 1)
Faça o cálculo determinístico das entradas simuladas
Verifique se cada ponto está dentro do círculo: determinístico para um dado $x$ e $y$
dist_from_origin = x**2 + y**2
Se sim, adicione o ponto a circle_points; sempre adicione o ponto a square_points
if dist_from_origin <= 1:
circle_points += 1
square_points += 1
Resuma os resultados para responder às questões de interesse
Após muitas simulações, calcule o valor de pi!
pi = 4 * circle_points/ square_points
n = 4000000 circle_points = 0 square_points = 0for i in range(n): x = random.uniform(-1, 1) y = random.uniform(-1, 1) dist_from_origin = x**2 + y**2 if dist_from_origin <= 1: circle_points += 1 square_point += 1pi = 4 * circle_points / square_points print(pi)
3.142518
Simulações de Monte Carlo em Python