La siguiente figura sugiere como estimar el valor de pi con una simulación. En la figura, un círcuito con un área igual a \(\pi\)/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 éste, la cual es \(\pi\)/4. Por tanto, se puede estimar el valor de \(\pi\)/4 al contar el número de puntos dentro del círculo, para obtener la estimación de \(\pi\)/4. De este último resultado se encontrar una aproximación para el valor de \(\pi\).

Paso 1: Generar \(n\) coordenadas \(x: X1, . . . , Xn\).. Se utiliza la distribución uniforme con valor mínimo de 0 y valor máximo de 1. La distribución uniforme genera variables aleatorias que tienen la misma probabilidad de venir de cualquier parte del intervalo (0,1).

# Número de coordenadas a generar:
n <- 10000

# Generando las coordenadas X
x <- runif(n, min = 0, max = 1)

Paso 2: Generar 1000 coordenadas \(y: Y1,...,Yn\), utilizando nuevamente la distribución uniforme con valor mínimo de 0 y valor máximo de 1.

# Generando las coordenadas Y
y <- runif(n, min = 0, max = 1)

Paso 3: Cada punto \((Xi,Yi)\) se encuentra dentro del círculo si su distancia desde el centro \((0.5,0.5)\) es menor a 0.5. Para cada par \((Xi,Yi)\). Se determina si la distancia desde el centro es menor a 0.5. Esto último se puede realizar al calcular el valor \((Xi−0.5)^2+(Yi−0.5)^2\), que es el cuadrado de la distancia, y al determinar si es menor que 0.25.

# Calcular distancias al centro del cuadrado (0.5, 0.5)
distancias <- (x - 0.5)^2 + (y - 0.5)^2

# Contar puntos dentro del círculo (distancia al cuadrado <= 0.25)
dentro_circulo <- sum(distancias <= 0.25)

# Estimar pi
pi_estimado <- 4 * dentro_circulo / n

cat("Estimación de pi con 10.000 coordenadas:", pi_estimado)
## Estimación de pi con 10.000 coordenadas: 3.1468

Finalmente, se realiza el mismo ejercicio con generando 1.000, 10.000, 100.000 y 1.000.000 de coordenadas y calculando el error porcentual respecto al valor real de pi con el fin de evidendeciar que entre más coordenadas se utilicen, mejor es la estimación:

## Valor real de pi: 3.141593
## Estimación de pi con 1.000 coordenadas: 3.128 | Error porcentual respecto a pi real: 0.43267 %
## Estimación de pi con 10.000 coordenadas: 3.1392 | Error porcentual respecto a pi real: 0.07616 %
## Estimación de pi con 100.000 coordenadas: 3.14472 | Error porcentual respecto a pi real: 0.09955 %
## Estimación de pi con 1.000.000 de coordenadas: 3.141016 | Error porcentual respecto a pi real: 0.01836 %