Este apendice trata de explicar cómo obtener un generador de números aleatorios que responda a una distribución conocida a partir de una uniforme.
Casi todos los ordenadores y lenguajes de programación, poseen un generador intrínseco de números pseudo-aleatorios uniformes en el intervalo 0, 1. Quisiéramos pues, aprovechar este generador para obtener números aleatorios que sigan otra distribución.
Sea
la densidad de probabilidad que queremos generar y
su
función de distribucion, definida como:
Se puede demostrar que la variable aleatoria
definida como:
Para obtener un número aleatorio que siga nuestra distribución,
llamaremos al generador de nuestro ordenador que nos proporcionará un número
r. Calcularemos
, y ya tenemos el número que buscamos.
Supongamos que queremos un generador con
.
Queremos ahora generar números aleatorios distribuidos según una gaussiana
de media 0 y sigma 1. Podríamos intentar aplicar el método anterior, pero
fracasaríamos ya que la gaussiana no es integrable analíticamente y por
lo tanto no podríamos obtener una fórmula para
. Sin embargo existen
otras técnicas que no explicaremos en detalle.
Damos a continuación un método práctico para obtenerlos:
El siguiente algoritmo es una mejora a este método:
Esta variación elimina el seno y el coseno a expensas de un rechazo del
en el paso 3.