1.

Considere el generador de potencia \[ x_{n+1}=x_{n}^{d} \bmod N, \quad x_{n+1}<N \] donde \(N\) y \(d\) son los parámetros del generador. Asumiendo \(N=10000000\), \(d=2\) y una semilla \(x_{0}=7\),

G = function(x0, n, N=10000000, d=2){
  x = numeric(0)
  for(i in 1:n){
    x[i] = ifelse(i==1, x0^d%%N, x[i-1]^d%%N)
  }
  x = x[x!=0]
  list("R" = x/N, "x" = x)
}

# Se generan 1000 numeros aleatorios con semilla 7
x = G(x0 = 7, n = 1000); x

Bondad de ajuste

Se realizan pruebas para diferentes valores de semilla, en seguida los resultados:

De ahora en adelante se probarán las pruebas sobre los números pseudo-aleatorios con semilla \(x_0=7\).

Se realiza la prueba de bondad de ajuste:

En seguida el valor p de la prueba \(\chi^2\):

## [1] 1

Como el p-valor es mayor a 0.05, no hay suficiente evidencia estadística para rechazar que las muestras provienen de una distribución uniforme. En otras palabras, los números son aleatorios.

## 
##  One-sample Kolmogorov-Smirnov test
## 
## data:  x
## D = 0.03224, p-value = 0.2497
## alternative hypothesis: two-sided

Dado que el p-valor no es inferior al 5% (0.05), entonces no se rechaza la hipoteisis de que la secuencia de numeros aleatorios sea uniforme. Es decir, nuestros numeros aleatorios son uniformes

Aleatoriedad

## 
##  Runs Test
## 
## data:  as.factor(x > median(x))
## Standard Normal = 1.139, p-value = 0.2547
## alternative hypothesis: two.sided

Dado que el p-valor es mayor al 5% entonces no rechazamos la hipotesis de aleatoriedad.

Test de pares de numeros pseudoaleatorios

## 
##  Pearson's Chi-squared test with simulated p-value (based on 2000
##  replicates)
## 
## data:  O
## X-squared = 3.4714, df = NA, p-value = 1

Como el p-valor del test de pares de números no es inferior al 5% no se rechaza la hipótesis de independencia.

2.

Empleando la secuencia de números pseudoaleatorios del punto anterior, resuelva las siguientes integrales

Cambio de variable: \(y = \frac{x}{\pi}\), \(dy = \frac{dx}{\pi}\).

Función a promediar: \(\pi\sin^2\left(\pi y\right)\)

## [1] 1.621441

El valor exacto es \(\pi/2 \approx 1.5708\)

Cambio de variable: \(y = \frac{x}{4}\), \(dy = \frac{dx}{4}\).

Función a promediar: \(4 \cdot 4y \sqrt{(4y)^{2}+9}\)

## [1] 31.57053

El valor exacto es \(98/3 \approx 32.667\)

Cambio de variable: \(y = \frac{1}{1+x}\), \(dy = -y^2dx\).

Función a promediar: \(\frac{1}{y^2\sqrt{exp\left(\frac{1}{y}-1\right)}}\).

## [1] 2.050598

El valor exacto es \(2\)

Primero se reescribe la integral: \(\int_{-\infty}^{\infty} \frac{1}{e^{x}-e^{-x}} dx = \int_{-\infty}^{0} \frac{1}{e^{x}-e^{-x}} d x + \int_{0}^{\infty} \frac{1}{e^{x}-e^{-x}} d x\)

Para el primer término se cambia \(x\) por \(-z\), entonces \(dx = -dz\) y por tanto la integral toma la forma: \(\int_{-\infty}^{\infty} \frac{1}{e^{x}-e^{-x}} dz = -\int_{0}^{\infty} \frac{1}{e^{z}-e^{-z}} d z + \int_{0}^{\infty} \frac{1}{e^{x}-e^{-x}} d x = 0\)

Cambio de variable: \(y = \frac{1}{1+x}\), \(dy = -y^2dx\).

Función a promediar: \(\frac{1}{y^2\left[exp\left(\frac{1}{y}-1\right)-exp\left(1-\frac{1}{y}\right)\right]}\)

Lo mismo para el otro término de la integral

Utilizando una semilla \(x_0=7\) se tiene que el valor de la integral derecha es:

## [1] 4.381672

Mientras que si se utiliza \(x_0=11\) se obtiene:

## [1] 2.752596

Se intentó calcular con otras semillas y el resultado siempre fue diferente. En otras palabras, la integral no converge. Analíticamente esto se debe a la indeterminación de la integral cuando \(x\) tiende a cero por derecha.

\(\int_{0}^{\infty} \frac{1}{e^{x}-e^{-x}} d x = \int_{0}^{\infty} \frac{csch(x)}{2} = \frac{1}{2}log(tanh(x/2))\vert_0^\infty = -\infty\)

A pesar que ambas integrales (la izquierda y la derecha) son iguales, no podemos decir que su valor es cero, porque cada una es indeterminada. Y precisamente se observa de manera numérica, esto explica porque con cada semilla su valor es diferente (no converge).

3.

Se lanza un dado normal y luego se lanza tantas veces como haya mostrado el primer lanzamiento. Defina la variable aleatoria \(X\) que suma las caras superiores de todos los dados lanzados y la variable aleatoria \(Y\) que cuenta el número total de lanzamientos. Crear una función \(R\) que genere este juego 1000 veces, guarde los resultados de \(X\) y \(Y\), y genere el promedio de los valores de \(X\) y \(Y\). Solo escriba el resultado de los promedios de \(X\) y \(Y\) y deje en el archivo .R el código.

Solución

Primero nos aseguramos que el dado sea honesto, es decir, que nuestro generador de números aleatorios pertenezca a una distribución uniforme discreta entre 1 y 6.

Ahora vamos a realizar los 1000 juegos y revisar los promedios:

## [1] "X promedio igual a 12.169"
## [1] "Y promedio igual a 3.515"