x <- runif(1000, 0, 1)
y <- runif(1000, 0, 1)
xy <- data.frame(x, y)
fx <- function(x, y) {
sqrt((x - 0.5)^2 + (y - 0.5)^2)
}
distancia <- mapply(fx, xy$x, xy$y)
puntos_dentro <- sum(distancia < 0.5) # Contar cuántos puntos están dentro del círculo
estimacion_pi_4 <- puntos_dentro / 1000 # Estimación de π/4
estimacion_pi <- 4 * estimacion_pi_4 # Estimación de π
# Crear una nueva columna en el dataframe para indicar si el punto está dentro del círculo
xy$inside_circle <- distancia < 0.5
# Graficar los puntos dentro y fuera del círculo
plot(xy$x, xy$y, col = ifelse(xy$inside_circle, "blue", "red"), pch = 16, main = "Monte Carlo Estimation of π")
points(0.5, 0.5, col = "green", pch = 4) # Marcar el centro del círculo en verde
legend("topright", legend = c("Inside Circle", "Outside Circle"), col = c("blue", "red"), pch = 16)
circle_points <- xy[xy$inside_circle, ]
points(circle_points$x, circle_points$y, col = "purple", pch = 16) # Pintar los puntos dentro del círculo de color morado
cat("Estimación de π:", estimacion_pi, "\n")
## Estimación de π: 3.104
cat("Número de puntos dentro del círculo:", puntos_dentro, "\n")
## Número de puntos dentro del círculo: 776
x <- runif(10000, 0, 1)
y <- runif(10000, 0, 1)
xy <- data.frame(x, y)
fx <- function(x, y) {
sqrt((x - 0.5)^2 + (y - 0.5)^2)
}
distancia <- mapply(fx, xy$x, xy$y)
puntos_dentro <- sum(distancia < 0.5) # Contar cuántos puntos están dentro del círculo
estimacion_pi_4 <- puntos_dentro / 10000 # Estimación de π/4
estimacion_pi <- 4 * estimacion_pi_4 # Estimación de π
# Crear una nueva columna en el dataframe para indicar si el punto está dentro del círculo
xy$inside_circle <- distancia < 0.5
# Graficar los puntos dentro y fuera del círculo
plot(xy$x, xy$y, col = ifelse(xy$inside_circle, "blue", "red"), pch = 16, main = "Monte Carlo Estimation of π")
points(0.5, 0.5, col = "green", pch = 4) # Marcar el centro del círculo en verde
legend("topright", legend = c("Inside Circle", "Outside Circle"), col = c("blue", "red"), pch = 16)
circle_points <- xy[xy$inside_circle, ]
points(circle_points$x, circle_points$y, col = "purple", pch = 16) # Pintar los puntos dentro del círculo de color morado
cat("Estimación de π:", estimacion_pi, "\n")
## Estimación de π: 3.134
cat("Número de puntos dentro del círculo:", puntos_dentro, "\n")
## Número de puntos dentro del círculo: 7835
x <- runif(100000, 0, 1)
y <- runif(100000, 0, 1)
xy <- data.frame(x, y)
fx <- function(x, y) {
sqrt((x - 0.5)^2 + (y - 0.5)^2)
}
distancia <- mapply(fx, xy$x, xy$y)
puntos_dentro <- sum(distancia < 0.5) # Contar cuántos puntos están dentro del círculo
estimacion_pi_4 <- puntos_dentro / 100000 # Estimación de π/4
estimacion_pi <- 4 * estimacion_pi_4 # Estimación de π
# Crear una nueva columna en el dataframe para indicar si el punto está dentro del círculo
xy$inside_circle <- distancia < 0.5
# Graficar los puntos dentro y fuera del círculo
plot(xy$x, xy$y, col = ifelse(xy$inside_circle, "blue", "red"), pch = 16, main = "Monte Carlo Estimation of π")
points(0.5, 0.5, col = "green", pch = 4) # Marcar el centro del círculo en verde
legend("topright", legend = c("Inside Circle", "Outside Circle"), col = c("blue", "red"), pch = 16)
circle_points <- xy[xy$inside_circle, ]
points(circle_points$x, circle_points$y, col = "purple", pch = 16) # Pintar los puntos dentro del círculo de color morado
cat("Estimación de π:", estimacion_pi, "\n")
## Estimación de π: 3.14536
cat("Número de puntos dentro del círculo:", puntos_dentro, "\n")
## Número de puntos dentro del círculo: 78634
Como resultado de las tres estimaciones anteriroes se observa que entre mayor el número de puntos que se tiene de la muestra, se evidenncia una aproximación a π se puede ver que en el caso que se tienen 1000 puntos en el cuadro se obtiene el siguiente resultado:
Estimación de π: 3.236
Número de puntos dentro del círculo: 809
Cuando se tienen 10000 puntos dentro del cuadro se observa este resultado:
Estimación de π: 3.126
Número de puntos dentro del círculo: 7815
Y para 100000 puntos dentro del cuadro se obtiene:
Estimación de π: 3.13664
Número de puntos dentro del círculo: 78416