Está en la página 1de 8

Algunos ejemplos de simulacin de procesos aleatorios usando Octave/Matlab

Guia 5 Ao 2016 cuatrimestre 1

5.2

% 5.2 Generar 100 valores de una variable aleatoria exponencial


L=2; x=-(1/L)*log(1-rand(100,1)); mean(x), std(x)
ans = 0.48795
ans = 0.52487

5.3

% 5.3 Generar 10 valores de una variable aleatoria continua


x=2*sqrt(rand(10,1));mean(x),std(x)
ans = 1.4321
ans = 0.45204
mu=4/3, sigma=sqrt(2)/3

mu = 1.3333
sigma = 0.47140

x=2*sqrt(rand(1000,1));mean(x),std(x)
ans = 1.3260
ans = 0.48634
5.4

% 5.4 Generar 1000 valores de una variable aleatoria exponencial


L=10; x=-(1/L)*log(1-rand(1000,1)); media=mean(x)
media = 0.099653
hist(x)

5.5

% 5.5 Minimo y otros de 5 variables aleatorias uniformes en (0,1)

X=rand(5,100);m=min(X);media=mean(m),hist(m)
media = 0.14803
M=max(X);media=mean(M),hist(M)
media = 0.82986
mediana=median(X);media=mean(mediana),hist(mediana)
media = 0.48157
S=sort(X);SM = S(end-1,:);media=mean(SM),hist(SM)
media = 0.64599
5.6

% 5.6 Completar la escalera o jugar al 6

D = 1+floor(6*rand(1,1000));
mean(D==4) % estima la probabilidad de sacar 4
ans = 0.18500 % el valor terico es 1/6

D = 1+floor(6*rand(3,1000));
DD=(D==6); S = sum(DD) ;SEIS=(S==2)|(S==3);
mean(SEIS) % estima la probabilidad de sacar dos o tres 6
ans = 0.074000 % el valor terico es 2/27

Conviene jugar a completar la escalera.

5.7

% 5.7 Generar puntos al azar en el cuadrado [-1, 1] x [-1, 1]


R =-1+2*rand(2,1000);X=R(1,:);Y=R(2,:);
D=(X.^2+Y.^2<1);
plot(X,Y,'bo',X(D),Y(D),'rx')
mean(D)
ans = 0.79400
5.8

% 5.8 Generar arribos al semaforo


E = 40; N = 1000; C = [];
for k = 1:1000
T = 0; r = 0;
while T < E
T = T + (-5)*log(1-rand);
r = r + 1;
end
C = [C r];
end

subplot(2,1,1), plot(C,'o')
xlabel('simulacion nro:')
ylabel('cantidad de autos en la cola')
[a b]=hist(C,min(C):max(C));
subplot(2,1,2),stem(b,a/N) % estima la funcin de probab. de la longitud de la cola
xlabel('longitud de la cola')
ylabel('probabilidad')
mean(C)
Un jugador lanza una moneda y gana 1$ si sale cara o pierde 1$ si sale ceca. El capital inicial del
jugador es 50$. Simular 50 juegos y representar grficamente la evolucin de capital del jugador.

s=rand(50,1);
v=(s<0.5)-(s>0.5);
subplot(2,1,1),plot(v,'o');
xlabel('nro de jugada');ylabel('ganancia')
subplot(2,1,2),plot(50+cumsum(v))
xlabel('nro de jugada')
ylabel('capital')
title('jugando a la moneda con capital inicial 50')

Simular un proceso de Poisson con parmetro = 0.1 y representar grficamente el proceso de conteo
y las ocurrencias en una recta.

s=rand(50,1);
L=0.1;
x=(-1/L)*log(1-s);
subplot(2,1,1);plot(cumsum(x(1:20)),ones(size(x(1:20))),'x')
xlabel('tiempo')
title('ocurrencias en un proceso de Poisson')
subplot(2,1,2)
stairs(cumsum(x(1:20)),cumsum(ones(20,1)))
hold on
plot(cumsum(x(1:20)),ones(20,1),'x')
hold off
xlabel('tiempo')
title('conteo de ocurrencias en un proceso de Poisson')
Simular un proceso de Bernouilli con parmetro p = 0.4 y representar grficamente el proceso de
conteo y las ocurrencias en una recta.

