Para la estimación de \(\pi\) se utilizan las siguientes funciones:
runif(n) : Genera números aleatorios con distribución
uniforme.as.numeric(): Genera un 1 cuando cumple la condición,
de lo contrario 0.n <- 10000000
x <- runif(n)
y <- runif(n)
d <- (x-0.5)^2 + (y-0.5)^2
u <- as.numeric(d <= 0.25)
p1 <- sum(u)/n
epi <- (sum(u)/n)*4
error <- pi-epi
cat("Proporción de puntos dentro del circulo:",p1, "\n")
cat("Estimación de pi :",epi, "\n")
cat("Error de estimación :",error)
Proporción de puntos dentro del circulo: 0.7852426 Estimación de pi : 3.14097 Error de estimación : 0.0006222536
Se representa mediante la generación de puntos de la funcion
runif() con la función seq() se genera puntos
en el rango asignado en este caso los de la circunferencia del circulo.
* plot(): Para llamar el grafico. * abline():
Para definir lineas horizontales y verticales en el grafico.
# Gráficos
n <- 1000
x <- runif(n)
y <- runif(n)
t <- seq(0, 2 * pi, length.out = 100)
plot(0, 0, asp = 1, type = "n",
xlim = c(0, 1), ylim = c(0, 1),
ann = FALSE)
abline(v = seq(0, 1, 0.1), lty = 2, col = "gray60") #Lineas Verticales
abline(h = seq(0, 1, 0.1), lty = 2, col = "gray60") #Lineas Horizontales
radio <- 1/2
a <- 0.5
b <- 0.5
xx <- a + cos(t) * radio
yy <- b + sin(t) * radio
# Dibuja la circunferencia
points(xx, yy, type = "l", col = "red")
# Dibuja los puntos
points(x, y, col = "black", pch = 20)