Ferramentas de Site


algoritmo:aleatorio

Diferenças

Esta página mostra as diferenças entre as duas revisões da página.

Links para esta vista de comparação

Ambos os lados da revisão anterior Revisão anterior
Próxima revisão
Revisão anterior
algoritmo:aleatorio [2014/09/02 10:39]
127.0.0.1 Edição externa
algoritmo:aleatorio [2021/12/12 12:39] (Atual)
staff
Linha 33: Linha 33:
 Seja agora **X1** e **X2**, duas variáveis aleatórias independentes distribuídas uniformemente no intervalo <nowiki>[0;1]</nowiki>. Então **Y1** e **Y2** definido por: Seja agora **X1** e **X2**, duas variáveis aleatórias independentes distribuídas uniformemente no intervalo <nowiki>[0;1]</nowiki>. Então **Y1** e **Y2** definido por:
  
-<m>Y1 = [[-2ln(X1)]]1/2cos(2 * pi * X2)</m> +<m>Y1 = [ [-2ln(X1)] ] 1/2 cos(2 * pi * X2)</m> 
-<m>Y2 = [[-2ln(X2)]]1/2cos(2 * pi * X1)</m>+<m>Y2 = [ [-2ln(X2)] ] 1/2 cos(2 * pi * X1)</m>
  
 são variáveis aleatórias gaussianas, independentes, de média nula e variância unitária. são variáveis aleatórias gaussianas, independentes, de média nula e variância unitária.
  
 Este algoritmo, que permite obter um par de v.a. gaussianas a partir de um par de v.a. distribuídas uniformemente é conhecido por método de Box-Muller. Este algoritmo, que permite obter um par de v.a. gaussianas a partir de um par de v.a. distribuídas uniformemente é conhecido por método de Box-Muller.
-Note-se que as equações anteriores produzem números distribuídos no intervalo <m>]-infty; +infty[</m>. Se m for o menor número real positivo que pode ser representado num dado computador, então o algoritmo produzirá números no intervalo <m>]-a; a[</m>, com <m>a = [-2 * ln(m)]^(1/2)</m>.+Note-se que as equações anteriores produzem números distribuídos no intervalo <m>]-infty; +infty[</m>. Se m for o menor número real positivo que pode ser representado num dado computador, então o algoritmo produzirá números no intervalo <m>]-a; a[</m>, com <m>a = [-2 * ln(m)]^{1/2}</m>.
  
 <note normal>//X módulo Y//, é o resto da divisão entre //X// e //Y//!</note> <note normal>//X módulo Y//, é o resto da divisão entre //X// e //Y//!</note>
  
-Discussão e artigo original: http://www.portugal-a-programar.pt/topic/2558-tutorial-geracao-de-n%C2%BA-pseudo-aleat-metodo-congruencial-e-de-box-muller/+<dtopic 2558 Geração de números pseudo-aleatórios (método congruencial e de Box-Muller)> 
 {{tag>algoritmo}} {{tag>algoritmo}}
algoritmo/aleatorio.1409654352.txt.gz · Última modificação em: 2018/05/14 21:37 (edição externa)