La siguiente figura sugiere como estimar el valor de π con una simulación. En la figura, un círcuito 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 éste, 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 π.
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.
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? ¿Cuál es su estimación de π?
para la estimaciòn de \(\pi\) se utilizan las funciones:
runif(): genera números aleatorios con distribución
uniformeas.numeric() : genera 1 cuando se cumple una condición,
de lo contrario asigna 0.Este problema lo desarrollamos así:
n <- 100
x <- runif(n)
y <- runif(n)
d <- (x-0.5)^2 + (y-0.5)^2
u <- as.numeric(d <= 0.25)
p1 <- sum(u)/n
epi <- (sum(u)/n) * 4
error <- pi - epi
#Imprimir resultados
cat("proporción de puntos dentro del circulo :", p1, "\n")
proporción de puntos dentro del circulo : 0.79
cat("Estimación de pi :", epi, "\n")
Estimación de pi : 3.16
cat("Error de estimación :", error)
Error de estimación : -0.01840735
#Graficar los resultados
plot(x, y, col = ifelse(u == 1, "blue", "green"),
pch = 19,
xlab = "X",
ylab = "Y",
main = "Simulación para estimación de pi")
#Agregar el círculo
theta <- seq(0, 2 * pi, length.out = 100)
circle_x <- 0.5 + 0.5 * cos(theta)
circle_y <- 0.5 + 0.5 * sin(theta)
lines(circle_x, circle_y, col = "red", lwd = 2)
n <- 1000
x <- runif(n)
y <- runif(n)
d <- (x-0.5)^2 + (y-0.5)^2
u <- as.numeric(d <= 0.25)
p1 <- sum(u)/n
epi <- (sum(u)/n) * 4
error <- pi - epi
#Imprimir resultados
cat("proporción de puntos dentro del circulo :", p1, "\n")
proporción de puntos dentro del circulo : 0.774
cat("Estimación de pi :", epi, "\n")
Estimación de pi : 3.096
cat("Error de estimación :", error)
Error de estimación : 0.04559265
#Graficar los resultados
plot(x, y, col = ifelse(u == 1, "blue", "green"),
pch = 19,
xlab = "X",
ylab = "Y",
main = "Simulación para estimación de pi")
#Agregar el círculo
theta <- seq(0, 2 * pi, length.out = 100)
circle_x <- 0.5 + 0.5 * cos(theta)
circle_y <- 0.5 + 0.5 * sin(theta)
lines(circle_x, circle_y, col = "red", lwd = 2)
n <- 10000
x <- runif(n)
y <- runif(n)
d <- (x-0.5)^2 + (y-0.5)^2
u <- as.numeric(d <= 0.25)
p1 <- sum(u)/n
epi <- (sum(u)/n) * 4
error <- pi - epi
#Imprimir resultados
cat("proporción de puntos dentro del circulo :", p1, "\n")
proporción de puntos dentro del circulo : 0.7855
cat("Estimación de pi :", epi, "\n")
Estimación de pi : 3.142
cat("Error de estimación :", error)
Error de estimación : -0.0004073464
#Graficar los resultados
plot(x, y, col = ifelse(u == 1, "blue", "green"),
pch = 19,
xlab = "X",
ylab = "Y",
main = "Simulación para estimación de pi")
#Agregar el círculo
theta <- seq(0, 2 * pi, length.out = 100)
circle_x <- 0.5 + 0.5 * cos(theta)
circle_y <- 0.5 + 0.5 * sin(theta)
lines(circle_x, circle_y, col = "red", lwd = 2)
CONCLUSIONES - El error de estimación disminuye cuando se incrementa el número de puntos generados. - El valor estimado de pi “epi”, obedece a la cantidad de puntos generados, con cien, la estimación tiene un determinado error pero a medida que aumenta el número de puntos “n”, la estimación se acerca más al valor real de pi.