Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Métodos de Monte Carlo

Documentos relacionados
Sexta Lista: Geração de Números Pseudo-Aleatórios e Método de Monte Carlo

Funções Geradoras de Variáveis Aleatórias. Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE

Ricardo Ehlers Departamento de Matemática Aplicada e Estatística Universidade de São Paulo

Sistemas Aleatórios. Um sistema é aleatório quando seu estado futuro só pode ser conhecido. jogar uma moeda ou um dado. decaimento de uma partícula

Um modelo estocástico para o fluxo de caixa de um plano de previdência de um indivíduo 15

Estatística e Modelos Probabilísticos - COE241

Estatística e Modelos Probabilísticos - COE241

Estatística e Modelos Probabilísticos - COE241

Estatística e Modelos Probabilísticos - COE241

Análise de Dados em Astronomia. 4. Simulações de Monte Carlo

Análise de dados em Fisica de Particulas

Modelagem e Análise de Sistemas - COS767

Aula 6. Doravante iremos dizer que r(t) é uma parametrização da curva, e t é o parâmetro usado para descrever a curva.

Métodos Computacionais em Física

IND 1115 Inferência Estatística Aula 6

Aula 5. Como gerar amostras de uma distribuição qualquer a partir de sua CDF e de um gerador de números aleatórios?

Ref: H.Gould e J. Tobochnik. Para integrais em uma dimensão as regras do trapezóide e de Simpson são

Métodos de Monte Carlo

Noções de Simulação. Ciências Contábeis - FEA - Noturno. 2 o Semestre MAE0219 (IME-USP) Noções de Simulação 2 o Semestre / 23

MATRIZ DE REFERÊNCIA-Ensino Médio Componente Curricular: Matemática

Aula 11. Prof. Laura Silva de Assis. Engenharia da Computação. CEFET/RJ - Centro Federal de Educação Tecnológica Celso Suckow da Fonseca

Exercícios de programação

Modelagem e Avaliação de Desempenho. Pós Graduação em Engenharia Elétrica - PPGEE Prof. Carlos Marcelo Pedroso 2016

UNIVERSIDADE FEDERAL DO ABC. 1 Existência e unicidade de zeros; Métodos da bissecção e falsa posição

Técnicas Computacionais em Probabilidade e Estatística I

DIFERENCIAIS E O CÁLCULO APROXIMADO

3 Definições. 3.1 Processos Estocásticos e Processo de Wiener

Método Analítico. Método Numérico

Modelagem Computacional. Parte 8 2

Monte Carlo Method. Peter Frank Perroni. December 1, Monte Carlo Simulation

ESTATÍSTICA COMPUTACIONAL

ALUNO(A): Nº TURMA: TURNO: DATA: / / COLÉGIO:

Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Equações Diferenciais: introdução aos sistemas caóticos

Geometria Analítica. Números Reais. Faremos, neste capítulo, uma rápida apresentação dos números reais e suas propriedades, mas no sentido

O ALEATÓRIO EM COMPUTAÇÃO. Por Diogo Anderson Integrante do Grupo PET Computação

Fundamentos de Lógica e Algoritmos Aula 2.5 Conceitos Básicos de Algoritmos. Prof. Dr. Bruno Moreno

Simulação estocásaca

Renato Martins Assunção

INTRODUÇÃO À PROGRAMAÇÃO

6 MÉTODO DE ELEMENTOS FINITOS - MEF

Lista de Exercícios 4 Disciplina: CDI1 Turma: 1BEEN

Aula 12- Variáveis e valores reais

Simulações Computacionais de Sistemas Complexos

Aula 7. Aula de hoje. Aula passada

MÉTODOS MATEMÁTICOS. Claudia Mazza Dias Sandra Mara C. Malta

F ısica Estat ıstica Mecˆanica Estat ıstica Cl assica

AGA Análise de Dados em Astronomia I. O método de Monte Carlo

ESCOLA SECUNDÁRIA JERÓNIMO EMILIANO DE ANDRADE DE ANGRA DO HEROÍSMO

Programação das Aulas

Cálculo Numérico. Santos Alberto Enriquez-Remigio FAMAT-UFU 2015

, (1) onde v é o módulo de v e b 1 e b 2 são constantes positivas.

Estatísticas Inferenciais Distribuições Amostrais. Estatística

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

Avaliação Diagnóstica Matriz de Referência

5.3 Variáveis aleatórias gaussianas conjuntas

(A) 1. (B) 2. (C) 3. (D) 6. (E) 7. Pode-se afirma que

AGRUPAMENTO DE ESCOLAS ANSELMO DE ANDRADE

Espaços Euclidianos. Espaços R n. O conjunto R n é definido como o conjunto de todas as n-uplas ordenadas de números reais:

