Bressam icon

Passeio Aleatório - Probabilidade

Bressam | PRO | 03/26/17 07:27:59 PM UTC | 0 ⭐ | 7473 👁️ | Never ⏰ | []
Octave |

1.9 KB

|

None

|

0 👍

/

0 👎

clear ; close all; clc   %% limpando variaveis
 
 
n = input('Informe a quantidade de passos que a particula realizara: ');
fprintf('\t*obs: Considere a posicao central como 0, e posicoes \n\t       a direita como positivas e a esquerda negativas\n')
k = input('Informe a posicao final em que deseja saber a probabilidade da particula parar: ');
x = input('Informe a quantidade de simulacoes: ');
 
probA = probPasseioAleatorio(n,k,x,1);
probS = probPasseioAleatorio(n,k,x,0);
 
fprintf('\n\nResultados:\n');
fprintf('\tNumero de passos: %d\n',n)
fprintf('\tPosicao final desejada: %d\n',k)
fprintf('\tNumero de Simulacoes: %d\n',x)
fprintf('\tProbabilidade Analitica: %f\n', probA)
fprintf('\tProbabilidade Simulada: %f\n', probS)
 
%%----------------------------------------------------%%
 
function prob = probPasseioAleatorio(n,k,x,tipo) 
   %% numero de passos (n), a posição final da trajetoria (k), e o numero de simulações (x), analitica ou simulada(tipo)
 
 if(tipo == 1)
  %%-------- Calculo da probabilidade analitica ------------
    auxC = (n+k)/2;
    if(mod(n,2)==mod(k,2))  %%se ambos sao pares
      pTeorica = nchoosek(n,auxC);
      div = 2^n;
      probA = pTeorica/div;   %%[C(n,(n+k)/2)]/2^n
      prob = probA;
    else
      prob = 0  ;
    endif
    
    
    
  else  
  %%-------- Calculo da probabilidade Simulada ------------
  acertos = 0;
  for i=1:x   %%executa x vezes, i++  
      posicaoParticula = 0;
      passos = randi(0:1,1,n);   %%gera inteiros 0(esquerda) ou 1(direita) numa matriz 1xn
      passosDireita = sum(passos);
      passosEsquerda = passosDireita-n;  %%valor ja sera negativo, ou zero (porque sempre sera: passosDireita<=n)
      posicaoFinal = passosDireita+passosEsquerda;
      posicaoParticula = posicaoFinal;
      if(posicaoParticula == k)
        acertos++;
      endif
     endfor;
     prob = acertos/x;
     
  endif
  
  
end

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