Vous êtes sur la page 1sur 4

Tarea 1

Daniela Lazo Toledo



1. Generacin de nmeros pseudoaleatorios y variables aleatorias.

1.1. Generacin de nmeros pseudoaleatorios

Para generar nmeros aleatorios con distribucin uniforme se utiliz el algoritmo
recursivo de congruencia lineal, cuyos parmetros corresponden a:

: semilla;

;
: multiplicador ;
: incremento ;
: mdulo; ;

Este algoritmo genera una secuencia de nmeros diferentes de la siguiente
forma:

)

Los valores de

al transformarse en

tienen valores entre 0 y 1.




1.2. Mtodo de la transformada inversa
Si se desea simular una variable aleatoria continua se puede utilizar el mtodo de la
transformada inversa, mediante la funcin acumulada () de la distribucin y la
generacin de nmeros pseudoaleatorios con distribucin uniforme (0,1).
Este mtodo consta de los siguientes pasos:
Calcular la funcin acumulada () a partir de la funcin de densidad ().
Despejar la variable aleatoria x, obtenindose la funcin acumulada inversa

()
Evaluar con nmeros pseudoaleatorios () la funcin

(). De esta
forma, los valores obtenidos permiten simular la variable aleatoria.

1.3.Generacin de nmeros pseudoaleatorios con distribucin uniforme (0,1)
Para generar nmeros pseudoaleatorios con distribucin uniforme (a,b) (a=0, b=1) se
aplic el algortimo de congruencia lineal y se incluye el mtodo de la transformada
inversa. Este algoritmo fue programado en lenguaje Java, a continuacin se muestra
el cdigo de ste.

public static void main(String[] args) {

//parmetros generador congruencial lineal

double X0=1;//semilla
Tarea 1


Daniela Lazo Toledo

double X; // nmero pseudoaleatorio
double A=5;//multiplicador
double B=7;//incremento
double C=100000;//modulo
double r; // nmero pseudoaletorio (0,1)


//parmetros distribucin uniforme

double a=0;//limite superior
double b=1;// limite inferior
double unif;// nmero aleatorio distribucin uniforme
double n=20;// cantidad de nmeros generados

X=X0;

for (int i = 0; i < n; i++)
{
X= ((A*X+B)%C); //nmero pseudoaleatorio
r=X/(C-1); // nmero pseudoaleatorio (0,1)

unif= r*(b-a)+a;
System.out.println(unif);


}





}

}
1.4.Generacin de una variable aleatoria con distribucin exponencial de
parmetro a
Para generar nmeros pseudoaleatorios con distribucin exponencial de parmetro a
(a>0) se aplic el algortimo de congruencia lineal y el mtodo de la transformada
inversa.
La funcin inversa obtenida a partir de la funcin acumulada ()


corresponde a
()

, donde r es un nmero pseudoaleatorio (0,1).


Este algoritmo fue programado en lenguaje Java, a continuacin se muestra el
cdigo de ste.

public class Vexponencial {
public static void main(String[] args) {

//parmetros generador congruencial lineal

double X0=1;//semilla
double X; // nmero pseudoaleatorio
double A=5;//multiplicador
Tarea 1


Daniela Lazo Toledo

double B=7;//incremento
double C=100000;//modulo
double r; // nmero pseudoaletorio (0,1)


//parmetros distribucin exponencial

double a=1;//tasa
double exp;// nmero aleatorio distribucin exponencial
double n=20;// cantidad de nmeros generados

X=X0;

for (int i = 0; i < n; i++)
{
X= ((A*X+B)%C); //nmero pseudoaleatorio
r=X/(C-1); // nmero pseudoaleatorio (0,1)

exp=(-Math.log(r))/a;
System.out.println(exp);


}
}

}

Vous aimerez peut-être aussi