... n = 10, então n não é múlti- a = 2, então. log c = 2,7, então a, b, c, nesta ordem, formam

ANÁLISE MATEMÁTICA III A TESTE 2 PARA PRATICAR OUTUBRO DE Duração: 50 minutos

FICHA de AVALIAÇÃO de MATEMÁTICA A 10.º Ano de escolaridade Versão 2

Programa Anual MATEMÁTICA EXTENSIVO

FICHA de AVALIAÇÃO de MATEMÁTICA A 10.º Ano de escolaridade Versão 1

b) A classe de ações correspondente ao código da empresa é do tipo preferencial.

Matriz de referência de MATEMÁTICA - SAERJINHO 5 ANO ENSINO FUNDAMENTAL

Prova Escrita de MATEMÁTICA A - 12o Ano a Fase

Dados no R n. Dados em altas dimensões 29/03/2017

Aproximações Lineares e Diferenciais. Aproximações Lineares e Diferenciais. 1.Aproximações Lineares 2.Exemplos 3.Diferenciais 4.

Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Noções Básicas de Linguagem C

Fernando Nogueira Simulação 1

MATRIZES - PARTE Definição e Manipulação de Matrizes AULA 21

Introdução aos Números Pseudo-aleatórios. Profa. Dra. Soraia Raupp Musse

UNIDADE 1 ESTATÍSTICA E PROBABILIDADES 9 tempos de 45 minutos

MATEMÁTICA I FUNÇÕES. Profa. Dra. Amanda L. P. M. Perticarrari

AGRUPAMENTO DE ESCOLAS ANSELMO DE ANDRADE

COMO FUNCIONA A SIMULAÇÃO. Capítulo 2 - Aula 2. Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE

Análise de Algoritmos

( x) = a. f X. = para x I. Algumas Distribuições de Probabilidade Contínuas

MATRIZES - PARTE Mais exemplos Multiplicação de duas matrizes AULA 26

Energia potencial elétrica

Metas/ Objetivos Conceitos/ Conteúdos Aulas Previstas. Cálculo Combinatório: Introdução ao cálculo combinatório

Renato Martins Assunção

Modelagem e Avaliação de Desempenho. Pós Graduação em Engenharia Elétrica - PPGEE Prof. Carlos Marcelo Pedroso 2018

Cálculo II (Primitivas e Integral)

DCC008 - Cálculo Numérico

Diferenciabilidade de funções reais de várias variáveis reais

Simulações Computacionais de Sistemas Complexos

Metodologia de inversão

Escoamento potencial

Modelagem e Avaliação de Desempenho. Pós Graduação em Engenharia Elétrica - PPGEE Prof. Carlos Marcelo Pedroso 2017

Sumário. 2 Índice Remissivo 11

Translação e Rotação Energia cinética de rotação Momentum de Inércia Torque. Física Geral I ( ) - Capítulo 07. I. Paulino*

Modelagem e Avaliação de Desempenho. Pós Graduação em Engenharia Elétrica - PPGEE Prof. Carlos Marcelo Pedroso 2014

Os exercícios abaixo podem ser resolvidos sob a forma de algoritmos ou programas Pascal

Cálculo II - Cursão Exercício Extra n = 2 n = 3. Hiperesferas, hipercubos e hiperconfusões

Modelagem Computacional. Parte 2 2

Excel INTERMEDIÁRIO Estatística. Prof. Cassiano Isler Turma 3

Medida do Tempo de Execução de um Programa. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

Transcrição:

Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Métodos de Monte Carlo Edivaldo M. Santos e João R. T. de Mello Neto Aula 9 Edivaldo M. Santos e João R. T. de Mello Neto () Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Métodos de MonteAula Carlo 9 1 / 37

Introdução Monte Carlo é a denominação geral dada a uma classe bastante ampla de métodos que lançam mão da amostragem aleatória de um conjunto de variáveis para realizar certos tipos de cálculo. Edivaldo M. Santos e João R. T. de Mello Neto () Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Métodos de MonteAula Carlo 9 3 / 37

Introdução Monte Carlo é a denominação geral dada a uma classe bastante ampla de métodos que lançam mão da amostragem aleatória de um conjunto de variáveis para realizar certos tipos de cálculo. Métodos de Monte são especialmente úteis no trato de sistemas com um número elevado de graus de liberdade. Para tais sistemas, pode-se tornar difícil ou até mesmo impossível, resolver o conjunto acoplado de equações diferenciais ou eqs não-lineares para todas as variáveis de interesse. Exemplos de alguns sistemas desse tipo: fluidos, materiais de estrutura cristalina complexa, variáveis de mercados financeiros, etc. Edivaldo M. Santos e João R. T. de Mello Neto () Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Métodos de MonteAula Carlo 9 3 / 37

