La siguiente figura sugiere como estimar el valor de \(\pi\) con una simulación. En la figura, un circuito con un área igual a \(\pi/4\), está inscrito en un cuadrado cuya área es igual a 1. Se elige de forma aleatoria \(n\) puntos dentro del cuadrado. La probabilidad de que un punto esté dentro del círculo es igual a la fracción del área del cuadrado que abarca a este, la cual es \(\pi/4\). Por tanto, se puede estimar el valor de \(\pi/4\) al contar el número de puntos dentro del círculo, para obtener la estimación de \(\pi/4\). De este último resultado se encontrar una aproximación para el 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. La distribución uniforme genera variables aleatorias que tienen la misma probabilidad de venir de cualquier parte del intervalo (0,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.
set.seed(123)
n1 <- 1000
n2 <- 10000
n3 <- 100000
x_1000 <- runif(n1, 0, 1)
y_1000 <- runif(n1, 0, 1)
x_10000 <- runif(n2, 0, 1)
y_10000 <- runif(n2, 0, 1)
x_100000 <- runif(n3, 0, 1)
y_100000 <- runif(n3, 0, 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.
¿Cuántos de los puntos están dentro del círculo?
puntos_dentro_1000 <- sum((x_1000 - 0.5)^2 + (y_1000 - 0.5)^2 <= 0.25)
puntos_dentro_10000 <- sum((x_10000 - 0.5)^2 + (y_10000 - 0.5)^2 <= 0.25)
puntos_dentro_100000 <- sum((x_100000 - 0.5)^2 + (y_100000 - 0.5)^2 <= 0.25)
El número de puntos dentro del círculo es de: 800
¿Cuál es su estimación de \(\pi\)?
\(\pi = 4 \times \frac{\text{puntos dentro}}{n}\)
pi_estimado_1000 <- 4 * puntos_dentro_1000 / n1
pi_estimado_10000 <- 4 * puntos_dentro_10000 / n2
pi_estimado_100000 <- 4 * puntos_dentro_100000 / n3
La estimación de \(\large\pi\) con \(\large n=1000\) es de: 3.2
La estimación de \(\large\pi\) con \(\large n=10^{4}\) es de: 3.1528
La estimación de \(\large\pi\) con \(\large n=10^{5}\) es de: 3.144
¿Cuál es el error absoluto de su estimación?
\(\Large|\pi - \pi_{estimado}|\)
error_absoluto_1000 <- abs(pi - pi_estimado_1000)
error_absoluto_10000 <- abs(pi - pi_estimado_10000)
error_absoluto_100000 <- abs(pi - pi_estimado_100000)
Error absoluto para muestra de \(n=1000\) : \(0.0584073\)
Error absoluto para muestra de \(n=10^{5}\) : \(0.0112073\)
Error absoluto para muestra de \(n=10^{4}\) : \(0.0024073\)
¿Cuál es el error relativo de su estimación?
\(\Large\frac{|\pi - \pi_{estimado}|}{\pi} = \frac{|\pi - 3.2|}{\pi}\)
error_relativo_1000 <- abs(pi - pi_estimado_1000) / pi
error_relativo_10000 <- abs(pi - pi_estimado_10000) / pi
error_relativo_100000 <- abs(pi - pi_estimado_100000) / pi
#Todo correcto. Puesto que el ejercicio pide una estimación puntual, no presento comentarios adicionales.
Error relativo para muestra de \(n=1000\) : \(0.0185916\)
Error relativo para muestra de \(n=10^{5}\) : \(0.0035674\)
Error relativo para muestra de \(n=10^{4}\) : \(7.6628216\times 10^{-4}\)