Problema 1
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 π.
x <- runif(1000,0,1)
y <- runif(1000,0,1)
distancias <- numeric ()
for (i in 1:length(x)) {
distancias[i] = (x[i]-0.5)^2+(y[i]-0.5)^2
}
#los puntos que se encuentran fuera y dentro del círculo
# 1 -> esta dentro
# 0 -> esta fuera
puntos = ifelse(distancias < 0.25, 1, 0)
sum(puntos)
## [1] 779
4 * sum(puntos)/length(x)
## [1] 3.116
4 * sum(puntos)/length(x) - pi
## [1] -0.02559265
x1 <- runif(10000,0,1)
y1 <- runif(10000,0,1)
distancias2 <- numeric ()
for (i in 1:length(x1)) {
distancias2[i] = (x1[i]-0.5)^2+(y1[i]-0.5)^2
}
#los puntos que se encuentran fuera y dentro del círculo
# 1 -> esta dentro
# 0 -> esta fuera
puntos = ifelse(distancias2 < 0.25, 1, 0)
sum(puntos)
## [1] 7798
4 * sum(puntos)/length(x1)
## [1] 3.1192
4 * sum(puntos)/length(x1) - pi
## [1] -0.02239265
x2 <- runif(100000,0,1)
y2 <- runif(100000,0,1)
distancias2 <- numeric ()
for (i in 1:length(x2)) {
distancias2[i] = (x2[i]-0.5)^2+(y2[i]-0.5)^2
}
#los puntos que se encuentran fuera y dentro del círculo
# 1 -> esta dentro
# 0 -> esta fuera
puntos = ifelse(distancias2 < 0.25, 1, 0)
sum(puntos)
## [1] 78538
4 * sum(puntos)/length(x2)
## [1] 3.14152
4 * sum(puntos)/length(x2) - pi
## [1] -7.265359e-05
t <- seq(0, 2*pi, length.out =100)
plot(0, 0, asp =1, type = "n",
xlim = c(0,1), ylim = c(0,1),
ann= F)
abline(v = seq (0,10,0.1),lty=2, col= "gray")
abline(h = seq (0,10,0.1),lty=2, col= "gray")
radio <- 1/2
a <- 0.5
b <- 0.5
xx <- a + cos (t) * radio
yy <- b + sin (t) * radio
points(xx, yy, type = "n", col = "blue")
points(x,y,pch = 20)
A partir de los resultados se evidencia que a medida que incrementa la muestra el valor de π se aproxima mas al valor original de π que es de 3.1416. Desde esta perspectiva, se puede observar que con una muestra mayor de 100.000 la aproximacion al valor de π es la mas próxima a π original. De la misma manera, es posible determinar que con una muestra de 100.000 los puntos encontrados dentro del círculo son aproximadamente el 78% de los puntos simulados se encuentran dentro del círculo.