Introdução Monte Carlo é a denominação geral dada a uma classe bastante ampla de métodos que lançam mão da amostragem aleatória de um conjunto de variáveis para realizar certos tipos de cálculo. Métodos de Monte são especialmente úteis no trato de sistemas com um número elevado de graus de liberdade. Para tais sistemas, pode-se tornar difícil ou até mesmo impossível, resolver o conjunto acoplado de equações diferenciais ou eqs não-lineares para todas as variáveis de interesse. Exemplos de alguns sistemas desse tipo: fluidos, materiais de estrutura cristalina complexa, variáveis de mercados financeiros, etc. Os sistemas acima e muitos outros são tão complexos que parte da dinâmica pode ser considerada como de natureza aleatória ou estocástica, isto é, não é possível, a partir de um evento, prever o resultado do próximo, mas simplesmente saber a probabilidade com que ele ocorra. Edivaldo M. Santos e João R. T. de Mello Neto () Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Métodos de MonteAula Carlo 9 3 / 37

Introdução Monte Carlo é a denominação geral dada a uma classe bastante ampla de métodos que lançam mão da amostragem aleatória de um conjunto de variáveis para realizar certos tipos de cálculo. Métodos de Monte são especialmente úteis no trato de sistemas com um número elevado de graus de liberdade. Para tais sistemas, pode-se tornar difícil ou até mesmo impossível, resolver o conjunto acoplado de equações diferenciais ou eqs não-lineares para todas as variáveis de interesse. Exemplos de alguns sistemas desse tipo: fluidos, materiais de estrutura cristalina complexa, variáveis de mercados financeiros, etc. Os sistemas acima e muitos outros são tão complexos que parte da dinâmica pode ser considerada como de natureza aleatória ou estocástica, isto é, não é possível, a partir de um evento, prever o resultado do próximo, mas simplesmente saber a probabilidade com que ele ocorra. Outra classe de problemas, que não necessariamente envolve um grande número de graus de liberdade, em que Métodos de Monte Carlo podem ser utilizados é o cálculo de integrais. Dessas, é a na avaliação de integrais multidimensionais que o método mostra seu verdadeiro poder, dado que para integrais em 1 ou 2 dimensões os métodos vistos em aulas anteriores são bastante bem sucedidos. Edivaldo M. Santos e João R. T. de Mello Neto () Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Métodos de MonteAula Carlo 9 3 / 37

História Apesar de suas raízes remontarem ao século XVIII com os trabalhos de teoria de probabilidade, métodos de Monte Carlo só vieram a se tornar populares a partir de 1945 com o aparecimento dos primeiros computadores. A razão para isso é que para aplicar o método, uma grande quantidade de números aleatórios deve ser gerada, o que só se tornou viável com a utilização de máquinas de cálculo rápido. Edivaldo M. Santos e João R. T. de Mello Neto () Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Métodos de MonteAula Carlo 9 5 / 37

História Apesar de suas raízes remontarem ao século XVIII com os trabalhos de teoria de probabilidade, métodos de Monte Carlo só vieram a se tornar populares a partir de 1945 com o aparecimento dos primeiros computadores. A razão para isso é que para aplicar o método, uma grande quantidade de números aleatórios deve ser gerada, o que só se tornou viável com a utilização de máquinas de cálculo rápido. O nome foi cunhado pelo matemático John Von Neumann na década de 40 quando trabalhava no projeto Manhatan no Laboratório Nacional de Los Alamos, EUA. A inspiração de Von Neumann, foi o casino Monte Carlo em Mônaco, onde a aleatoriedade dos apostas estava sempre presente. Além disso, o nome devia ser apropriado a um projeto secreto. Edivaldo M. Santos e João R. T. de Mello Neto () Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Métodos de MonteAula Carlo 9 5 / 37

Sequências pseudo-aleatórias Antes de seguir em frente, é preciso que todos estejam plenamente cientes do seguinte fato: Um computador só é capaz de realizar cálculos determinísticos. A partir de uma determinada condição inicial, ele é capaz de realizar operações plenamente previsíveis e reprodutíveis. Não importa se são complexas e/ou numerosas, se nós ou outra máquina as repetirmos obteremos o mesmo valor que a máquina original. Edivaldo M. Santos e João R. T. de Mello Neto () Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Métodos de MonteAula Carlo 9 7 / 37

Sequências pseudo-aleatórias Antes de seguir em frente, é preciso que todos estejam plenamente cientes do seguinte fato: Um computador só é capaz de realizar cálculos determinísticos. A partir de uma determinada condição inicial, ele é capaz de realizar operações plenamente previsíveis e reprodutíveis. Não importa se são complexas e/ou numerosas, se nós ou outra máquina as repetirmos obteremos o mesmo valor que a máquina original. Isto é, não há qualquer aleatoriedade nas operações realizadas por um computador. Sendo assim, nenhuma sequencia de números geradas por um computador é, de fato, aleatória! Edivaldo M. Santos e João R. T. de Mello Neto () Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Métodos de MonteAula Carlo 9 7 / 37

