Generación de coordenadas

Generamos 1000 coordenadas x e y con distribución uniforme en el intervalo (0,1).

set.seed(123) 
n <- 1000  

x <- runif(n, min = 0, max = 1)
y <- runif(n, min = 0, max = 1)

Determinación de puntos dentro del círculo

Cada punto (x, y) está dentro del círculo si su distancia al centro (0.5, 0.5) es menor a 0.5, lo que equivale a la condición:

\[ (X_i - 0.5)^2 + (Y_i - 0.5)^2 < 0.25 \]

dentro_circulo <- (x - 0.5)^2 + (y - 0.5)^2 < 0.25
puntos_dentro <- sum(dentro_circulo)

Respuesta:

Estimación de π

Dado que la relación de puntos dentro del círculo es aproximadamente π/4, estimamos π como:

pi_estimado <- (puntos_dentro / n) * 4
pi_estimado
## [1] 3.2

Respuesta:

Representación gráfica

Visualizamos los puntos generados y diferenciamos los que están dentro y fuera del círculo.

Simulación con más puntos

Para mejorar la precisión, repetimos el experimento con 10,000 y 100,000 puntos.

simular_pi <- function(n) {
  x <- runif(n, 0, 1)
  y <- runif(n, 0, 1)
  dentro <- sum((x - 0.5)^2 + (y - 0.5)^2 < 0.25)
  return((dentro / n) * 4)
}

pi_10k <- simular_pi(10000)
pi_100k <- simular_pi(100000)

Respuesta:

Conclusiónes