simulaciones matlab_unexpo_blog_yoratzi_jesus

6
Simulaciones MatLab Los ejemplos siguientes trataran sobre cadenas de Markov de tipo Ergódica, estos tipos de cadenas converge a un estado de equilibrio y presentan propiedades para el rápido calculo de este estado de equilibrio. 1) Cadena de Markov ergódica no regular la cual no converge Código en Matlab: P = [ 0 1 ;1 0] t_all = []; i_all = []; figure(1) clf for i = 1:100 t = P^i t_all = [t_all t(:)]; i_all = [i_all ones(4,1)*i]; subplot(211) char(t,i) subplot(212) plot(i_all',t_all','.-') xlabel('discrete time steps') ylabel('probability') title('evolution of transition probs. for each element')

Upload: yoratzi-gonzalez

Post on 05-Aug-2015

124 views

Category:

Documents


0 download

DESCRIPTION

Codigo en matlab para simular cadenas de markov.

TRANSCRIPT

Page 1: Simulaciones Matlab_unexpo_blog_yoratzi_jesus

Simulaciones MatLab

Los ejemplos siguientes trataran sobre cadenas de Markov de tipo Ergódica, estos tipos de cadenas converge a un estado de equilibrio y presentan propiedades para el rápido calculo de este estado de equilibrio.

1) Cadena de Markov ergódica no regular la cual no converge

Código en Matlab:

P = [ 0 1 ;1 0]

t_all = [];

i_all = [];

figure(1)

clf

for i = 1:100

t = P^i

t_all = [t_all t(:)];

i_all = [i_all ones(4,1)*i];

subplot(211)

char(t,i)

subplot(212)

plot(i_all',t_all','.-')

xlabel('discrete time steps')

ylabel('probability')

title('evolution of transition probs. for each element')

pause

end

Page 2: Simulaciones Matlab_unexpo_blog_yoratzi_jesus

2) Cadena de Markov ergódica, con cero elementos en su matriz de transición inicial, pero no siempre por lo cual sigue siendo regular

P = [ 1/2 1/2 ;1 0]

t_all = [];i_all = [];figure(1)clffor i = 1:100 t = P^i t_all = [t_all t(:)]; i_all = [i_all ones(4,1)*i]; subplot(211) char(t,i) subplot(212) plot(i_all',t_all','.-') xlabel('discrete time steps') ylabel('probability') title('evolution of transition probs. for each element') pauseend

Page 3: Simulaciones Matlab_unexpo_blog_yoratzi_jesus

3) Entrenamiento de Ninjas al estilo Markov

Entrenamiento: Nivel 1: Aprende a leer a tu oponente

Los ninjas del clan Rhozan acaban de enterarse de la súbita reaparición de un Viejo enemigo del clan, los ninjas del clan Zentsu

Los ninjas del clan Rhozan deben entrenar para pelear!

Una habilidad critica es conocer a tu oponente, conocer sus tendencias y aprender sus patrones! El viejo maestro ninja, es el ultimo del clan Rhozan que ha luchado con los ninjas del clan Zentsu y el describe a sus discípulos los diferentes estilos de combate cuerpo a cuerpo del clan enemigo en términos de un proceso de cadenas de Markov

En la primera lección, el maestro describe un estilo de lucha de 3 posiciones, compuesto de

1) Golpe (línea roja)2) Patada (Línea amarilla) 3) Golpe del halcón volador( Línea azul)

A continuación apreciaremos como los ninjas del clan Zentsu pelearan, dadas las probabilidades de como mezclan sus diferentes ataques: golpe, patada y ataque especial:

% Ninja A, Estilo Honda (Especializado en Golpear)

a= .9b = .3c = .2P = [ a (1-a)/2 (1-a)/2; (1-b)/2 b (1-b)/2; (1-c)/2 (1-c)/2 c ;]

% Ninja B, Estilo Chun Li (Especializado en Patadas)

a= .1b = .9c = .3P = [ a (1-a)/2 (1-a)/2; (1-b)/2 b (1-b)/2; (1-c)/2 (1-c)/2 c ;]

%Ninja C, Estilo Capitán Falcon (Especializado en Ataque especial)

a= .1b = .2c = .9P = [ a (1-a)/2 (1-a)/2; (1-b)/2 b (1-b)/2; (1-c)/2 (1-c)/2 c ;]

% Maestro clan Zentsu: Estilo Supremo (Equilibrio con cada ataque)

Page 4: Simulaciones Matlab_unexpo_blog_yoratzi_jesus

a = .33333b = .333333c = .333333P = [ a (1-a)/2 (1-a)/2; (1-b)/2 b (1-b)/2; (1-c)/2 (1-c)/2 c ;]

Código en Matlab para cada ninja

Usaremos la misma base de código pero ajustando los valores para cada uno de los 4 escenarios:

t_all = [];

i_all = [];

figure(1)

clf

for i = 1:100

t = P^i

t_all = [t_all t(:)];

i_all = [i_all ones(size(t_all,1),1)*i];

subplot(211)

char(t(:),i)

subplot(212)

plot(i_all',t_all','.-')

xlabel('pasos de tiempo discreto)

ylabel('probabilidad')

title('evolución de las probabilidades de transición para cada elemento')

axis([0 max(max(i_all)) min(min(t_all))-.5 max(max(t_all))+.5])

pauseend