Sequências pseudo-aleatórias Antes de seguir em frente, é preciso que todos estejam plenamente cientes do seguinte fato: Um computador só é capaz de realizar cálculos determinísticos. A partir de uma determinada condição inicial, ele é capaz de realizar operações plenamente previsíveis e reprodutíveis. Não importa se são complexas e/ou numerosas, se nós ou outra máquina as repetirmos obteremos o mesmo valor que a máquina original. Isto é, não há qualquer aleatoriedade nas operações realizadas por um computador. Sendo assim, nenhuma sequencia de números geradas por um computador é, de fato, aleatória! Como pode então um computador ser utilizado para implementar métodos de Monte Carlo? RESPOSTA: Sequências pseudo-aleatórias. Edivaldo M. Santos e João R. T. de Mello Neto () Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Métodos de MonteAula Carlo 9 7 / 37

Sequências pseudo-aleatórias Já foi dito que um fenômeno é dito aleatório ou estocástico quando não é possível prever o resultado exato do próximo evento a partir das observações do evento anterior. Tudo o que podemos prever é a probabilidade de ocorrências dos valores de certas variáveis no evento seguinte. Edivaldo M. Santos e João R. T. de Mello Neto () Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Métodos de MonteAula Carlo 9 9 / 37

Sequências pseudo-aleatórias Já foi dito que um fenômeno é dito aleatório ou estocástico quando não é possível prever o resultado exato do próximo evento a partir das observações do evento anterior. Tudo o que podemos prever é a probabilidade de ocorrências dos valores de certas variáveis no evento seguinte. Nesse sentido, numa sequência de números genuinamente aleatória, não há qualquer noção de período. É possível gerar um quantidade arbitrariamente grande de tais números sem que se observe repetição da sequência. Edivaldo M. Santos e João R. T. de Mello Neto () Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Métodos de MonteAula Carlo 9 9 / 37

Sequências pseudo-aleatórias Já foi dito que um fenômeno é dito aleatório ou estocástico quando não é possível prever o resultado exato do próximo evento a partir das observações do evento anterior. Tudo o que podemos prever é a probabilidade de ocorrências dos valores de certas variáveis no evento seguinte. Nesse sentido, numa sequência de números genuinamente aleatória, não há qualquer noção de período. É possível gerar um quantidade arbitrariamente grande de tais números sem que se observe repetição da sequência. Sequências pseudo-aleatórias são conjuntos ordenados de números cujo período é grande o suficiente para que numa dada aplicação, não seja possível perceber a natureza determinística da sequência. São essas as sequências geradas por qualquer máquina como aproximação para os verdadeiros números aleatórios. Edivaldo M. Santos e João R. T. de Mello Neto () Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Métodos de MonteAula Carlo 9 9 / 37

Sequências pseudo-aleatórias Já foi dito que um fenômeno é dito aleatório ou estocástico quando não é possível prever o resultado exato do próximo evento a partir das observações do evento anterior. Tudo o que podemos prever é a probabilidade de ocorrências dos valores de certas variáveis no evento seguinte. Nesse sentido, numa sequência de números genuinamente aleatória, não há qualquer noção de período. É possível gerar um quantidade arbitrariamente grande de tais números sem que se observe repetição da sequência. Sequências pseudo-aleatórias são conjuntos ordenados de números cujo período é grande o suficiente para que numa dada aplicação, não seja possível perceber a natureza determinística da sequência. São essas as sequências geradas por qualquer máquina como aproximação para os verdadeiros números aleatórios. Apesar da natureza de tais sequências ser claramente determinística, o termo gerador de números aleatórios é amplamante utilizado. Faremos uso desse termo aqui também, mas o aluno deve ter claro em mente de que esse é um abuso de linguagem. Edivaldo M. Santos e João R. T. de Mello Neto () Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Métodos de MonteAula Carlo 9 9 / 37

Sequências pseudo-aleatórias: comprimento O n-ésimo elemento r n de uma sequência pseudo-aleatória pode ser gerado pela aplicação de uma função f apropriada ao elemento anterior da sequência: r n = f (r n 1 ). (1) Edivaldo M. Santos e João R. T. de Mello Neto () Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Métodos de Monte Aula Carlo 9 11 / 37

