Estimación del valor de π
La siguiente figura sugiere como estimar el valor de π con una simulación. En la figura, un circuito con un área igual a π/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 π/4. Por tanto, se puede estimar el valor de π/4 al contar el número de puntos dentro del círculo, para obtener la estimación de π/4. De este último resultado se encontrar una aproximación para el valor de π .
Ejemplo para un n= 1000
A. Genere n coordenadas x: X1, . . . , X n. 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).
B. Genere 1000 coordenadas y : Y1,…,Yn , utilizando nuevamente la distribución uniforme con valor mínimo de 0 y valor máximo de 1.
C. 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.I. ¿Cuántos de los puntos están dentro del círculo?
## [1] "Puntos dentro del circulo: 807"
- Cuál es su estimación de π?
## [1] "Estimacion de pi: 3.228"
Grafica 1
r = 0.5
x_ = runif(n, -r+0.5, r+0.5)
y_1 = sqrt(r^2-(x_-0.5)^2)+0.5
y_2 = -sqrt(r^2-(x_-0.5)^2)+0.5
plot(X, Y, cex = 0.3, pch = 10)
points(mean(X), mean(Y), cex = 1, col = 'blue',pch = 10)
points(x_, y_1, cex = 0.2, col = 'purple', pch = 10)
points(x_, y_2, cex = 0.2, col = 'purple', pch = 10)Ejemplo para un n= 10000
A. Genere n coordenadas x: X1, . . . , X n. 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).
B. Genere 10000 coordenadas y : Y1,…,Yn , utilizando nuevamente la distribución uniforme con valor mínimo de 0 y valor máximo de 1.
C. 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.I. ¿Cuántos de los puntos están dentro del círculo?
## [1] "Puntos dentro del circulo: 7919"
- Cuál es su estimación de π?
## [1] "Estimacion pi1 : 3.1676"
Grafica 2
r1 = 0.5
x_1 = runif(n1, -r1+0.5, r+0.5)
y_1_1 = sqrt(r1^2-(x_1-0.5)^2)+0.5
y_2_1 = -sqrt(r1^2-(x_1-0.5)^2)+0.5
plot(X1, Y1, cex = 0.3, pch = 10)
points(mean(X1), mean(Y1), cex = 1, col = 'blue',pch = 10)
points(x_1, y_1_1, cex = 0.2, col = 'green', pch = 10)
points(x_1, y_2_1, cex = 0.2, col = 'green', pch = 10)Ejemplo para un n= 100000
A. Genere n coordenadas x: X1, . . . , X n. 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).
B. Genere 1000 coordenadas y : Y1,…,Yn , utilizando nuevamente la distribución uniforme con valor mínimo de 0 y valor máximo de 1.
C. 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.I. ¿Cuántos de los puntos están dentro del círculo?
## [1] "Puntos dentro del circulo: 78639"
- Cuál es su estimación de π?
## [1] "estimacion de pi: 3.14556"
Grafica 3
r2 = 0.5
x_2 = runif(n2, -r+0.5, r+0.5)
y_1_2 = sqrt(r2^2-(x_2-0.5)^2)+0.5
y_2_2 = -sqrt(r2^2-(x_2-0.5)^2)+0.5
plot(X2, Y2, cex = 0.3, pch = 10)
points(mean(X2), mean(Y2), cex = 1, col = 'blue',pch = 10)
points(x_2, y_1_2, cex = 0.2, col = 'brown', pch = 10)
points(x_2, y_2_2, cex = 0.2, col = 'brown', pch = 10)Conclusión
Cuando se tiene un n mas grande se tiene mayor probabilidad de dar como resultado una estimación muy cercana al valor verdadero de π.