Problema 1

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 π.

JuveR

información de coordenadas con 1000

x <- runif(1000,0,1)
y <- runif(1000,0,1)

Determinación de distancias

distancias <- numeric ()

for (i in 1:length(x)) {
distancias[i] = (x[i]-0.5)^2+(y[i]-0.5)^2
}

#los puntos que se encuentran fuera y dentro del círculo
# 1 -> esta dentro
# 0 -> esta fuera
puntos = ifelse(distancias < 0.25, 1, 0)

Puntos que están dentro del circulo

sum(puntos)
## [1] 779

Estimación de Pi

4 * sum(puntos)/length(x)
## [1] 3.116

Estimación del error con 1000 puntos

4 * sum(puntos)/length(x) - pi
## [1] -0.02559265

Información de coordenadas con 10000

x1 <- runif(10000,0,1)
y1 <- runif(10000,0,1)

Determinación de distancias

distancias2 <- numeric ()

for (i in 1:length(x1)) {
distancias2[i] = (x1[i]-0.5)^2+(y1[i]-0.5)^2
}

#los puntos que se encuentran fuera y dentro del círculo
# 1 -> esta dentro
# 0 -> esta fuera
puntos = ifelse(distancias2 < 0.25, 1, 0)
sum(puntos)
## [1] 7798

Estimación de Pi

4 * sum(puntos)/length(x1)
## [1] 3.1192

Estimación del error con 10000 puntos

4 * sum(puntos)/length(x1) - pi
## [1] -0.02239265

Información de coordenadas con 100000

x2 <- runif(100000,0,1)
y2 <- runif(100000,0,1)

Determinación de distancias

distancias2 <- numeric ()

for (i in 1:length(x2)) {
distancias2[i] = (x2[i]-0.5)^2+(y2[i]-0.5)^2
}

#los puntos que se encuentran fuera y dentro del círculo
# 1 -> esta dentro
# 0 -> esta fuera
puntos = ifelse(distancias2 < 0.25, 1, 0)
sum(puntos)
## [1] 78538

Estimación de Pi

4 * sum(puntos)/length(x2)
## [1] 3.14152

Estimación del error con 100000 puntos

4 * sum(puntos)/length(x2) - pi
## [1] -7.265359e-05

Mostrar resultados graficamente

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,10,0.1),lty=2, col= "gray")
abline(h = seq (0,10,0.1),lty=2, col= "gray")

radio <- 1/2
a <- 0.5
b <- 0.5

xx <- a + cos (t) * radio
yy <- b + sin (t) * radio

points(xx, yy, type = "n", col = "blue")
points(x,y,pch = 20)

Conclusiones

A partir de los resultados se evidencia que a medida que incrementa la muestra el valor de π se aproxima mas al valor original de π que es de 3.1416. Desde esta perspectiva, se puede observar que con una muestra mayor de 100.000 la aproximacion al valor de π es la mas próxima a π original. De la misma manera, es posible determinar que con una muestra de 100.000 los puntos encontrados dentro del círculo son aproximadamente el 78% de los puntos simulados se encuentran dentro del círculo.