Está en la página 1de 3

1era Dirigida CC 562A

(Modelamiento y Simulacin)
1. [Mtodo Transformada Inversa] Generar un valor de la variable aleatoria X con funcin de
densidad

f ( x )=
{e 2 x < x <0
e2 x 0< x <
Solucin.-
La funcin de Distribucin es dado por
e2 x e2 x
F ( x )=
2 (
I ( ,0 ) ( x ) + 1
2 )
I ( 0, ) ( x )
Que al aplicar el mtodo de la transformada inversa se tiene

1 1
x= log ( 2u ) I (0,0.5 ) ( u ) log ( 2(1u) ) I ( 0.5,1) ( u )
2 2

MATLAB:
function x=Preg_1(n)
% n: Nmero de valores generados
%
x=zeros(1,n);
for i=1:n
u=rand;
if u<=0.5
x(1,i)=0.5*log(2*u);
else
x(1,i)=-0.5*log((2*(1-u)));
end
end

2. [Mtodo Aceptacin Rechazo] Generar un valor de la variable aleatoria X Ga ( 32 , 1)


Cuya funcin de densidad es
3
( 1 ) 2 32 1 1x
f ( x )= x e x> 0
3
()
2
Solucin.-
3
Como esta variable aleatoria tiene dominio positivo con media , se propone utilizar la
2

distribucin Y exp ( 23 ) con la misma media. Es decir,

2
2 x
g ( y )= e 3
y >0
3
De donde
f ( x ) 3 12 x
= x e3
g ( x)
3
Al derivar e igualar a cero se obtiene el mximo de este cociente (para x= ) Por lo
2
tanto
3
32
c= 1
( 2 e ) 2
Luego
1 1 x
f (x) 2e
cg ( x )
=( )
3
2
x2 e 3

[Algoritmo]

PASO 1.- Generar u1 U ( 0, 1 ) luego Y = ( 32 ) log (u )


1

PASO 2.- Generar u2 U ( 0, 1 )


1 Y
2 ey
PASO 3.- Si u2
( )e
3
2 3
Calcular X=Y. Caso contrario, regresar al PASO 1.-

El promedio de iteraciones necesarias es


3 12
c=3 ( )
2 e
1.257
MATLAB:
y=-(3/2)*log(rand());
u=rand();c=1;
while (u>(((2*exp(1)*y/3)^(1/2))*(exp(1)^(-y/3))));
y=-(3/2)*log(rand());
u=rand();c=c+1;
end
x=y;

Para el caso de n valores a simular

function [x c]=A_R(n)
% n: valores a generar

c=ones(1,n); x=zeros(1,n);
for j=1:n
y=-(3/2)*log(rand());% PASO 1.-
u2=rand(); % PASO 2.-
caux=1;
while (u2>(((2*exp(1)*y/3)^(1/2))*(exp(1)^(-y/3))))
y=-(3/2)*log(rand());% PASO 1.-
u2=rand(); % PASO 2.-
caux=caux+1;
end
c(1,j)=caux;
x(1,j)=y;
end

>> [xx cc]=A_R(1000);


>> mean(cc)

ans =

1.2320

3. [Generacin de X N ( 0,1 ) mediante el Mtodo Polar] Sean X N ( 0,1 ) e


Y N ( 0, 1 ) independientes, y sean R y las coordenadas polares del vector
( X , Y ) . Es decir,
2 2 2
R = X +Y
Y
De donde tag=
X
Como X e Y son independientes, la densidad conjunta es el producto de sus densidades
individuales
2 2
x y
1 2 1 2
f ( x , y )= e e

2 2
2 2
( x + y )
1 2
e
2
2
Para obtener la densidad conjunta de R2 y , llamada de f ( r , ) , se utiliza la
siguiente relacin
1
Y =( R 2 ) 2 Sen ( )
1
2 2
X =( R ) cos ( )
La densidad conjunta deseada seria entonces,

[ ]
dx dy
2
2 2 2
J= d r d r2 = 1
f ( r , ) =f ( x ( r , ) , y ( r , ) )|J|
dx dy 2
d d

22
( r )
2 1 1 0<r 2 < 0<< 2
f (r , )= e 2
2 2
Si se observa esta densidad conjunta, corresponde al producto de una densidad Uniforme

U ( 0,2 ) y densidad exponencial R2 exp ( 12 )


A partir de este resultado, lo que se hace despejar X e Y en funcin de R2 y ,
dando lugar al mtodo polar (Box-Muller)

[Algoritmo]
PASO 1.- Generar u1 U ( 0, 1 ) y u2 U ( 0, 1 )
2
PASO 2.- R =2 log ( u1 ) y =2 u2
PASO 3.-
1
Y =( R ) Sen ( )= 2 log ( u1 ) Sen ( 2 u2 )
2 2

1
X =( R2 ) 2 cos ( )=2 log ( u 1) cos ( 2 u2 )

MATLAB
u1=rand(1,1000); u2=rand(1,1000);
x=(sqrt(-2*log(u1))).*cos(2*pi*u2);
y=(sqrt(-2*log(u1))).*sin(2*pi*u2);
xy=[x y];
hist(xy)

El Profesor
LANH

También podría gustarte