La estimación de Pi mediante simulaciones de Monte Carlo es un método numérico que utiliza la generación de puntos aleatorios en un área geométrica para aproximar el valor de Pi. A continuación, se presenta el código y el análisis de una simulación que estima el valor de Pi generando puntos dentro de un cuadrado y evaluando cuántos caen dentro de un círculo inscrito en ese cuadrado.
# Cantidad de puntos a generar
n <- 10000
# Generar puntos aleatorios en el cuadrado
x <- runif(n)
y <- runif(n)
# Calcular la distancia de cada punto al centro (0.5, 0.5)
d <- (x - 0.5)^2 + (y - 0.5)^2
# Determinar cuántos puntos están dentro del círculo de radio 0.5
p1 <- as.numeric(d <= 0.25)
# Estimar pi
epi <- (sum(p1) / n) * 4
# Mostrar el resultado
cat("Proporción de puntos dentro del círculo:", sum(p1) / n, "\n")
Proporción de puntos dentro del círculo: 0.7858
cat("Estimación de pi:", epi, "\n")
Estimación de pi: 3.1432
library(ggplot2)
# Crear un dataframe con los resultados de los puntos
df <- data.frame(x = x, y = y, dentro = as.factor(p1))
# Crear el gráfico
ggplot(df, aes(x = x, y = y, color = dentro)) +
geom_point(size = 0.7) +
labs(title = "Estimación de Pi mediante Monte Carlo",
subtitle = paste("Número de puntos: ", n),
x = "X", y = "Y") +
scale_color_manual(values = c("red", "blue"), labels = c("Fuera del círculo", "Dentro del círculo")) +
theme_minimal()
Este ejercicio nos permite aproximar el valor de Pi utilizando un método sencillo pero efectivo, aprovechando la aleatoriedad y la geometría. Aunque la estimación no es exacta, aumenta su precisión conforme incrementamos el número de puntos generados.