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 proceso se realiza a partir de los siguientes pasos:
# Ejercicio 1: Conteo de puntos y hallar π.
set.seed(1) # Semilla que guarda los valores para proximas ejecuciones.
#Valores aleatorio de 1000
x <- runif(1000, min = 0, max = 1) # Valores aleatorios en x.
y <- runif(1000, min = 0, max = 1) # Valores aleatorios en y.
distancia<- (x - 0.5)^2 + (y - 0.5)^2 # Clacular la distancia de los puntos del centro.
dentro <- distancia < 0.25 # Calcular la distancia de los puntos que estan en el circulo.
conteo <- sum(dentro) # Contar los puntos que estan dentro del circulo.
π <- 4 * (conteo / 1000) # Calcular pi a partir del conteo de puntos
cat("Cuando se estima con 1000 puntos: ","\n","Número de puntos dentro del círculo: ", conteo, "Estimación de π:", π, "\n")
## Cuando se estima con 1000 puntos:
## Número de puntos dentro del círculo: 770 Estimación de π: 3.08
#Valores aleatorio de 10000
x <- runif(10000, min = 0, max = 1)# Valores aleatorios en x.
y <- runif(10000, min = 0, max = 1)# Valores aleatorios en y.
distancia<- (x - 0.5)^2 + (y - 0.5)^2 # Clacular la distancia de los puntos del centro.
dentro <- distancia < 0.25 # Calcular la distancia de los puntos que estan en el circulo.
conteo <- sum(dentro) # Contar los puntos que estan dentro del circulo.
π<- 4 * (conteo / 10000) # Calcular pi a partir del conteo de puntos
cat("Cuando se estima con 10000 puntos: ","\n","Número de puntos dentro del círculo: ", conteo, "Estimación de π:", π, "\n")
## Cuando se estima con 10000 puntos:
## Número de puntos dentro del círculo: 7854 Estimación de π: 3.1416
library(ggplot2)
ggplot(data.frame(x = x, y = y, dentro = dentro), aes(x = x, y = y, color = dentro)) +
geom_point() +
scale_color_manual(values = c("purple", "pink")) +
labs(title = "Distribución de los puntos", x = "X", y = "Y") +
theme_minimal()
Después de realizar el ejercicio en R y analizar el resultado, se pueden ampliar las conclusiones de la siguiente manera:
Importancia de la semilla en la generación de valores aleatorios: Identificar una semilla adecuada es crucial para garantizar la reproducibilidad de los resultados en cada ejecución del programa, lo cual es especialmente importante en casos donde se requiere precisión y consistencia en los cálculos.
Necesidad de entrenar el proceso: Se observó que al realizar el proceso únicamente con un valor de 10,000, el cálculo de pi no resultaba exacto, tenia un error del 0.002%. Sin embargo, al estimar previamente con un valor menor, como 1,000, y luego realizar el cálculo con 10,000, se obtuvo el valor exacto de pi. Esto resalta la importancia de entrenar el proceso, es decir, realizar iteraciones y ajustes previos para obtener resultados más precisos y confiables.
Tipo de probabilidad utilizado: En este caso, se utilizó el concepto de probabilidad total, ya que se realizó una sumatoria total para encontrar el valor de pi. La probabilidad total implica considerar todas las posibles combinaciones o eventos para llegar a una conclusión, en este caso, el cálculo de pi a través de la aproximación por Monte Carlo.