%ejemplo para hacer una cadena de markov que represente una distribucion de probabilidades %con una sola variable %pasos de mi cadena de Markov npasos=150000; aceptados = 0; %los distintos samplings, que primero los pongo en cero. x=zeros(1,npasos); xr=-5:.05:5; x(1)=0.5; %primer paso de mi cadena de Markov. %propongo un cambio for i=1:npasos-1; x_nuevo = 10*(rand()-0.5); a = min(1,exp(-x_nuevo^2/2)/exp(-x(i)^2/2)); %notar que nunca haria un cociente asi de exps, sino poner el argumento if(rand() < a) % acepto con probalidad a x(i+1) = x_nuevo; aceptados = aceptados + 1; else x(i+1) = x(i); end end disp([' = ' num2str(mean(x)) ' std(x) = ' num2str(std(x))]);