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 π .
El problema se dividirá en problemas más pequeños por lo que para realizar la estimación del valor de π, se seguirán los pasos descritos a continuación:
Inicialmente se construye una función que realiza lo siguiente:
validacion_puntos <- function(x, y){
validacion <- (x-0.5)^2 + (y-0.5)^2
if (validacion < 0.25){
return(1)
}
else{
return(0)
}
}
Se construye una función que realiza lo siguiente:
conteo_puntos <- function(n){
conteo <- 0
puntos_x <- numeric(n)
puntos_y <- numeric(n)
resultados <- numeric(n)
for (i in 1:n) {
a <- runif(1)
b <- runif(1)
puntos_x[i] <- a
puntos_y[i] <- b
resultados[i] <- validacion_puntos(a, b)
if(validacion_puntos(a, b) == 1){
conteo <- conteo + 1
}
}
# Graficamos los puntos
plot(puntos_x, puntos_y, col = ifelse(resultados, 'green', 'black'),
asp = 1, xlab = "X", ylab = "Y", main = paste("Distribución de puntos
para n =", n))
legend("topright", c("Dentro del círculo", "Fuera del círculo"),
fill = c("green", "black"))
cat("La cantidad de puntos para una muestra de ", n, " puntos es ", conteo, "\n")
cat("La estimación de π es ", 4 * conteo / n, "\n")
}
Se construye una función que realiza lo siguiente:
set.seed(1234)
muestras <- c(1000, 10000, 100000)
iteracion <- function(){
for (j in 1:length(muestras)) {
conteo_puntos(muestras[j])
}
}
Finalmente se llama a la función iteración que a su vez activa la función conteo puntos que a su vez activa la función validación puntos
iteracion()
## La cantidad de puntos para una muestra de 1000 puntos es 789
## La estimación de π es 3.156
## La cantidad de puntos para una muestra de 10000 puntos es 7866
## La estimación de π es 3.1464
## La cantidad de puntos para una muestra de 1e+05 puntos es 78571
## La estimación de π es 3.14284