Estimación del valor de π

.

.

.

SOLUCION

A- Se generan 1000 coordenadas para X.

# Generar n=1000 puntos aleatorios para x
set.seed(2312)
n <- 1000
x<-runif(n, 0, 1)

B- Se generan 1000 coordenadas para Y.

# Generar n=1000 puntos aleatorios para Y
set.seed(456)
n <- 1000
y<-runif(n, 0, 1)
# grafiicar la nube de puntos forma 1
plot(x = x, y = y, main = "Grafica de Coordenadas Generadas")

C- cálculo de la distancia para n=1000

x_c <- vector("numeric", length = 0)
y_c <- 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_c <- c(x_c, x[i])
    y_c <- c(y_c, y[i])
  }
}

data2=as.data.frame(cbind(x_c,y_c))

Graficamos

plot(x = x, y = y, col = 'gray', main = "Estimacion de π con n=1000 ")
points(x = x_c, y = y_c, col = 'yellow')
legend("topright", legend = c("Dentro", "Fuera"), col = c("gray", "yellow"), pch = 1)

D- ¿Cuántos de los puntos están dentro del círculo? ¿Cuál es su estimación de π?

Estimacionde π Para n=1000

print(sprintf("La cantidad de puntos que están dentro del círculo es de: %.2f", length(x_c)))
## [1] "La cantidad de puntos que están dentro del círculo es de: 795.00"
pi_apro <- 4 * (length(x_c) / length(x))
print(sprintf("El valor aproximado de pi es de: %.5f", pi_apro))
## [1] "El valor aproximado de pi es de: 3.18000"

E1- Estimacion de π Para n=10000

# Generar n=1000 puntos aleatorios para x
set.seed(2312)
n <- 10000
x<-runif(n, 0, 1)

# Generar n=1000 puntos aleatorios para Y
set.seed(456)
n <- 10000
y<-runif(n, 0, 1)

# grafiicar la nube de puntos forma 1
plot(x = x, y = y, main = "Grafica de Coordenadas Generadas")

x_c <- vector("numeric", length = 0)
y_c <- 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_c <- c(x_c, x[i])
    y_c <- c(y_c, y[i])
  }
}

data2=as.data.frame(cbind(x_c,y_c))


plot(x = x, y = y, col = 'gray', main = "Estimacion de π con n=10000")
points(x = x_c, y = y_c, col = 'yellow')
legend("topright", legend = c("Fuera", "Dentro"), col = c("gray", "yellow"), pch = 1)

Estimacion de π Para n=10000

print(sprintf("La cantidad de puntos que están dentro del círculo es de: %.2f", length(x_c)))
## [1] "La cantidad de puntos que están dentro del círculo es de: 7914.00"
pi_apro <- 4 * (length(x_c) / length(x))
print(sprintf("El valor aproximado de pi es de: %.5f", pi_apro))
## [1] "El valor aproximado de pi es de: 3.16560"

E2- Estimacion de π Para n=100000

# Generar n=1000 puntos aleatorios para x
set.seed(2312)
n <- 100000
x<-runif(n, 0, 1)

# Generar n=1000 puntos aleatorios para Y
set.seed(456)
n <- 100000
y<-runif(n, 0, 1)

# grafiicar la nube de puntos forma 1
plot(x = x, y = y, main = "Grafica de Coordenadas Generadas")

x_c <- vector("numeric", length = 0)
y_c <- 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_c <- c(x_c, x[i])
    y_c <- c(y_c, y[i])
  }
}

data2=as.data.frame(cbind(x_c,y_c))


plot(x = x, y = y, col = 'gray', main = "Estimacion de π con n=10000")
points(x = x_c, y = y_c, col = 'yellow')
legend("topright", legend = c("Fuera", "Dentro"), col = c("gray", "yellow"), pch = 1)

Estimacion de π Para n=100000

print(sprintf("La cantidad de puntos que están dentro del círculo es de: %.2f", length(x_c)))
## [1] "La cantidad de puntos que están dentro del círculo es de: 78523.00"
pi_apro <- 4 * (length(x_c) / length(x))
print(sprintf("El valor aproximado de pi es de: %.5f", pi_apro))
## [1] "El valor aproximado de pi es de: 3.14092"

CONCLUSIONES

la simulación realizada demuestra de manera efectiva cómo el método de generación de puntos aleatorios dentro de un cuadrado y la determinación de cuántos de estos puntos caen dentro de un círculo inscrito puede usarse para aproximar el valor de π. A medida que aumenta el número de puntos utilizados en la simulación, la precisión de la estimación de π mejora.