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 π.
A. Genere n coordenadas x:X1 , . . . , Xn. Utilice 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).
B. Genere 1000 coordenadas y:Y1,…,Yn, utilizando nuevamente la distribución uniforme con valor mínimo de 0 y valor máximo de 1.
## Generación de muestras n=1000
n <- 1000
x <- runif(n, min = 0, max = 1)
y <- runif(n, min = 0, max = 1)
C. 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)determine 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.
## Determinar si cada punto (Xi,Yi)se encuentra dentro del círculo
dentro_del_circulo <- (x-0.5)^2+(y-0.5)^2 <0.25
## Contar los puntos dentro del circulo
puntos_dentro_del_circulo <- sum(dentro_del_circulo)
## Estimación de π
π <- 4* (puntos_dentro_del_circulo / n)
Resultados
El valor estimado de π y los puntos dentro del circulo corresponden a un n=1000
## Imprimir resultados
print(π)
## [1] 3.12
print(puntos_dentro_del_circulo)
## [1] 780
Estimación de π y puntos dentro del circulo para un n = 10000
## Generación de muestras n=10000
n <- 10000
x <- runif(n, min = 0, max = 1)
y <- runif(n, min = 0, max = 1)
## Determinar si cada punto (Xi,Yi)se encuentra dentro del círculo
dentro_del_circulo <- (x-0.5)^2+(y-0.5)^2 <0.25
## Contar los puntos dentro del circulo
puntos_dentro_del_circulo <- sum(dentro_del_circulo)
## Estimación de π
π <- 4* (puntos_dentro_del_circulo / n)
## Imprimir resultados
print(π)
## [1] 3.1488
print(puntos_dentro_del_circulo)
## [1] 7872
Estimación de π y puntos dentro del circulo para un n = 100000
## Generación de muestras n=100000
n <- 100000
x <- runif(n, min = 0, max = 1)
y <- runif(n, min = 0, max = 1)
## Determinar si cada punto (Xi,Yi)se encuentra dentro del círculo
dentro_del_circulo <- (x-0.5)^2+(y-0.5)^2 <0.25
## Contar los puntos dentro del circulo
puntos_dentro_del_circulo <- sum(dentro_del_circulo)
## Estimación de π
π <- 4* (puntos_dentro_del_circulo / n)
## Imprimir resultados
print(π)
## [1] 3.1444
print(puntos_dentro_del_circulo)
## [1] 78610
A medida que se incrementa la cantidad de muestras (n), el valor del estimador (π) se acerca al valor delparámetro. Esto demuestra que el estimador es consistente.