Sequências pseudo-aleatórias: comprimento O n-ésimo elemento r n de uma sequência pseudo-aleatória pode ser gerado pela aplicação de uma função f apropriada ao elemento anterior da sequência: r n = f (r n 1 ). (1) Já vimos no curso que numa máquina onde a palavra (word) tem N bits, é possível representar a quantidade máxima de 2 N números diferentes, já que a unidade básica de informação são os bits. Dessa forma, a sequência da eq. acima irá, inevitavelmente, se repetir após, no máximo, 2 N elementos. Na prática, o período de uma sequência pseudo-aleatória será menor que o número máximo de possíveis representações num computador. Edivaldo M. Santos e João R. T. de Mello Neto () Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Métodos de Monte Aula Carlo 9 11 / 37

Sequências pseudo-aleatórias: exemplos Uma função comumente usada por geradores de números aleatórios é uma combinação de uma função linear atuando sobre inteiros, seguida da operação de resto: r n = (ar n 1 + b) mod m ou r n = (ar n 1 + b)%m (2) Edivaldo M. Santos e João R. T. de Mello Neto () Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Métodos de Monte Aula Carlo 9 13 / 37

Sequências pseudo-aleatórias: exemplos Uma função comumente usada por geradores de números aleatórios é uma combinação de uma função linear atuando sobre inteiros, seguida da operação de resto: r n = (ar n 1 + b) mod m ou r n = (ar n 1 + b)%m (2) Em C, a biblioteca padrão stdlib contém a função rand() que usa um desses chamados geradores lineares congruentes. Edivaldo M. Santos e João R. T. de Mello Neto () Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Métodos de Monte Aula Carlo 9 13 / 37

Sequências pseudo-aleatórias: exemplos Uma função comumente usada por geradores de números aleatórios é uma combinação de uma função linear atuando sobre inteiros, seguida da operação de resto: r n = (ar n 1 + b) mod m ou r n = (ar n 1 + b)%m (2) Em C, a biblioteca padrão stdlib contém a função rand() que usa um desses chamados geradores lineares congruentes. Note que ao tomar o resto da divisão por um inteiro m, tais métodos possuem um período limite de tamanho m. O tamanho real do período dependerá dos valores de a e b, sendo que para alguns valores desses inteiros, o limite m é de fato atingido. Edivaldo M. Santos e João R. T. de Mello Neto () Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Métodos de Monte Aula Carlo 9 13 / 37

Sequências pseudo-aleatórias: exemplos Uma função comumente usada por geradores de números aleatórios é uma combinação de uma função linear atuando sobre inteiros, seguida da operação de resto: r n = (ar n 1 + b) mod m ou r n = (ar n 1 + b)%m (2) Em C, a biblioteca padrão stdlib contém a função rand() que usa um desses chamados geradores lineares congruentes. Note que ao tomar o resto da divisão por um inteiro m, tais métodos possuem um período limite de tamanho m. O tamanho real do período dependerá dos valores de a e b, sendo que para alguns valores desses inteiros, o limite m é de fato atingido. O tamanho máximo da sequência pseudo-aleatória gerada por rand() em stdlib pode ser acessado por meio da macro de nome RAND MAX. Você pode verificar facilmente qual o valor de RAND MAX. Edivaldo M. Santos e João R. T. de Mello Neto () Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Métodos de Monte Aula Carlo 9 13 / 37

Sequências pseudo-aleatórias: exemplos Uma função comumente usada por geradores de números aleatórios é uma combinação de uma função linear atuando sobre inteiros, seguida da operação de resto: r n = (ar n 1 + b) mod m ou r n = (ar n 1 + b)%m (2) Em C, a biblioteca padrão stdlib contém a função rand() que usa um desses chamados geradores lineares congruentes. Note que ao tomar o resto da divisão por um inteiro m, tais métodos possuem um período limite de tamanho m. O tamanho real do período dependerá dos valores de a e b, sendo que para alguns valores desses inteiros, o limite m é de fato atingido. O tamanho máximo da sequência pseudo-aleatória gerada por rand() em stdlib pode ser acessado por meio da macro de nome RAND MAX. Você pode verificar facilmente qual o valor de RAND MAX. Assim, pode-se gerar uma variável aleatória no intervalo [a,b] qualquer através de: a + (b-a)*rand()/rand MAX. Edivaldo M. Santos e João R. T. de Mello Neto () Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Métodos de Monte Aula Carlo 9 13 / 37

Sequências pseudo-aleatórias: sementes A fórmula (2) acima não define completamente a sequência de números. O aluno atento deve ter percebido que é preciso especificar o primeiro elemento da sequência: A SEMENTE. A escolha da semente é procedimento importante e se executada corretamente, aumenta o caráter aleatório da sequência gerada. A semente para a função rand() de stdlib pode ser fixa usando-se uma outra função da mesma biblioteca chamada srand. O protótipo dessa função no seu computador tem muito provavelmente a seguinte cara: void srand(unsigned); indicando que srand() não retorna qualquer valor (é do tipo void), nem mesmo por referência, pois seu único argumento é do tipo unsigned e é passado por valor. Edivaldo M. Santos e João R. T. de Mello Neto () Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Métodos de Monte Aula Carlo 9 15 / 37

