La siguiente figura sugiere como estimar el valor de \(𝞹\) con una simulación. En la figura, un circulo 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 \(𝞹\).
¿Cuántos de los puntos están dentro del círculo? ¿Cuál es su estimación de \(𝞹\)?
Paso 1: Generando las coordenadas aleatoriamente.
n = 10000 #Número de muestras
x <- runif( n, min = 0, max = 1)
y <- runif( n, min = 0, max = 1)
plot(x = x, y = y, main = "Muestras generadas aleatoriamente")
Paso 2: Determinando que coordenadas se encuentran dentro del círculo.
x_cir <- vector("numeric", length = 0)
y_cir <- vector("numeric", length = 0)
#Recorriendo todas las coordenadas
for (i in 1:n) {
#Si se cumple la condición, las coordenadas se encuentran dentro del círculo.
if ( (x[i]-0.5)^2 + (y[i]-0.5)^2 <= 0.25 ){
x_cir <- c(x_cir, x[i])
y_cir <- c(y_cir, y[i])
}
}
#Graficando el resultado
plot(x = x, y = y, col = 'blue', main = "Clasificación de las coordenadas")
points(x = x_cir, y = y_cir, col = 'red')
legend("topright", legend = c("Rectángulo", "Círculo"), col = c("blue", "red"), pch = 1)
¿Cuántos de los puntos están dentro del círculo?
print(sprintf("La cantidad de puntos que están dentro del círculo es de: %.2f", length(x_cir)))
## [1] "La cantidad de puntos que están dentro del círculo es de: 7879.00"
¿Cuál es su estimación de \(𝞹\)?
pi_apro <- 4 * (length(x_cir) / length(x))
print(sprintf("El valor aproximado de pi es de: %.5f", pi_apro))
## [1] "El valor aproximado de pi es de: 3.15160"