.
.
.
# Generar n=1000 puntos aleatorios para x
set.seed(2312)
n <- 1000
x<-runif(n, 0, 1)
# 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")
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)
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"
# 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"
# 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"
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.