b=rand(100,1);p=0.4;
z=(b<p);
subplot(2,1,1);plot(z,'x')
xlabel('tiempo')
title('ocurrencias en un proceso de Bernouilli')
subplot(2,1,2)
stairs(cumsum(z))
xlabel('tiempo')
title('conteo de ocurrencias en un proceso de Bernouilli')
Hagan sus apuestas
Tomado de El hombre anumrico, J.A. Paulos , Metatemas 20 Edit.Tusquets, Barcelona, 1990

En el chuck-a-luck se intenta atraer a la gente de una manera muy persuasiva. El que apuesta
elige un nmero del 1 al 6 y el encargado lanza tres dados. Si el nmero elegido sale en los tres dados,
el jugador cobra 3 dlares; si sale en dos de los dados, cobra 2 dlares y si sale en uno de los tres
dados, slo cobra 1 dlar. Unicamente en el caso de que el nmero escogido no salga en ninguno de los
dados tendr que pagar el jugador, y slo 1 dlar. Con tres dados distintos, el apostador tiene tres
posibilidades a su favor; adems, a veces gana ms de 1 dlar, que es lo mximo que puede perder
cada vez.

Calcular el valor esperado de la ganancia del jugador. Interpretar el resultado.

N = 1000;
V=1:6;P=ones(1,6)/6;
for k=1:N
cuatro=discrete_rnd(4,V,P);
tres=cuatro(2:4)-cuatro(1);
n=nnz(tres);
s(k)=3*(n==0)+2*(n==1)+(n==2)-(n==3);
end
mean(s)

Esperando el colectivo
Un pasajero llega en un instante al azar a una parada de omnibus. Estos pasan en promedio cada T
minutos. Por inconvenientes en el trfico, se supone que cada omnibus puede adelantarse o retrasarse
siendo el instante de atraso una variable aleatoria normal de media 0 y dispersin T/6. Cul es el
tiempo medio de espera?

Sugerencia: Elija un valor para T (!!). Tome una terna de nmeros al azar (x0, x1, x2). El primero con distribucin uniforme en el intervalo
[0,T). Los nmeros x1 y x2 son valores de una variable aleatoria normal de media 0 y dispersin T/6. Convengamos que x1 indica el instante en
que pase el omnibus 1, que el omnibus 2 llega en el instante T + x2 y que x0 indica el instante en que llega el pasajero a la parada.

La diferencia x1 - x0 si x1 > x0, o la diferencia T + x2 - x0 si x0 > x1 es el tiempo de espera en cada caso. Repita el experimento 100 veces y
determine el tiempo medio de espera.

T=20;
sigma=T/6; N=200;
for k=1:N
x0=T*rand();
x12=sigma*randn(1,2);
d1=x12(1)-x0;d2=T+x12(2)-x0;
tespera(k)=d1*(d1>=0)+d2*(d1<0);
end
mean(tespera)
Manufactura en etapas
La manufactura de cierta pieza consta de 3 operaciones bsicas. El tiempo que se requiere en la
primera operacin es exactamente 10 minutos; el que corresponde para dar por terminada la segunda
etapa es una variable aleatoria con distribucin exponencial de media 12 minutos por pieza y
finalmente el tiempo que insume la terminacin de la tercera etapa se distribuye uniformemente entre
12 y 15 minutos. Simular el proceso de terminacin de la pieza y estimar el valor esperado y la
dispersin del tiempo de produccin por pieza.

Sugerencia: Simular el tiempo insumido en las 3 operaciones bsicas para la terminacin de 1000 piezas. Luego hacer un histograma y el
polgono de frecuencias relativas para el tiempo de produccin por pieza y a partir de esa tabla de frecuencias calcular la media y el desvo
estndar con los cuales se estiman los parmetros pedidos.

N=1000;
lambda=1/12;a=12;b=15;
t1=10;
for k=1:N
t(k)=t1+(-1/lambda)*log(1-rand)+(a+(b-a)*rand);
end
mean(t)
std(t)
figure(1);,hist(t,11)
[a,b]=hist(t,11);
D=b(2)-b(1);
f=[0 a 0]/(D*sum(a));
m=[b(1)-D b b(end)+D];
figure(2);plot(m,f)

También podría gustarte