Sequências pseudo-aleatórias: sementes A fórmula (2) acima não define completamente a sequência de números. O aluno atento deve ter percebido que é preciso especificar o primeiro elemento da sequência: A SEMENTE. A escolha da semente é procedimento importante e se executada corretamente, aumenta o caráter aleatório da sequência gerada. A semente para a função rand() de stdlib pode ser fixa usando-se uma outra função da mesma biblioteca chamada srand. O protótipo dessa função no seu computador tem muito provavelmente a seguinte cara: void srand(unsigned); indicando que srand() não retorna qualquer valor (é do tipo void), nem mesmo por referência, pois seu único argumento é do tipo unsigned e é passado por valor. Entretanto, uma chamada do tipo: srand(seed); faz com chamadas posteriores de rand(), utilizem como semente o valor passado por valor na variável seed. É comum que você deseje que a sequência de números geradas por rand() seja diferente a cada vez que o executável é posto para rodar, sem que o usuário tenha que fazer a escolha a cada vez. Uma maneira de fazer isso é usar a função time da biblioteca time.h para passar uma semente que depende da hora local indicada pelo relógio do seu computador: srand ( time(null) ); Edivaldo M. Santos e João R. T. de Mello Neto () Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Métodos de Monte Aula Carlo 9 15 / 37

Conservação de probabilidade e o método da transformação Já sabemos então como gerar sequências aleatórias uniformes, ou seja, com distribuição de probabilidade uniforme. Dito de outra forma, se x é a variável em questão, em particular, definida no intervalo (0,1), a probabilidade de que ela se encontre entre x e x + dx e denotada p(x)dx é: j Z 1 se 0 < x < 1 p(x) = com p(x)dx = 1 (normalização) (3) 0 do contrário Edivaldo M. Santos e João R. T. de Mello Neto () Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Métodos de Monte Aula Carlo 9 17 / 37

Conservação de probabilidade e o método da transformação Já sabemos então como gerar sequências aleatórias uniformes, ou seja, com distribuição de probabilidade uniforme. Dito de outra forma, se x é a variável em questão, em particular, definida no intervalo (0,1), a probabilidade de que ela se encontre entre x e x + dx e denotada p(x)dx é: j Z 1 se 0 < x < 1 p(x) = com p(x)dx = 1 (normalização) (3) 0 do contrário Agora podemos analisar o problema central envolvido em métodos de Monte Carlo que é o da geração de uma variável y com uma distribuição de probabilidade dada p(y). Edivaldo M. Santos e João R. T. de Mello Neto () Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Métodos de Monte Aula Carlo 9 17 / 37

Conservação de probabilidade e o método da transformação Já sabemos então como gerar sequências aleatórias uniformes, ou seja, com distribuição de probabilidade uniforme. Dito de outra forma, se x é a variável em questão, em particular, definida no intervalo (0,1), a probabilidade de que ela se encontre entre x e x + dx e denotada p(x)dx é: j Z 1 se 0 < x < 1 p(x) = com p(x)dx = 1 (normalização) (3) 0 do contrário Agora podemos analisar o problema central envolvido em métodos de Monte Carlo que é o da geração de uma variável y com uma distribuição de probabilidade dada p(y). Suponha que x é uma variável com distribuição de probabilidade uniforme e que fazemos agir sobre essa variável uma função y(x). A distribuição de probabilidade p(y)dy da nova variável y fica determinada pela conservação de probabilidades: p(y)dy = p(x)dx (4) Edivaldo M. Santos e João R. T. de Mello Neto () Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Métodos de Monte Aula Carlo 9 17 / 37

Conservação de probabilidade e o método da transformação Já sabemos então como gerar sequências aleatórias uniformes, ou seja, com distribuição de probabilidade uniforme. Dito de outra forma, se x é a variável em questão, em particular, definida no intervalo (0,1), a probabilidade de que ela se encontre entre x e x + dx e denotada p(x)dx é: j Z 1 se 0 < x < 1 p(x) = com p(x)dx = 1 (normalização) (3) 0 do contrário Agora podemos analisar o problema central envolvido em métodos de Monte Carlo que é o da geração de uma variável y com uma distribuição de probabilidade dada p(y). Suponha que x é uma variável com distribuição de probabilidade uniforme e que fazemos agir sobre essa variável uma função y(x). A distribuição de probabilidade p(y)dy da nova variável y fica determinada pela conservação de probabilidades: p(y)dy = p(x)dx (4) Logo p(y) = p(x) dx dy = p(x) dy dx (5) Edivaldo M. Santos e João R. T. de Mello Neto () Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Métodos de Monte Aula Carlo 9 17 / 37

