Estimación del valor de pi
Pasos sugeridos:
- Genere n coordenadas x:X1, . . . , Xn. Utilice la distribución
uniforme con valor mínimo de 0 y valor máximo de 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.
- 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)
- ¿Cuántos de los puntos están dentro del círculo? ¿Cuál es su
estimación de π
## [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