1. Introducción

El número PI es una constante matemática fundamental que representa la razón entre la circunferencia y el diámetro de un círculo. Su valor exacto es irracional, lo que significa que no puede expresarse como una fracción de dos números enteros.

En esta solución, abordamos el problema de estimar el valor de PI mediante una simulación de puntos aleatorios que se encuentan dentro de un cuadrado de lado l con un círculo de diámetro l circunscrito dentro de sí, calculando la proporción de puntos que también se hallan dentro del área del círuclo circunscrito.

2. Métodos

  1. Definición de un vector para valores de n: Este vector contiene los diferentes tamaños de muestra que se van a evaluar en la simulación.
  2. Creación del vector para almacenar resultados: Este vector se utiliza para almacenar las estimaciones de PI para cada valor de n.
  3. Función para estimar PI: La función estimar_pi genera coordenadas aleatorias para x e y, calcula la distancia al centro del círculo, cuenta los puntos dentro del círculo y finalmente calcula la estimación de PI.
  4. Simulación mediante ciclo for: El ciclo for itera sobre los valores de n. Dentro del ciclo, se ejecuta la función estimar_pi para cada valor de n y la estimación de PI se guarda en el vector resultados.

3. Desarrollo

options(scipen=999) #usamos esta sentencia para evitar la notación científica en la gráfica  final

# se crea un vector que contiene los diferentes taños de muestra que se van a iterar
n <- c(10, 100, 1000, 10000, 100000, 200000, 300000, 500000, 1000000)

# Se crea un vector para almacenar resultados

resultados <- vector("double", length(n))

# Código de función para estimar PI

estimar_pi <- function(n) {
  # Generación de coordenadas aleatorias
  x <- runif(n, 0, 1)
  y <- runif(n, 0, 1)
    
  # Cálculo de la distancia de cada punto aleatorio al centro del círculo
  distancia <- sqrt((x - 0.5)^2 + (y - 0.5)^2)
    
  # Conteo de puntos que quedan dentro del círculo
  dentro_circulo <- length(which(distancia < 0.5))
    
  # Estimación de PI
  estimacion_pi <- 4 * dentro_circulo / n
    
  # Se retorna el valor de la estimación de PI
    return(estimacion_pi)
  }

# Simulación utilizando el ciclo for

for (i in 1:length(n)) {
  # Simular la estimación de PI para cada valor de n
  resultados[i] <- estimar_pi(n[i])
}

4. Resultados

Se imprime una tabla con los valores de n y las estimaciones de PI para mostrar los resultados.

  cat("n", "\t", "Estimación de PI", "\n")
## n     Estimación de PI
for (i in 1:length(n)) {
  cat(n[i], "\t", resultados[i], "\n")
}
## 10    2.4 
## 100   3.16 
## 1000      3.132 
## 10000     3.15 
## 100000    3.14256 
## 200000    3.13862 
## 300000    3.13772 
## 500000    3.141216 
## 1000000   3.137628

5. Grafica de resultados:

Se crea un gráfico que muestra la relación entre n y la estimación de PI.

plot(n, resultados, main = "Estimación de PI para diferentes valores de n",
    xlab = "n", ylab = "Estimación de PI")

6. Interpretación de los resultados:

La tabla y el gráfico proporcionan una visualización de cómo la estimación de π varía con el tamaño de la muestra. Se observa que a medida que aumenta el tamaño de la muestra, las estimaciones de π tienden a acercarse al valor real de π, que es aproximadamente 3.14159.

Se nota que la convergencia a π es más rápida al principio, cuando el tamaño de la muestra es pequeño, y se vuelve más lenta a medida que aumenta el tamaño de la muestra. Esto es coherente con la noción de que, en promedio, la precisión de la estimación debería mejorar a medida que se aumenta el tamaño de la muestra, pero la mejora se vuelve marginal a medida que la muestra se vuelve más grande.

El desarrollo proporciona una implementación efectiva para estimar π mediante simulación y los resultados muestran cómo esta estimación se acerca al valor real a medida que aumenta el tamaño de la muestra