Método da transformação: distribuição exponencial Vejamos um exemplo concreto... Tome y(x) = ln(x) (= x = e y ). Então p(y) = p(x) dx dy = dx dy = e y (6) Se gerarmos números aleatórios com distrbuição uniforme, o negativo do logarítmo neperiano de tais variáveis seguirá uma distribuição de probabilidades dada por uma exponencial decrescente. Edivaldo M. Santos e João R. T. de Mello Neto () Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Métodos de Monte Aula Carlo 9 19 / 37

Método da transformação: distribuição exponencial Vejamos um exemplo concreto... Tome y(x) = ln(x) (= x = e y ). Então p(y) = p(x) dx dy = dx dy = e y (6) Se gerarmos números aleatórios com distrbuição uniforme, o negativo do logarítmo neperiano de tais variáveis seguirá uma distribuição de probabilidades dada por uma exponencial decrescente. Distribuições desse tipo são comuns envolvendo decaimentos de partículas instáveis e núcleos radiotivos em Física. Exemplo: A probabilidade de que uma núcleo instável decaia entre t e t + dt é dada por 1 e t τ, onde τ é a chamada meia-vida e definida como o tempo necessário para que metade de uma amostra contendo inicialmente N núcleos tenha decaído, no limite de N grande. Edivaldo M. Santos e João R. T. de Mello Neto () Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Métodos de Monte Aula Carlo 9 19 / 37

Método da transformação: distribuição exponencial float expdev(float tau) /* Retorna uma variavel aleatoria ditribuida exponencialmente com media tau usando a funcao rand() da biblioteca stdlib. Adaptado de Numerical Recipes em C. */ { 1 float dum; 0.9 do dum=(1.*rand())/rand_max; 0.8 while (dum == 0.0); 0.7 return -tau*log(dum); } 0.6 probailidade 0.5 0.4 decaimento sobrevivencia 0.3 0.2 0.1 0 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 t/τ Edivaldo M. Santos e João R. T. de Mello Neto () Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Métodos de Monte Aula Carlo 9 21 / 37

Método da transformação: distribuição gaussiana (normal) O método da transformação pode ser generalizado para mais de uma dimensão. Se x 1, x 2,...,x n são variáveis com distribuição de probabilidade conjunta p(x 1,x 2,...,x n)dx 1 dx 2...dx n e y 1,y 2,..,y n são funções dessas variáveis, então a distribuição de probabilidades conjunta p(y 1,y 2,...,y n)dy 1 dy 2...dx n dos y s é dada por p(y 1, y 2,...,y n)dy 1 dy 2...dy n = p(x 1,x 2,...,x n) (x 1,x 2,...,x n) (y 1,y 2,...,y dy 1dy 2...dy n, (7) n) onde o determinante Jacobiano dos x s com respeito aos y s é dado por: x 1 x 1 x... 1 y J(y 1, y 2,...,y n) = (x 1, x 2,...,x 1 y 2 y n n) x (y 1, y 2,...,y = 2 x 2 x... 2 y 1 y 2 y n n)............ x n... y 2 x n y 1 x n y n (8) Edivaldo M. Santos e João R. T. de Mello Neto () Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Métodos de Monte Aula Carlo 9 23 / 37

Método da transformação: distribuição gaussiana (normal) Uma aplicação do método multi-dimensional acima é o algorítmo de Box-Muller para a geração de variáveis com distribuição normal. p(y)dy = 1 2πσ e y2 2σ 2 dy (9) Edivaldo M. Santos e João R. T. de Mello Neto () Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Métodos de Monte Aula Carlo 9 25 / 37

Método da transformação: distribuição gaussiana (normal) Uma aplicação do método multi-dimensional acima é o algorítmo de Box-Muller para a geração de variáveis com distribuição normal. p(y)dy = 1 2πσ e y2 2σ 2 dy (9) Basta tomar 2 variáveis x 1 e x 2 uniformemente distribuídas no intervalo (0,1) e construir 2 outras y 1 e y 2 segundo y 1 = p 2ln(x 1 ) cos(2πx 2 ) y 2 = p 2ln(x 1 ) sin(2πx 2 ), de modo que é possível expressar x 1 e x 2 como função de y 1 e y 2 O Jacobiano para essa transformação é: J(y 1,y 2 ) = (x 1,x 2 ) x 1 (y 1,y 2 ) =. x 1 = e 1 2 (y2 1 +y2 2) «1 x 2 = 2π atan y2. y 1 x 1 y 1 y 2 x 2 x 2 y 1 y 2 = 1 e y2 1 1 2 e y2 2 2 (10) 2π 2π Edivaldo M. Santos e João R. T. de Mello Neto () Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Métodos de Monte Aula Carlo 9 25 / 37

