Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Código: 19962179A.
Problema: Dé un algoritmo para generar una variable aleatoria con densidad
f (x)
15
c=
8
Re
ch
ac
e
Acepte
En nuestro problema, como Df = [0, 1], consideramos g como una función de densidad
uniforme en [0, 1], es decir
g(x) = 1 , 0 ≤ x ≤ 1 .
f (x)
Para determinar nuestra constante c tal que ≤ c utilizamos el cálculo para determinar el
g(x)
f (x)
máximo de = 30(x2 − 2x3 + x4 ) al derivar esta cantidad se obtiene
g(x)
∂ f (x)
= 30(2x − 6x2 + 4x3 )
∂x g(x)
1
al igualar esto a cero, se tiene que el valor máximo es alcanzado cuando x = y entonces
2
2 3 4 !
f (x) 1 1 1 15
≤ 30 −2 + = =c
g(x) 2 2 2 8
por lo tanto
f (x)
= 16(x2 − 2x3 + x4 )
cg(x)
1
y ası́, nuestro algoritmo de rechazo es el siguiente:
La eficiencia de este algoritmo se encuentra en, que tantas variables serán rechazadas en el
paso 2, esto podemos aproximar con el valor de c, es decir, el número promedio de veces que
15
se realizará el paso 2 es c = ≈ 1.875. Lo cual es una buena eficiencia en el algoritmo.
8
Escrito este algoritmo en código MATLAB tenemos:
2000
1800
1600
1400
1200
1000
800
600
400
200
0
0 0.2 0.4 0.6 0.8 1
Figure 2: Distribución de la v.a. generada con 10000 valores, para generar esta v.a. se realizaron
18756 iteraciones.