Estimación del valor de pi

Pasos sugeridos:

  1. Genere n coordenadas x:X1, . . . , Xn. Utilice la distribución uniforme con valor mínimo de 0 y valor máximo de 1.
x <- runif(1000,0,1)
  1. Genere 1000 coordenadas y : Y1,…,Yn, utilizando nuevamente la distribución uniforme con valor mínimo de 0 y valor máximo de 1.
y <- runif(1000,0,1)
  1. Cada punto (Xi,Yi) se encuentra dentro del círculo si su distancia desde el centro (0.5,0.5) es menor a 0.5. Para cada par (Xi,Yi) determine si la distancia desde el centro es menor a 0.5. Esto último se puede realizar al calcular el valor (Xi−0.5)2+(Yi−0.5)2, que es el cuadrado de la distancia, y al determinar si es menor que 0.25.
d_centro <- (x - 0.5)^2 + (y - 0.5)^2
menores <- ifelse(d_centro < 0.25, 1, 0)
  1. ¿Cuántos de los puntos están dentro del círculo? ¿Cuál es su estimación de π
sum (menores)
## [1] 780
pi <- 4*(sum(menores)/1000)
print (pi)
## [1] 3.12

Simulación con 10.000 puntos

x_2 <- runif(10000,0,1)
y_2 <- runif(10000,0,1)
d_centro_2 <- (x_2 - 0.5)^2 + (y_2 - 0.5)^2

men_2 <- ifelse(d_centro_2 < 0.25, 1, 0)

sum (men_2)
## [1] 7877
pi_2 <- 4*(sum(men_2)/10000)
print (pi_2)
## [1] 3.1508

Simulación con 100.000 puntos

x_3 <- runif(100000,0,1)
y_3 <- runif(100000,0,1)
d_centro_3 <- (x_3 - 0.5)^2 + (y_3 - 0.5)^2

men_3 <- ifelse(d_centro_3 < 0.25, 1, 0)

sum (men_3)
## [1] 78467
pi_3 <- 4*(sum(men_3)/100000)
print (pi_3)
## [1] 3.13868

A medida que la simulación es mayor el valor de pi va siendo más preciso