Método da transformação: distribuição gaussiana (normal) O histograma abaixo mostra a distribuição de 100000 valores de uma variável gaussiana x gerada de acordo com o método de Box-Muller com média 10 e desvio padrão 1. Para gerar esse gráfico, apenas uma das variáveis (y 1 ou y 2 ) apresentadas na transparência anterior precisa ser usada. Para comparação, a distribuição gaussiana correspondente é superposta ao histograma. 4500 Gaussiana de media 10 e σ=1 4000 3500 3000 2500 2000 1500 1000 500 0 5 6 7 8 9 10 11 12 13 14 15 x Edivaldo M. Santos e João R. T. de Mello Neto () Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Métodos de Monte Aula Carlo 9 27 / 37

Método de aceitação-rejeição Os métodos apresentados anteriormente se baseiam no fato de que a matriz jacobiana da transformação possa ser calculada anaĺıticamente. Há inúmeras situações em que isso não é possível, seja pelo fato que o número de variáveis envolvidas na transformação é elevado, seja por que as função utilizadas na transformação são complicadas demais para serem expressas por uma combinação de funções elementares. Edivaldo M. Santos e João R. T. de Mello Neto () Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Métodos de Monte Aula Carlo 9 29 / 37

Método de aceitação-rejeição Os métodos apresentados anteriormente se baseiam no fato de que a matriz jacobiana da transformação possa ser calculada anaĺıticamente. Há inúmeras situações em que isso não é possível, seja pelo fato que o número de variáveis envolvidas na transformação é elevado, seja por que as função utilizadas na transformação são complicadas demais para serem expressas por uma combinação de funções elementares. Recorre-se nesses casos a um método bastante geral, baseado em um argumento geométrico simples, e que deve funcionar para praticamente todos os casos de interesse: o método de aceitação-rejeição. 0.45 0.4 0.35 0.3 0.25 0.2 0.15 0.1 0.05 0 0 0.5 1 1.5 2 2.5 3 Edivaldo M. Santos e João R. T. de Mello Neto () Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Métodos de Monte Aula Carlo 9 29 / 37

Método de aceitação-rejeição: algorítmo 1 Deseja-se gerar uma variável x com distribuição de probabilidade p(x)dx no intervalo (a,b). 2 Gera-se x uniformemente no intervalo de interesse e calcula-se p(x). 3 Gera-se uma segunda variável y também uniforme, mas agora no intervalo (0, y max), onde y max deve satisfazer y max p max, onde p max é o valor máximo de p(x) em (a,b). 4 Se y p(x), rejeita-se o valor de x e gera-se um novo valor, senão, aceita-se o valor de x. 5 Os valores de x assim aceitos seguem a distribuição de probabilidade p(x). Edivaldo M. Santos e João R. T. de Mello Neto () Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Métodos de Monte Aula Carlo 9 31 / 37

PARA FAZER EM SALA DE AULA 1 A razão entre a área de um círculo de raio 1 inscrito em um quadrado de lado 2 é π 4. Escreva um programa que empregue uma sequência pseuso-aleatéria e a idéia básica por trás do método de aceitação-rejeição para calcular π com precisão de 4 casas decimais. Compare o valor obtido pelo seu programa com a aproximação de π obtida com o auxílio da função atan() (arco-tangente ) da biblioteca matemática math.h. Edivaldo M. Santos e João R. T. de Mello Neto () Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Métodos de Monte Aula Carlo 9 33 / 37

PARA FAZER EM SALA DE AULA 2 As coordenadas polares θ e φ, para uma distribuição uniforme de pontos sobre uma esfera de raio R devem ter as seguintes distribuições de probabilidades: p(θ)dθ = sin θdθ p(φ)dφ = dφ, com 0 θ π e 0 φ < 2π, dado que a densidade de pontos uniformemente distribuídos sobre uma área infinitesimal em torno da direção (θ, φ) sobre a esfera deve ser proporcional ao ângulo sólido dω = sin θdθdφ subentendido por essa área. Escreva um programa para gerar pontos uniformemente distribuidos sobre a esfera unitária. No caso da variável θ, utilize o método da transformação para gerá-la. Qual deve ser a função y(x) a ser aplicada nesse caso? Seu programa deve escrever as coordenadas cartesianas dos pontos gerados num arquivo de saída: x = sin θ cos φ y = sin θ sin φ z = cos θ Teste o funcionamento do seu programa utilizando o script scatter.dem. Edivaldo M. Santos e João R. T. de Mello Neto () Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Métodos de Monte Aula Carlo 9 35 / 37

PARA FAZER EM SALA DE AULA Edivaldo M. Santos e João R. T. de Mello Neto () Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Métodos de Monte Aula Carlo 9 37 / 37