Generamos los puntos a simular.
n <- 1000
x <- runif(n)
y <- runif(n)
Determinamos distancias y contamos los puntos fuera y dentro de la circunferencia
dentro <- 0
fuera <- 0
for (i in 1:n) {
distancia<- (x[i] - 0.5)^2 + (y[i] - 0.5)^2
if (distancia <= 0.25) {
dentro <- dentro + 1
} else {
fuera <- fuera + 1
}
}
#Realizamos una representación gráfica del ejercicio.
t <- seq(0, 2*pi, length.out = 100)
plot(0, 0, asp = 1, type = "n",
xlim = c(0, 1), ylim = c(0, 1),
ann = F)
abline(v = seq(0, 1, 0.1), lty = 2, col = "gray70")
abline(h = seq(0, 1, 0.1), lty = 2, col = "gray70")
radio <- 1/2
a <- 0.5
b <- 0.5
xx <- a + cos(t)*radio
yy <- b + sin(t)*radio
points(xx, yy, type = "l", col = "blue")
points(x,y,pch = 20)
¿Cuántos de los puntos están dentro del círculo? ¿Cuál es su estimación de π?
Por lo menos un 78% de los puntos estan dentro del circulo, a medida que aumenta N este porcentaje se mantiene y la estimación de π se acerca a 3.1416
estimacion_pi <- dentro / n
aproximacion_pi <- estimacion_pi * 4
cat("Dentro:", dentro, "\n")
## Dentro: 783
cat("Estimación de π:", estimacion_pi, "\n")
## Estimación de π: 0.783
cat("Valor de π:", aproximacion_pi, "\n")
## Valor de π: 3.132
#Repetir para un mayor número de N
## Dentro: 7854136
## Estimación de π: 0.7854136
## Valor de π: 3.141654