clear; // close all; seed = 19; // semente para gerador de # aleatorios N = 100.; // # de particula total r_max = 3; // # max de realizacoes t_max = 300; // # tempo maximo clf(); rand(seed,'uniform'); // define gerador t1 = 0:t_max; for r = 1:r_max nl = N; // # de particulas na caixa da esquerda nr = 0.; // # de particulas na caixa da direita nr_t(1,r) = [nr]; // inicializa curva for t = 1:t_max // laco no tempo if rand() < nl/N then // nl/N propocao de part. na caixa esquerda nl = nl - 1.; // tira uma particula da caixa esquerda nr = nr + 1.; // coloca uma particula na caixa direita else nl = nl + 1.; // coloca uma particula na caixa esquerda nr = nr - 1.; // tira uma particula da caixa direita end nr_t(t+1,r) = nr/N; // constroe a curva n_r/N versus tempo end scf(1); plot2d([t1],[nr_t(:,r)],style=[-9]); // grafica as curvas end m_nr_t = zeros(1,t_max+1); // curva de valor medio m_nr2_t = zeros(1,t_max+1); // curva de valor ao quadrado medio m_sup = zeros(1,t_max+1); // curva de valor ao quadrado medio m_inf = zeros(1,t_max+1); // curva de valor ao quadrado medio for t = 1:t_max+1 for r =1:r_max m_nr_t(t) = m_nr_t(t) + nr_t(t,r); m_nr2_t(t) = m_nr2_t(t) + nr_t(t,r)*nr_t(t,r); end m_nr_t(t) = m_nr_t(t)/(r_max); // valor medio m_nr2_t(t) = m_nr2_t(t)/(r_max); // valor quadrado medio m_nr2_t(t) = sqrt(abs(m_nr2_t(t) - m_nr_t(t)*m_nr_t(t))); // desvio padrao m_inf(t) = m_nr_t(t) - m_nr2_t(t)/sqrt(r_max); // media - erro-padrao m_sup(t) = m_nr_t(t) + m_nr2_t(t)/sqrt(r_max); // media + erro-padrao end // erro-padrao = desvio-padrao/raiz(realizacoes) //clf(); scf(1); //figure(2), plot2d([t1],[m_nr_t]); plot2d([t1],[m_inf]); plot2d([t1],[m_sup]);