métodos computacionais em física - if.ufrj.brhelder/metcomp/2017-1/aula12/aula12.pdf · 8...
TRANSCRIPT
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Metodos Computacionais em Fısica
Jose Helder Lopes e Sandra Amato
Instituto de FısicaUniversidade Federal do Rio de Janeiro
Primeiro Semestre de 2017
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Divisao do Programa em Varios Arquivos
8 Ja vimos como estruturar a logica de um programa -atraves de funcoes e macros
8 Um programa grande, com varios includes,prototipos de funcoes, macros e constantes simbolicas,torna-se rapidamente sujo, de difıcil leitura.
Regra de ouro da boa programacao
Um programa deve caber na tela do computador
Um programa grande deve ser dividido em varios arquivos:8 Nao precisamos ter uma copia da funcao em todos os
programas principais8 Podemos compilar apenas o arquivo modificado8 Funcoes genericas (p.ex. raiz de uma funcao) podem
ser usadas em outros codigos8 Evitamos que sejam modificadas por engano
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Divisao do Programa em Varios Arquivos
Arquivos de cabecalho (headers)8 Contem declaracoes de funcoes e de variaveis globais,
constantes simbolicas, macros, ... , como os jaconhecidos stdio.h e math.h.
8 A extensao do arquivo deve ser .h.8 Os headers devem ser incluıdos em cada arquivo em
que as definicoes neles contidas sejam usadas.
Ü Observe:#include ‘‘nome do header.h’’
Aspas “ . . . ” para cabecalhos do usuario#include <math.h>
< · · · > para cabecalhos do sistema
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Divisao do Programa em Varios Arquivos
Arquivos de implementacao
8 Contem a implementacao de funcoes.8 Contem os headers necessarios.8 Podem ser adicionados na hora da compilacao
(arquivo fonte .c)
8 Ou podem ser compilados separadamente(arquivos .o, .a ou .sl)e anexados aos outros na hora da montagem doprograma (linker).
O programa principal, com a funcao main (.c).
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Divisao do Programa em Varios Arquivos
Arquivos de implementacao
8 Contem a implementacao de funcoes.8 Contem os headers necessarios.8 Podem ser adicionados na hora da compilacao
(arquivo fonte .c)8 Ou podem ser compilados separadamente
(arquivos .o, .a ou .sl)e anexados aos outros na hora da montagem doprograma (linker).
O programa principal, com a funcao main (.c).
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Divisao do Programa em Varios Arquivos
Arquivos de implementacao
8 Contem a implementacao de funcoes.8 Contem os headers necessarios.8 Podem ser adicionados na hora da compilacao
(arquivo fonte .c)8 Ou podem ser compilados separadamente
(arquivos .o, .a ou .sl)e anexados aos outros na hora da montagem doprograma (linker).
O programa principal, com a funcao main (.c).
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Compilacao do programa executavel
Ü Compilando em um passo:gcc -o executavel principal.c implementacao1.c implementacao2.c . . .
Ü Compilando em varios passos:Para compilar um arquivo de implementacao isoladamente(util para achar erros):gcc -c implementacao1.c
sera criado um arquivo chamado implementacao1.o
Ü Para compilar o programa main e criar o executavel:gcc -o executavel principal.c implementacao1.o implementacao2.c . . .
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Compilacao do programa executavel
Ü Compilando em um passo:gcc -o executavel principal.c implementacao1.c implementacao2.c . . .
Ü Compilando em varios passos:Para compilar um arquivo de implementacao isoladamente(util para achar erros):gcc -c implementacao1.c
sera criado um arquivo chamado implementacao1.o
Ü Para compilar o programa main e criar o executavel:gcc -o executavel principal.c implementacao1.o implementacao2.c . . .
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Compilacao do programa executavel
Ü Compilando em um passo:gcc -o executavel principal.c implementacao1.c implementacao2.c . . .
Ü Compilando em varios passos:Para compilar um arquivo de implementacao isoladamente(util para achar erros):gcc -c implementacao1.c
sera criado um arquivo chamado implementacao1.o
Ü Para compilar o programa main e criar o executavel:gcc -o executavel principal.c implementacao1.o implementacao2.c . . .
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Compilacao do programa executavel
Ü Compilando em um passo:gcc -o executavel principal.c implementacao1.c implementacao2.c . . .
Ü Compilando em varios passos:Para compilar um arquivo de implementacao isoladamente(util para achar erros):gcc -c implementacao1.c
sera criado um arquivo chamado implementacao1.o
Ü Para compilar o programa main e criar o executavel:gcc -o executavel principal.c implementacao1.o implementacao2.c . . .
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Preparacao de um Programa
Editor:programa
*.c
Pre-processador:includes
*.i
Compilador:arquivo
*.o
Linker:bibliotecasexecutavel
8 Resolver o problema: Preparar algoritmos
8 Escrever o programa: vi, gedit . . .8 Pre-compilacao: instrucoes com #8 gcc -c funcao1.c
8 gcc -o programa programa.c funcao1.cfuncao2.c -lm ...
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Preparacao de um Programa
Editor:programa
*.c
Pre-processador:includes
*.i
Compilador:arquivo
*.o
Linker:bibliotecasexecutavel
8 Resolver o problema: Preparar algoritmos8 Escrever o programa: vi, gedit . . .
8 Pre-compilacao: instrucoes com #8 gcc -c funcao1.c
8 gcc -o programa programa.c funcao1.cfuncao2.c -lm ...
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Preparacao de um Programa
Editor:programa
*.c
Pre-processador:includes
*.i
Compilador:arquivo
*.o
Linker:bibliotecasexecutavel
8 Resolver o problema: Preparar algoritmos8 Escrever o programa: vi, gedit . . .8 Pre-compilacao: instrucoes com #
8 gcc -c funcao1.c
8 gcc -o programa programa.c funcao1.cfuncao2.c -lm ...
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Preparacao de um Programa
Editor:programa
*.c
Pre-processador:includes
*.i
Compilador:arquivo
*.o
Linker:bibliotecasexecutavel
8 Resolver o problema: Preparar algoritmos8 Escrever o programa: vi, gedit . . .8 Pre-compilacao: instrucoes com #8 gcc -c funcao1.c
8 gcc -o programa programa.c funcao1.cfuncao2.c -lm ...
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Preparacao de um Programa
Editor:programa
*.c
Pre-processador:includes
*.i
Compilador:arquivo
*.o
Linker:bibliotecasexecutavel
8 Resolver o problema: Preparar algoritmos8 Escrever o programa: vi, gedit . . .8 Pre-compilacao: instrucoes com #8 gcc -c funcao1.c
8 gcc -o programa programa.c funcao1.cfuncao2.c -lm ...
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Divisao em arquivos e variaveis globais
Ü Variaveis globais vao no sentido oposto damodularizacao. Usar so quando a alternativa for pior.
Ü O uso “correto” e um pouco complicado e usa ocomando extern. Veja o linkhttp://stackoverflow.com/questions/1433204/how-do-i-share-a-variable-
between-source-files-in-c-with-extern-but-how
Ü Receita pratica:8 Declare a variavel no header, sem inicializa-la,
para nao ocorrer multiplas inicializacoes.8 Use a variavel normalmente no arquivos de
implementacao.
Ü Observacao:Lembre-se que uma redeclaracao local “esconde” umavariavel global
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Exemplo
8 Analise o arquivo fatorial1.c
8 Analise os arquivos usaFatorial.c, usaFatorial.h,entrada.c, cfatorial.c e saida.c.
8 Compile as funcoes separadamente:gcc -c cfatorial.cgcc -c entrada.cgcc -c saida.cgcc -o usaFatorial usaFatorial.c entrada.osaida.o cfatorial.o -lm
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Exemplo
8 Analise e execute o programa raiz 0.c (nao usa funcao)
8 Analise e execute o programa raiz 1.c(usa funcao, mas tudo em um
unico arquivo)
8 Analise os arquivos raiz main.c, raiz func.c,NewtonRaphson.c e NewtonRaphson.h.
8 Compile as funcoes separadamente:gcc -c raiz func.cgcc -c NewtonRaphson.c
8 Compile o programa main, “linkando” com as funcoes jacompiladas e com a biblioteca do sistema, criado oexecutavel:gcc -o raiz raiz main.c raiz func.oNewtonRaphson.o -lmExecute-o.
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Sistemas Aleatorios
Os sistemas Fısicos podem ser:
Ü Sistemas determinısticosÜ Sistemas aleatorios
r Decaimento de um nucleo ou de uma partıcular Movimento brownianor Se um embriao vai ser masculino ou femininor Bolsa de valoresr Sistema de transitor Jogar uma moeda ou um dado
Muitos sistemas determinısticos se comportam comoaleatorios quando sua evolucao depende de um numerogrande de fatores.Processos quanticos sao intrinsecamente probabilısticos ...
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Sistemas Aleatorios
Os sistemas Fısicos podem ser:Ü Sistemas determinısticos:
A evolucao de um sistema e conhecida univocamentepelas leis que o governam e pelo seu estado inicial.
r A trajetoria de uma partıcula
Ü Sistemas aleatorios
r Decaimento de um nucleo ou de uma partıcular Movimento brownianor Se um embriao vai ser masculino ou femininor Bolsa de valoresr Sistema de transitor Jogar uma moeda ou um dado
Muitos sistemas determinısticos se comportam comoaleatorios quando sua evolucao depende de um numerogrande de fatores.Processos quanticos sao intrinsecamente probabilısticos ...
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Sistemas Aleatorios
Os sistemas Fısicos podem ser:Ü Sistemas determinısticosÜ Sistemas aleatorios:
Nao se pode prever o resultado de um experimento.O estado futuro so pode ser conhecido pela realizacaode uma experiencia.Mas podemos saber suas caracterısticas atraves deleis probabilısticas.
r Decaimento de um nucleo ou de uma partıcular Movimento brownianor Se um embriao vai ser masculino ou femininor Bolsa de valoresr Sistema de transitor Jogar uma moeda ou um dado
Muitos sistemas determinısticos se comportam comoaleatorios quando sua evolucao depende de um numerogrande de fatores.Processos quanticos sao intrinsecamente probabilısticos ...
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Sistemas Aleatorios
Os sistemas Fısicos podem ser:Ü Sistemas determinısticosÜ Sistemas aleatorios
r Decaimento de um nucleo ou de uma partıcular Movimento brownianor Se um embriao vai ser masculino ou femininor Bolsa de valoresr Sistema de transitor Jogar uma moeda ou um dado
Muitos sistemas determinısticos se comportam comoaleatorios quando sua evolucao depende de um numerogrande de fatores.Processos quanticos sao intrinsecamente probabilısticos ...
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Sistemas Aleatorios
Os sistemas Fısicos podem ser:Ü Sistemas determinısticosÜ Sistemas aleatorios
r Decaimento de um nucleo ou de uma partıcular Movimento brownianor Se um embriao vai ser masculino ou femininor Bolsa de valoresr Sistema de transitor Jogar uma moeda ou um dado
Muitos sistemas determinısticos se comportam comoaleatorios quando sua evolucao depende de um numerogrande de fatores.
Processos quanticos sao intrinsecamente probabilısticos ...
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Sistemas Aleatorios
Os sistemas Fısicos podem ser:Ü Sistemas determinısticosÜ Sistemas aleatorios
r Decaimento de um nucleo ou de uma partıcular Movimento brownianor Se um embriao vai ser masculino ou femininor Bolsa de valoresr Sistema de transitor Jogar uma moeda ou um dado
Muitos sistemas determinısticos se comportam comoaleatorios quando sua evolucao depende de um numerogrande de fatores.Processos quanticos sao intrinsecamente probabilısticos ...
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Sistemas Aleatorios
r Para estudarmos os sistemas aleatorios utilizamossimulacoes computacionais - Metodo de Monte Carlo -gerando numeros aleatorios de acordo com umadistribuicao esperada
r e estudamos suas caracterısticas, como as medias,variancias, correlacoes etc.
r Uma das primeiras aplicacoes foi no design dereatores nucleares - Quanto de shielding material enecessario para parar os neutrons?
r Simulacao: Um experimento computacionalr Mas nao e um experimento de fato!
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Exemplo 1: Raios Cosmicos
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Exemplo 2: Colisoes de Partıculas
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Probabilidade - senso comum
r A necessidade de usar o conceito de probabilidade surge dofato de nao sabermos prever o resultado Ex - cara ou coroa?
r Podemos modelar a probabilidade de se obter um resultado.Mas primeiro devemos definir quais os resultados possıveis- espaco de amostragem: cara, coroa. E se cair em pe?
r Uma definicao razoavel seria P(cara) = P(coroa) = 12 onde
consideramos uma distribuicao de massa uniforme edesprezamos um evento raro
r Como comprovar o modelo? Realizando o experimento Nvezes, obtendo uma amostra com N resultados ( “eventos”).
r Mas quantas vezes (N) devemos lancar a moeda para que oresultado de 1
2 ?P(cara) = lim
N→∞
N(cara)
N
r Quao grande deve ser N?
r Que erro estamos cometendo ao usar um certo N finito?
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Distribuicoes Discretas
Ü O evento X e uma grandeza contavel, que no caso finitopode ser associada a m valores diferentes xi com i variandode 1 a m.(jogo de dados: m = 6, x1 = 1, x2 = 2, ..., x6 = 6)ÜPode ser tambem uma distribuicao infinita, como porexemplo, o numero de fragmentos numa explosao.
Se sao realizadas N medidas de X :Para a frequencia relativa F (xi) = N(xi )
N ,m∑
i=1
F (xi) = 1
Uma definicao empırica de probabilidade e
P(xi) = limN→∞
N(xi)
N= lim
N→∞F (xi)
F (xi ) e uma estimativa de P(xi ), tao melhor quanto maior for N.
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Distribuicoes Discretas
Ü O evento X e uma grandeza contavel, que no caso finitopode ser associada a m valores diferentes xi com i variandode 1 a m.(jogo de dados: m = 6, x1 = 1, x2 = 2, ..., x6 = 6)ÜPode ser tambem uma distribuicao infinita, como porexemplo, o numero de fragmentos numa explosao.
Se sao realizadas N medidas de X :
Para a frequencia relativa F (xi) = N(xi )N ,
m∑i=1
F (xi) = 1
Uma definicao empırica de probabilidade e
P(xi) = limN→∞
N(xi)
N= lim
N→∞F (xi)
F (xi ) e uma estimativa de P(xi ), tao melhor quanto maior for N.
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Distribuicoes Discretas
Ü O evento X e uma grandeza contavel, que no caso finitopode ser associada a m valores diferentes xi com i variandode 1 a m.(jogo de dados: m = 6, x1 = 1, x2 = 2, ..., x6 = 6)ÜPode ser tambem uma distribuicao infinita, como porexemplo, o numero de fragmentos numa explosao.
Se sao realizadas N medidas de X : Se o valor xi e medidocom frequencia N(xi) temos
m∑i=1
N(xi) = N
Para a frequencia relativa F (xi) = N(xi )N ,
m∑i=1
F (xi) = 1
Uma definicao empırica de probabilidade e
P(xi) = limN→∞
N(xi)
N= lim
N→∞F (xi)
F (xi ) e uma estimativa de P(xi ), tao melhor quanto maior for N.
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Distribuicoes Discretas
Ü O evento X e uma grandeza contavel, que no caso finitopode ser associada a m valores diferentes xi com i variandode 1 a m.ÜPode ser tambem uma distribuicao infinita, como porexemplo, o numero de fragmentos numa explosao.
Se sao realizadas N medidas de X : Se o valor xi e medidocom frequencia N(xi) temos
m∑i=1
N(xi) = N
Para a frequencia relativa F (xi) = N(xi )N ,
m∑i=1
F (xi) = 1
Uma definicao empırica de probabilidade e
P(xi) = limN→∞
N(xi)
N= lim
N→∞F (xi)
F (xi ) e uma estimativa de P(xi ), tao melhor quanto maior for N.
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Distribuicoes Discretas
Ü O evento X e uma grandeza contavel, que no caso finitopode ser associada a m valores diferentes xi com i variandode 1 a m.ÜPode ser tambem uma distribuicao infinita, como porexemplo, o numero de fragmentos numa explosao.
Se sao realizadas N medidas de X :Para a frequencia relativa F (xi) = N(xi )
N ,
m∑i=1
F (xi) = 1
Uma definicao empırica de probabilidade e
P(xi) = limN→∞
N(xi)
N= lim
N→∞F (xi)
F (xi ) e uma estimativa de P(xi ), tao melhor quanto maior for N.
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Distribuicoes Discretas
Ü O evento X e uma grandeza contavel, que no caso finitopode ser associada a m valores diferentes xi com i variandode 1 a m.ÜPode ser tambem uma distribuicao infinita, como porexemplo, o numero de fragmentos numa explosao.
Se sao realizadas N medidas de X :Para a frequencia relativa F (xi) = N(xi )
N ,
m∑i=1
F (xi) = 1
Uma definicao empırica de probabilidade e
P(xi) = limN→∞
N(xi)
N= lim
N→∞F (xi)
F (xi ) e uma estimativa de P(xi ), tao melhor quanto maior for N.
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Probabilidades Discretas
6 Uma distribuicao de probabilidade discreta satisfaz a:Ü 0 ≤ P(xi) ≤ 1
Ü
m∑i=1
P(xi) = 1
6 O objetivo de uma experiencia e, em geral, determinarP(xi) e comparar o valor com alguma previsao -Estatıstica
6 Exemplo: qual e a probabilidade de se obter cara comuma moeda?
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Distribuicoes Discretas Uniformes
Os m resultados sao igualmente provaveis7 P(x1) = P(x2) = · · · = P(xm) = p
= 1/m7 Fazendo uma experiencia com um dado:
⇒ P(x4) = p = 1/6 = 0,166666...
Usando amostras com N eventos, poderıamos obter:N 10 100 1000 104 105 106
N(x4) 3 12 163 1698 16605 166753F (x4) 0.3 0.12 0.163 0.1698 0.1660 0.16675
7 Quantas vezes e necessario repetir um experimento?7 Quantas vezes e possıvel repetir o experimento?
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Distribuicoes Discretas Uniformes
Os m resultados sao igualmente provaveis7 P(x1) = P(x2) = · · · = P(xm) = p = 1/m
7 Fazendo uma experiencia com um dado:⇒ P(x4) = p = 1/6 = 0,166666...
Usando amostras com N eventos, poderıamos obter:N 10 100 1000 104 105 106
N(x4) 3 12 163 1698 16605 166753F (x4) 0.3 0.12 0.163 0.1698 0.1660 0.16675
7 Quantas vezes e necessario repetir um experimento?7 Quantas vezes e possıvel repetir o experimento?
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Distribuicoes Discretas Uniformes
Os m resultados sao igualmente provaveis7 P(x1) = P(x2) = · · · = P(xm) = p = 1/m7 Fazendo uma experiencia com um dado:
⇒ P(x4) = p = 1/6 = 0,166666...
Usando amostras com N eventos, poderıamos obter:N 10 100 1000 104 105 106
N(x4) 3 12 163 1698 16605 166753F (x4) 0.3 0.12 0.163 0.1698 0.1660 0.16675
7 Quantas vezes e necessario repetir um experimento?7 Quantas vezes e possıvel repetir o experimento?
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Distribuicoes Discretas Uniformes
Os m resultados sao igualmente provaveis7 P(x1) = P(x2) = · · · = P(xm) = p = 1/m7 Fazendo uma experiencia com um dado:
⇒ P(x4) = p = 1/6 = 0,166666...
Usando amostras com N eventos, poderıamos obter:N 10 100 1000 104 105 106
N(x4) 3 12 163 1698 16605 166753F (x4) 0.3 0.12 0.163 0.1698 0.1660 0.16675
7 Quantas vezes e necessario repetir um experimento?7 Quantas vezes e possıvel repetir o experimento?
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Distribuicoes Discretas Uniformes
Os m resultados sao igualmente provaveis7 P(x1) = P(x2) = · · · = P(xm) = p = 1/m7 Fazendo uma experiencia com um dado:
⇒ P(x4) = p = 1/6 = 0,166666...
Usando amostras com N eventos, poderıamos obter:N 10 100 1000 104 105 106
N(x4) 3 12 163 1698 16605 166753F (x4) 0.3 0.12 0.163 0.1698 0.1660 0.16675
7 Quantas vezes e necessario repetir um experimento?
7 Quantas vezes e possıvel repetir o experimento?
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Distribuicoes Discretas Uniformes
Os m resultados sao igualmente provaveis7 P(x1) = P(x2) = · · · = P(xm) = p = 1/m7 Fazendo uma experiencia com um dado:
⇒ P(x4) = p = 1/6 = 0,166666...
Usando amostras com N eventos, poderıamos obter:N 10 100 1000 104 105 106
N(x4) 3 12 163 1698 16605 166753F (x4) 0.3 0.12 0.163 0.1698 0.1660 0.16675
7 Quantas vezes e necessario repetir um experimento?7 Quantas vezes e possıvel repetir o experimento?
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Caracterısticas de Distribuicoes Discretas
Ü O objetivo costuma ser determinar a distribuicao deprobabilidade P(xi), mas com frequencia isso nao epossıvel ou necessario.
Ü Mas pode-se determinar os momentos da distribuicao:ã Primeiro Momento (media ou valor esperado)
< X >= x = limN→∞
∑i
xiN(xi)
N=∑
i
xiP(xi)
ã Segundo Momento< X 2 >=
∑i
x2i P(xi)
ou varianciaσ2 =
∑i
(xi − x)2P(xi) =< X 2 > − < X >2
σ: Desvio padrao ou dispersao dos valoresÜ < X >, σ, . . . calculados para uma amostra com N eventos
sao uma estimativa dos respectivos valores “verdadeiros”
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Exemplo
Para uma distribuicao tal quen 0 1 2 3 4 5
P(n) 0,0498 0,1494 0,2240 0,2240 0,1680 0,1008n 6 7 8 9 10 > 10
P(n) 0,0504 0,0216 0,0081 0,0027 0,0008 . . .Considere a amostra com resultados de 20 experimentos:
{8,4,3,3,2,6,6,4,4,2,2,0,5,2,2,3,3,3,0,5}
Media da amostra:x = (8 + 4 + 3 + 3 + 2 + 6 + 6 + 4 + 4 + 2 + 2 + 0 + 5
+2 + 2 + 3 + 3 + 3 + 0 + 5)/20 = 3,35 oux = (2x0 + 0x1 + 5x2 + 5x3 + 3x4 + 2x5 + 2x6 + 0x7 + 1x8 + 0x9)/20 = 3, 35
x = (0, 10x0 + 0x1 + 0, 25x2 + 0, 25x3 + 0, 15x4 + 0, 10x5 + 0, 10x6 + 0x7 +0, 05x8 + 0x9) = 3, 35
Mas a media “verdadeira” e:x =0, 0498x0+0, 1494x1+0, 2240x2+0, 2240x3+0, 1680x4+0, 1008x5+0, 0504x6+0, 0216x7 + 0, 0081x8 + 0, 0027x9 + ... = 2, 988 + ...
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Distribuicoes Contınuas
Ü X e uma variavel contınua→ Fica sem sentido falar deP(x)
Ü Mas se x ∈ [a,b], podemos dividir esta regiao em Mintervalos de largura ∆x = (b − a)/M.Podemos entao falar na probabilidadeP(xi < x < xi + ∆x)
Discretizamos o problema !
Esta probabilidade depende da escolha de ∆x e de umadensidade de probabilidade fX (x)
caracterıstica do processo:
P(xi < x < xi + ∆x) ∝ f (x)∆x
Ü Com M →∞, dP = fX (x)dxÜ fX (x)dx e a probabilidade de X estar entre x e x + dx .
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Distribuicoes Contınuas
Ü X e uma variavel contınua→ Fica sem sentido falar deP(x)
Ü Mas se x ∈ [a,b], podemos dividir esta regiao em Mintervalos de largura ∆x = (b − a)/M.Podemos entao falar na probabilidadeP(xi < x < xi + ∆x) Discretizamos o problema !
Esta probabilidade depende da escolha de ∆x e de umadensidade de probabilidade fX (x)
caracterıstica do processo:
P(xi < x < xi + ∆x) ∝ f (x)∆x
Ü Com M →∞, dP = fX (x)dxÜ fX (x)dx e a probabilidade de X estar entre x e x + dx .
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Distribuicoes Contınuas
Ü X e uma variavel contınua→ Fica sem sentido falar deP(x)
Ü Mas se x ∈ [a,b], podemos dividir esta regiao em Mintervalos de largura ∆x = (b − a)/M.Podemos entao falar na probabilidadeP(xi < x < xi + ∆x) Discretizamos o problema !
Esta probabilidade depende da escolha de ∆x e de umadensidade de probabilidade fX (x)
caracterıstica do processo:
P(xi < x < xi + ∆x) ∝ f (x)∆x
Ü Com M →∞, dP = fX (x)dxÜ fX (x)dx e a probabilidade de X estar entre x e x + dx .
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Propriedades de Distribuicoes Contınuas
6 Probabilidade de X estar em um intervalo:P(a ≤ x ≤ b) =
∫ ba fX (x)dx
6 Condicao de normalizacao:∫ +∞−∞ fX (x)dx = 1
6 Media< X >= x =
∫xfX (x)dx
6 Varianciaσ2 =
∫(x − x)2fX (x)dx =< X 2 > − < X >2
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Exemplos de Distribuicoes Contınuas
6 Distribuicao Uniforme: fX (x) = C
∫ b
afX (x)dx = 1⇒ C =
1b − a
6 Distribuicao Gaussiana:
fX (x) =1√
2π σexp
[(x − µ)2
2σ2
]
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Exemplos de Distribuicoes Contınuas
6 Distribuicao Uniforme: fX (x) = C∫ b
afX (x)dx = 1⇒ C =
1b − a
6 Distribuicao Gaussiana:
fX (x) =1√
2π σexp
[(x − µ)2
2σ2
]
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Exemplos de Distribuicoes Contınuas
6 Distribuicao Uniforme: fX (x) = C∫ b
afX (x)dx = 1⇒ C =
1b − a
6 Distribuicao Gaussiana:
fX (x) =1√
2π σexp
[(x − µ)2
2σ2
]
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Exemplos de Distribuicoes Contınuas
6 Distribuicao Uniforme: fX (x) = C∫ b
afX (x)dx = 1⇒ C =
1b − a
6 Distribuicao Gaussiana:
fX (x) =1√
2π σexp
[(x − µ)2
2σ2
]
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Histogramas - Normalizacao
6 Histogramas sao usados para visualizar ocomportamento de dados que se distribuem emdeterminados valores
6 Para variaveis discretas cada bin corresponde a umresultado possıvel (eixo x) e o seu valor (eixo y ) indicao numero de ocorrencias Ni daquele resultado naamostra em questao.
6 Para variaveis contınuas, cada bin tem uma largura ∆xe o bin i indica quantas ocorrencias Ni tem valoresentre xi e xi + ∆x .
Suponha que queiramos comparar os dados numhistograma com uma certa densidade de probabilidade f (x)Mas os valores no histograma dependem do numero totalde eventos N e, no caso contınuo, da largura ∆x do bin.
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Histogramas - Normalizacao
Precisamos normalizar, isto e, mudar a escala ou dohistograma ou da funcao.
6 No caso discreto, como
P(xi ) = limN→∞
N(xi )
N= lim
N→∞F (xi ) e
m∑i=1
P(xi ) =m∑
i=1
F (xi ) = 1,
basta usar F (xi) no lugar de Ni no histograma.6 No caso contınuo a relacao e∫ b
afX (x)dx = lim
m→∞
m∑i=1
fX (xi )∆x =⇒ F (xi ) = fX (xi )∆x
Ou seja, devemos usar F (xi )/∆x no histograma, paracompararmos com fX (xi ). ( A area do histograma deveficar igual a area abaixo da curva fX (x), que e 1).
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Histogramas - Normalizacao
Com estas normalizacoes, se os dados de fatocorrespondem a uma distribuicao f (x), o histograma tendepara a curva a medida que N →∞.
��
�����
�����
�����
�����
����
�����
�����
�����
�����
����
�� �� �� �� �� �� �� �� ��
����������
���������������������������������������������������������������������
∆x = 0.24 ((6− (−6)/50bins)
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Geracao de Numeros Aleatorios
Ü Estudo de sistemas aleatorios⇒ Geracao desequencia aleatoria de numeros (amostra)
Ü O computador so pode gerar uma sequenciadeterminıstica!
Ü Numeros Pseudo-Aleatorios: uma sequencia deperıodo muito longo e sem ordenacao aparente.
Ü Cada sequencia independente comeca com umasemente
Se um numero se repete, toda a sequencia se repete !!O gerador deve passar um serie de testes estatısticos!
Exemplo: sequencia de numeros entre 0 e 2m − 1
xn+1 = resto((axn + b)/2m)
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Geracao de Numeros Aleatorios
Ü Estudo de sistemas aleatorios⇒ Geracao desequencia aleatoria de numeros (amostra)
Ü O computador so pode gerar uma sequenciadeterminıstica!
Ü Numeros Pseudo-Aleatorios: uma sequencia deperıodo muito longo e sem ordenacao aparente.
Ü Cada sequencia independente comeca com umasemente
Se um numero se repete, toda a sequencia se repete !!O gerador deve passar um serie de testes estatısticos!
Exemplo: sequencia de numeros entre 0 e 2m − 1
xn+1 = resto((axn + b)/2m)
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Geracao de Numeros Aleatorios
Ü Estudo de sistemas aleatorios⇒ Geracao desequencia aleatoria de numeros (amostra)
Ü O computador so pode gerar uma sequenciadeterminıstica!
Ü Numeros Pseudo-Aleatorios: uma sequencia deperıodo muito longo e sem ordenacao aparente.
Ü Cada sequencia independente comeca com umasemente
Se um numero se repete, toda a sequencia se repete !!O gerador deve passar um serie de testes estatısticos!
Exemplo: sequencia de numeros entre 0 e 2m − 1
xn+1 = resto((axn + b)/2m)
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Geracao de Numeros Aleatorios
Ü Estudo de sistemas aleatorios⇒ Geracao desequencia aleatoria de numeros (amostra)
Ü O computador so pode gerar uma sequenciadeterminıstica!
Ü Numeros Pseudo-Aleatorios: uma sequencia deperıodo muito longo e sem ordenacao aparente.
Ü Cada sequencia independente comeca com umasemente
Se um numero se repete, toda a sequencia se repete !!O gerador deve passar um serie de testes estatısticos!
Exemplo: sequencia de numeros entre 0 e 2m − 1
xn+1 = resto((axn + b)/2m)
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Geracao de Numeros Aleatorios
Ü Estudo de sistemas aleatorios⇒ Geracao desequencia aleatoria de numeros (amostra)
Ü O computador so pode gerar uma sequenciadeterminıstica!
Ü Numeros Pseudo-Aleatorios: uma sequencia deperıodo muito longo e sem ordenacao aparente.
Ü Cada sequencia independente comeca com umasemente
Se um numero se repete, toda a sequencia se repete !!O gerador deve passar um serie de testes estatısticos!
Exemplo: sequencia de numeros entre 0 e 2m − 1
xn+1 = resto((axn + b)/2m)
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Geracao de Numeros Aleatorios
Ü Estudo de sistemas aleatorios⇒ Geracao desequencia aleatoria de numeros (amostra)
Ü O computador so pode gerar uma sequenciadeterminıstica!
Ü Numeros Pseudo-Aleatorios: uma sequencia deperıodo muito longo e sem ordenacao aparente.
Ü Cada sequencia independente comeca com umasemente
Se um numero se repete, toda a sequencia se repete !!O gerador deve passar um serie de testes estatısticos!
Exemplo: sequencia de numeros entre 0 e 2m − 1
xn+1 = resto((axn + b)/2m)
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Geracao de Numeros Aleatorios
Ü A funcao rand( ) gera numeros inteirosuniformemente entre 0 e RAND MAX (stdlib.h).n = rand();
Ü A semente seed (inteiro) pode ser inicializada pelafuncao srand(seed)
Como obter uma amostra com N eventos de umadistribuicao contınua uniforme com valores entre a e b?Geramos uma sequencia uniforme de N numeros reais entre a eb chamando N vezes:
x = a + rand() ∗ (b − a)/RAND MAX
Note que so teremos RAND MAX valores reais, sendo o menor∆x entre eles de (b − a)/RAND MAX !!
Estude os programas uniforme.c , gera uniforme.c egera uniforme histo.c
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Geracao de Numeros Aleatorios
Ü A funcao rand( ) gera numeros inteirosuniformemente entre 0 e RAND MAX (stdlib.h).n = rand();
Ü A semente seed (inteiro) pode ser inicializada pelafuncao srand(seed)
Como obter uma amostra com N eventos de umadistribuicao contınua uniforme com valores entre a e b?Geramos uma sequencia uniforme de N numeros reais entre a eb chamando N vezes:
x = a + rand() ∗ (b − a)/RAND MAX
Note que so teremos RAND MAX valores reais, sendo o menor∆x entre eles de (b − a)/RAND MAX !!
Estude os programas uniforme.c , gera uniforme.c egera uniforme histo.c
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Geracao de Numeros Aleatorios
Ü A funcao rand( ) gera numeros inteirosuniformemente entre 0 e RAND MAX (stdlib.h).n = rand();
Ü A semente seed (inteiro) pode ser inicializada pelafuncao srand(seed)
Como obter uma amostra com N eventos de umadistribuicao contınua uniforme com valores entre a e b?
Geramos uma sequencia uniforme de N numeros reais entre a eb chamando N vezes:
x = a + rand() ∗ (b − a)/RAND MAX
Note que so teremos RAND MAX valores reais, sendo o menor∆x entre eles de (b − a)/RAND MAX !!
Estude os programas uniforme.c , gera uniforme.c egera uniforme histo.c
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Geracao de Numeros Aleatorios
Ü A funcao rand( ) gera numeros inteirosuniformemente entre 0 e RAND MAX (stdlib.h).n = rand();
Ü A semente seed (inteiro) pode ser inicializada pelafuncao srand(seed)
Como obter uma amostra com N eventos de umadistribuicao contınua uniforme com valores entre a e b?Geramos uma sequencia uniforme de N numeros reais entre a eb chamando N vezes:
x = a + rand() ∗ (b − a)/RAND MAX
Note que so teremos RAND MAX valores reais, sendo o menor∆x entre eles de (b − a)/RAND MAX !!
Estude os programas uniforme.c , gera uniforme.c egera uniforme histo.c
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Geracao de Numeros Aleatorios
Ü A funcao rand( ) gera numeros inteirosuniformemente entre 0 e RAND MAX (stdlib.h).n = rand();
Ü A semente seed (inteiro) pode ser inicializada pelafuncao srand(seed)
Como obter uma amostra com N eventos de umadistribuicao contınua uniforme com valores entre a e b?Geramos uma sequencia uniforme de N numeros reais entre a eb chamando N vezes:
x = a + rand() ∗ (b − a)/RAND MAX
Note que so teremos RAND MAX valores reais, sendo o menor∆x entre eles de (b − a)/RAND MAX !!
Estude os programas uniforme.c , gera uniforme.c egera uniforme histo.c
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Geracao de Numeros Aleatorios
Ü A funcao rand( ) gera numeros inteirosuniformemente entre 0 e RAND MAX (stdlib.h).n = rand();
Ü A semente seed (inteiro) pode ser inicializada pelafuncao srand(seed)
Como obter uma amostra com N eventos de umadistribuicao contınua uniforme com valores entre a e b?Geramos uma sequencia uniforme de N numeros reais entre a eb chamando N vezes:
x = a + rand() ∗ (b − a)/RAND MAX
Note que so teremos RAND MAX valores reais, sendo o menor∆x entre eles de (b − a)/RAND MAX !!
Estude os programas uniforme.c , gera uniforme.c egera uniforme histo.c
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Distribuicoes nao UniformesMetodo da Transformada
Como gerar uma sequencia segundo fY (y)?
Ü Usando uma outra variavel aleatoria X ,y = g(x), tal que
Ü |fY (y)dy | = |fX (x)dx |Ü Gera-se a sequencia segundo fX (x) (por ex., uniforme)Ü Obtem-se fY (y) usando y = g(x), mas qual e a funcao
g(x)?Ü Exemplo: fY (y) = exp(−y) e fX (x) = 1
|fY (y)dy | = |fX (x)dx | ⇒ |exp(−y)dy | = |dx |
⇒∫ y
0exp(−y ′)dy ′ =
∫ x
0dx ′ ⇒ 1− exp(−y) = x
⇒ exp(−y) = 1− x ⇒ y = − ln(1− x)
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Distribuicoes nao UniformesMetodo da Transformada
Como gerar uma sequencia segundo fY (y)?Ü Usando uma outra variavel aleatoria X ,
y = g(x), tal que
Ü |fY (y)dy | = |fX (x)dx |Ü Gera-se a sequencia segundo fX (x) (por ex., uniforme)Ü Obtem-se fY (y) usando y = g(x), mas qual e a funcao
g(x)?Ü Exemplo: fY (y) = exp(−y) e fX (x) = 1
|fY (y)dy | = |fX (x)dx | ⇒ |exp(−y)dy | = |dx |
⇒∫ y
0exp(−y ′)dy ′ =
∫ x
0dx ′ ⇒ 1− exp(−y) = x
⇒ exp(−y) = 1− x ⇒ y = − ln(1− x)
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Distribuicoes nao UniformesMetodo da Transformada
Como gerar uma sequencia segundo fY (y)?Ü Usando uma outra variavel aleatoria X ,
y = g(x), tal queÜ |fY (y)dy | = |fX (x)dx |
Ü Gera-se a sequencia segundo fX (x) (por ex., uniforme)Ü Obtem-se fY (y) usando y = g(x), mas qual e a funcao
g(x)?Ü Exemplo: fY (y) = exp(−y) e fX (x) = 1
|fY (y)dy | = |fX (x)dx | ⇒ |exp(−y)dy | = |dx |
⇒∫ y
0exp(−y ′)dy ′ =
∫ x
0dx ′ ⇒ 1− exp(−y) = x
⇒ exp(−y) = 1− x ⇒ y = − ln(1− x)
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Distribuicoes nao UniformesMetodo da Transformada
Como gerar uma sequencia segundo fY (y)?Ü Usando uma outra variavel aleatoria X ,
y = g(x), tal queÜ |fY (y)dy | = |fX (x)dx |Ü Gera-se a sequencia segundo fX (x) (por ex., uniforme)
Ü Obtem-se fY (y) usando y = g(x), mas qual e a funcaog(x)?
Ü Exemplo: fY (y) = exp(−y) e fX (x) = 1
|fY (y)dy | = |fX (x)dx | ⇒ |exp(−y)dy | = |dx |
⇒∫ y
0exp(−y ′)dy ′ =
∫ x
0dx ′ ⇒ 1− exp(−y) = x
⇒ exp(−y) = 1− x ⇒ y = − ln(1− x)
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Distribuicoes nao UniformesMetodo da Transformada
Como gerar uma sequencia segundo fY (y)?Ü Usando uma outra variavel aleatoria X ,
y = g(x), tal queÜ |fY (y)dy | = |fX (x)dx |Ü Gera-se a sequencia segundo fX (x) (por ex., uniforme)Ü Obtem-se fY (y) usando y = g(x), mas qual e a funcao
g(x)?
Ü Exemplo: fY (y) = exp(−y) e fX (x) = 1
|fY (y)dy | = |fX (x)dx | ⇒ |exp(−y)dy | = |dx |
⇒∫ y
0exp(−y ′)dy ′ =
∫ x
0dx ′ ⇒ 1− exp(−y) = x
⇒ exp(−y) = 1− x ⇒ y = − ln(1− x)
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Distribuicoes nao UniformesMetodo da Transformada
Como gerar uma sequencia segundo fY (y)?Ü Usando uma outra variavel aleatoria X ,
y = g(x), tal queÜ |fY (y)dy | = |fX (x)dx |Ü Gera-se a sequencia segundo fX (x) (por ex., uniforme)Ü Obtem-se fY (y) usando y = g(x), mas qual e a funcao
g(x)?Ü Exemplo: fY (y) = exp(−y) e fX (x) = 1
|fY (y)dy | = |fX (x)dx | ⇒ |exp(−y)dy | = |dx |
⇒∫ y
0exp(−y ′)dy ′ =
∫ x
0dx ′ ⇒ 1− exp(−y) = x
⇒ exp(−y) = 1− x ⇒ y = − ln(1− x)
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Distribuicoes nao UniformesMetodo da Transformada
Como gerar uma sequencia segundo fY (y)?Ü Usando uma outra variavel aleatoria X ,
y = g(x), tal queÜ |fY (y)dy | = |fX (x)dx |Ü Gera-se a sequencia segundo fX (x) (por ex., uniforme)Ü Obtem-se fY (y) usando y = g(x), mas qual e a funcao
g(x)?Ü Exemplo: fY (y) = exp(−y) e fX (x) = 1
|fY (y)dy | = |fX (x)dx |
⇒ |exp(−y)dy | = |dx |
⇒∫ y
0exp(−y ′)dy ′ =
∫ x
0dx ′ ⇒ 1− exp(−y) = x
⇒ exp(−y) = 1− x ⇒ y = − ln(1− x)
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Distribuicoes nao UniformesMetodo da Transformada
Como gerar uma sequencia segundo fY (y)?Ü Usando uma outra variavel aleatoria X ,
y = g(x), tal queÜ |fY (y)dy | = |fX (x)dx |Ü Gera-se a sequencia segundo fX (x) (por ex., uniforme)Ü Obtem-se fY (y) usando y = g(x), mas qual e a funcao
g(x)?Ü Exemplo: fY (y) = exp(−y) e fX (x) = 1
|fY (y)dy | = |fX (x)dx | ⇒ |exp(−y)dy | = |dx |
⇒∫ y
0exp(−y ′)dy ′ =
∫ x
0dx ′ ⇒ 1− exp(−y) = x
⇒ exp(−y) = 1− x ⇒ y = − ln(1− x)
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Distribuicoes nao UniformesMetodo da Transformada
Como gerar uma sequencia segundo fY (y)?Ü Usando uma outra variavel aleatoria X ,
y = g(x), tal queÜ |fY (y)dy | = |fX (x)dx |Ü Gera-se a sequencia segundo fX (x) (por ex., uniforme)Ü Obtem-se fY (y) usando y = g(x), mas qual e a funcao
g(x)?Ü Exemplo: fY (y) = exp(−y) e fX (x) = 1
|fY (y)dy | = |fX (x)dx | ⇒ |exp(−y)dy | = |dx |
⇒∫ y
0exp(−y ′)dy ′ =
∫ x
0dx ′
⇒ 1− exp(−y) = x
⇒ exp(−y) = 1− x ⇒ y = − ln(1− x)
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Distribuicoes nao UniformesMetodo da Transformada
Como gerar uma sequencia segundo fY (y)?Ü Usando uma outra variavel aleatoria X ,
y = g(x), tal queÜ |fY (y)dy | = |fX (x)dx |Ü Gera-se a sequencia segundo fX (x) (por ex., uniforme)Ü Obtem-se fY (y) usando y = g(x), mas qual e a funcao
g(x)?Ü Exemplo: fY (y) = exp(−y) e fX (x) = 1
|fY (y)dy | = |fX (x)dx | ⇒ |exp(−y)dy | = |dx |
⇒∫ y
0exp(−y ′)dy ′ =
∫ x
0dx ′ ⇒ 1− exp(−y) = x
⇒ exp(−y) = 1− x ⇒ y = − ln(1− x)
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Distribuicoes nao UniformesMetodo da Transformada
Como gerar uma sequencia segundo fY (y)?Ü Usando uma outra variavel aleatoria X ,
y = g(x), tal queÜ |fY (y)dy | = |fX (x)dx |Ü Gera-se a sequencia segundo fX (x) (por ex., uniforme)Ü Obtem-se fY (y) usando y = g(x), mas qual e a funcao
g(x)?Ü Exemplo: fY (y) = exp(−y) e fX (x) = 1
|fY (y)dy | = |fX (x)dx | ⇒ |exp(−y)dy | = |dx |
⇒∫ y
0exp(−y ′)dy ′ =
∫ x
0dx ′ ⇒ 1− exp(−y) = x
⇒ exp(−y) = 1− x
⇒ y = − ln(1− x)
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Distribuicoes nao UniformesMetodo da Transformada
Como gerar uma sequencia segundo fY (y)?Ü Usando uma outra variavel aleatoria X ,
y = g(x), tal queÜ |fY (y)dy | = |fX (x)dx |Ü Gera-se a sequencia segundo fX (x) (por ex., uniforme)Ü Obtem-se fY (y) usando y = g(x), mas qual e a funcao
g(x)?Ü Exemplo: fY (y) = exp(−y) e fX (x) = 1
|fY (y)dy | = |fX (x)dx | ⇒ |exp(−y)dy | = |dx |
⇒∫ y
0exp(−y ′)dy ′ =
∫ x
0dx ′ ⇒ 1− exp(−y) = x
⇒ exp(−y) = 1− x ⇒ y = − ln(1− x)
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Distribuicoes ao Uniformes - Metodo daTransformada
Como gerar uma sequencia segundo fY (y)?Ü y = − ln(1− x)
Ü Sorteia-se X uniforme e calcula-se YÜ Atencao: Os limites da distribuicao em X devem ser
calculados para a distribuicao em YPara que 0 ≤ y ≤ 10 a distribuicao uniforme deve sergerada entre:0 = − ln(1− x)⇒ e0 = 1− x ⇒ x = 010 = − ln(1− x)⇒ e−10 = 1− x ⇒ x = 1− e−10
Ü Este metodo envolve o calculo de funcoes inversas, o quepode ser um problema serio
Ü Estude o programa gera exp.c que sorteia numerospseudo-aleatorios segundo uma distribuicao exponencialpara 0 ≤ y ≤ 10
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Distribuicoes ao Uniformes - Metodo daTransformada
Como gerar uma sequencia segundo fY (y)?Ü y = − ln(1− x)
Ü Sorteia-se X uniforme e calcula-se Y
Ü Atencao: Os limites da distribuicao em X devem sercalculados para a distribuicao em YPara que 0 ≤ y ≤ 10 a distribuicao uniforme deve sergerada entre:0 = − ln(1− x)⇒ e0 = 1− x ⇒ x = 010 = − ln(1− x)⇒ e−10 = 1− x ⇒ x = 1− e−10
Ü Este metodo envolve o calculo de funcoes inversas, o quepode ser um problema serio
Ü Estude o programa gera exp.c que sorteia numerospseudo-aleatorios segundo uma distribuicao exponencialpara 0 ≤ y ≤ 10
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Distribuicoes ao Uniformes - Metodo daTransformada
Como gerar uma sequencia segundo fY (y)?Ü y = − ln(1− x)
Ü Sorteia-se X uniforme e calcula-se YÜ Atencao: Os limites da distribuicao em X devem ser
calculados para a distribuicao em Y
Para que 0 ≤ y ≤ 10 a distribuicao uniforme deve sergerada entre:0 = − ln(1− x)⇒ e0 = 1− x ⇒ x = 010 = − ln(1− x)⇒ e−10 = 1− x ⇒ x = 1− e−10
Ü Este metodo envolve o calculo de funcoes inversas, o quepode ser um problema serio
Ü Estude o programa gera exp.c que sorteia numerospseudo-aleatorios segundo uma distribuicao exponencialpara 0 ≤ y ≤ 10
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Distribuicoes ao Uniformes - Metodo daTransformada
Como gerar uma sequencia segundo fY (y)?Ü y = − ln(1− x)
Ü Sorteia-se X uniforme e calcula-se YÜ Atencao: Os limites da distribuicao em X devem ser
calculados para a distribuicao em YPara que 0 ≤ y ≤ 10 a distribuicao uniforme deve sergerada entre:0 = − ln(1− x)⇒ e0 = 1− x ⇒ x = 010 = − ln(1− x)⇒ e−10 = 1− x ⇒ x = 1− e−10
Ü Este metodo envolve o calculo de funcoes inversas, o quepode ser um problema serio
Ü Estude o programa gera exp.c que sorteia numerospseudo-aleatorios segundo uma distribuicao exponencialpara 0 ≤ y ≤ 10
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Distribuicoes ao Uniformes - Metodo daTransformada
Como gerar uma sequencia segundo fY (y)?Ü y = − ln(1− x)
Ü Sorteia-se X uniforme e calcula-se YÜ Atencao: Os limites da distribuicao em X devem ser
calculados para a distribuicao em YPara que 0 ≤ y ≤ 10 a distribuicao uniforme deve sergerada entre:0 = − ln(1− x)⇒ e0 = 1− x ⇒ x = 010 = − ln(1− x)⇒ e−10 = 1− x ⇒ x = 1− e−10
Ü Este metodo envolve o calculo de funcoes inversas, o quepode ser um problema serio
Ü Estude o programa gera exp.c que sorteia numerospseudo-aleatorios segundo uma distribuicao exponencialpara 0 ≤ y ≤ 10
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Distribuicoes ao Uniformes - Metodo daTransformada
Como gerar uma sequencia segundo fY (y)?Ü y = − ln(1− x)
Ü Sorteia-se X uniforme e calcula-se YÜ Atencao: Os limites da distribuicao em X devem ser
calculados para a distribuicao em YPara que 0 ≤ y ≤ 10 a distribuicao uniforme deve sergerada entre:0 = − ln(1− x)⇒ e0 = 1− x ⇒ x = 010 = − ln(1− x)⇒ e−10 = 1− x ⇒ x = 1− e−10
Ü Este metodo envolve o calculo de funcoes inversas, o quepode ser um problema serio
Ü Estude o programa gera exp.c que sorteia numerospseudo-aleatorios segundo uma distribuicao exponencialpara 0 ≤ y ≤ 10
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Metodo da Rejeicao
Ü A ideia e simples: com dois sorteios e possıvelreproduzir uma curva em duas dimensoes
6 DadafY (y), y ∈ [ymin, ymax ]tal que fY (y) < Fsup
6 Sorteia-se um numerouniforme ymin < y < ymax
6 Sorteia-se um numerouniforme 0 < z < Fsup
6 y e rejeitado se fY (y) < z6 y e aceito se fY (y) > z
f (y)
yymin ymax
Fsup
y
z
y
Repete-se o processo ate obtermos uma amostra com o numerode eventos necessarios (N y ’s aceitos)
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Metodo da Rejeicao
Ü A ideia e simples: com dois sorteios e possıvelreproduzir uma curva em duas dimensoes
6 DadafY (y), y ∈ [ymin, ymax ]
tal que fY (y) < Fsup
6 Sorteia-se um numerouniforme ymin < y < ymax
6 Sorteia-se um numerouniforme 0 < z < Fsup
6 y e rejeitado se fY (y) < z6 y e aceito se fY (y) > z
f (y)
yymin ymax
Fsup
y
z
y
Repete-se o processo ate obtermos uma amostra com o numerode eventos necessarios (N y ’s aceitos)
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Metodo da Rejeicao
Ü A ideia e simples: com dois sorteios e possıvelreproduzir uma curva em duas dimensoes
6 DadafY (y), y ∈ [ymin, ymax ]tal que fY (y) < Fsup
6 Sorteia-se um numerouniforme ymin < y < ymax
6 Sorteia-se um numerouniforme 0 < z < Fsup
6 y e rejeitado se fY (y) < z6 y e aceito se fY (y) > z
f (y)
yymin ymax
Fsup
y
z
y
Repete-se o processo ate obtermos uma amostra com o numerode eventos necessarios (N y ’s aceitos)
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Metodo da Rejeicao
Ü A ideia e simples: com dois sorteios e possıvelreproduzir uma curva em duas dimensoes
6 DadafY (y), y ∈ [ymin, ymax ]tal que fY (y) < Fsup
6 Sorteia-se um numerouniforme ymin < y < ymax
6 Sorteia-se um numerouniforme 0 < z < Fsup
6 y e rejeitado se fY (y) < z6 y e aceito se fY (y) > z
f (y)
yymin ymax
Fsup
y
z
y
Repete-se o processo ate obtermos uma amostra com o numerode eventos necessarios (N y ’s aceitos)
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Metodo da Rejeicao
Ü A ideia e simples: com dois sorteios e possıvelreproduzir uma curva em duas dimensoes
6 DadafY (y), y ∈ [ymin, ymax ]tal que fY (y) < Fsup
6 Sorteia-se um numerouniforme ymin < y < ymax
6 Sorteia-se um numerouniforme 0 < z < Fsup
6 y e rejeitado se fY (y) < z6 y e aceito se fY (y) > z
f (y)
yymin ymax
Fsup
y
z
y
Repete-se o processo ate obtermos uma amostra com o numerode eventos necessarios (N y ’s aceitos)
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Metodo da Rejeicao
Ü A ideia e simples: com dois sorteios e possıvelreproduzir uma curva em duas dimensoes
6 DadafY (y), y ∈ [ymin, ymax ]tal que fY (y) < Fsup
6 Sorteia-se um numerouniforme ymin < y < ymax
6 Sorteia-se um numerouniforme 0 < z < Fsup
6 y e rejeitado se fY (y) < z
6 y e aceito se fY (y) > z
f (y)
yymin ymax
Fsup
y
z
y
Repete-se o processo ate obtermos uma amostra com o numerode eventos necessarios (N y ’s aceitos)
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Metodo da Rejeicao
Ü A ideia e simples: com dois sorteios e possıvelreproduzir uma curva em duas dimensoes
6 DadafY (y), y ∈ [ymin, ymax ]tal que fY (y) < Fsup
6 Sorteia-se um numerouniforme ymin < y < ymax
6 Sorteia-se um numerouniforme 0 < z < Fsup
6 y e rejeitado se fY (y) < z6 y e aceito se fY (y) > z
f (y)
yymin ymax
Fsup
y
z
y
Repete-se o processo ate obtermos uma amostra com o numerode eventos necessarios (N y ’s aceitos)
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Metodo da Rejeicao
Ü A ideia e simples: com dois sorteios e possıvelreproduzir uma curva em duas dimensoes
6 DadafY (y), y ∈ [ymin, ymax ]tal que fY (y) < Fsup
6 Sorteia-se um numerouniforme ymin < y < ymax
6 Sorteia-se um numerouniforme 0 < z < Fsup
6 y e rejeitado se fY (y) < z6 y e aceito se fY (y) > z
f (y)
yymin ymax
Fsup
y
z
y
Repete-se o processo ate obtermos uma amostra com o numerode eventos necessarios (N y ’s aceitos)
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Metodo da Rejeicao
Ü ... um metodo que sempre pode ser aplicadoÜ O metodo tem dois pontos fracos:
ä Se Fsup for muito maior que o valor maximo defY (y)
ä Se fY (y) tiver um pico muito pronunciadoÜ O segundo sorteio sera muito ineficiente
Fsup
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Metodo da Rejeicao
Ü ... um metodo que sempre pode ser aplicadoÜ O metodo tem dois pontos fracos:
ä Se Fsup for muito maior que o valor maximo defY (y)
ä Se fY (y) tiver um pico muito pronunciado
Ü O segundo sorteio sera muito ineficiente
Fsup
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Metodo da Rejeicao
Ü ... um metodo que sempre pode ser aplicadoÜ O metodo tem dois pontos fracos:
ä Se Fsup for muito maior que o valor maximo defY (y)
ä Se fY (y) tiver um pico muito pronunciadoÜ O segundo sorteio sera muito ineficiente
Fsup
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Metodo da Rejeicao
Ü ... um metodo que sempre pode ser aplicadoÜ O metodo tem dois pontos fracos:
ä Se Fsup for muito maior que o valor maximo defY (y)
ä Se fY (y) tiver um pico muito pronunciadoÜ O segundo sorteio sera muito ineficienteÜ ... importante estimar bem Fsup e o intervalo [ymin, ymax ]
antes de aplicar o metodo
Met Comp
C: Divisao doPrograma emArquivos
SistemasAleatorios
DistDiscretas
DistContınuas
NumerosPseudo-Aleatorios
Metodo da Rejeicao
Ü ... um metodo que sempre pode ser aplicadoÜ O metodo tem dois pontos fracos:
ä Se Fsup for muito maior que o valor maximo defY (y)
ä Se fY (y) tiver um pico muito pronunciadoÜ O segundo sorteio sera muito ineficienteÜ ... importante estimar bem Fsup e o intervalo [ymin, ymax ]
antes de aplicar o metodoÜ Estude o programa gera gauss.c que sorteia
numeros pseudo-aleatorios segundo uma distribuicaogaussiana e gera gauss histo.c que preencheum histograma