met comp´ metodo de´ monte carlo simulac¸ ˜oes metodos...
TRANSCRIPT
Met Comp
Metodo deMonte CarloSimulacoes
Introducaoao PythonApresentacao
Referencias
Inicializandopython
Operacoes
Variaveis
Exemplos
Conclusaodo Curso
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
Metodo deMonte CarloSimulacoes
Introducaoao PythonApresentacao
Referencias
Inicializandopython
Operacoes
Variaveis
Exemplos
Conclusaodo Curso
Simulacoes
Alem de ser usado para calcular integrais, o Metodo deMonte Carlo e largamente utilizado para simular processosrandomicos. Uma das primeiras aplicacoes foi no design dereatores nucleares - Quanto de shielding material enecessario para parar os neutrons?Outros exemplos de sistemas que podem ser aleatorios ouse comportarem como tal devido a sua complexidade:
Ü Trafego em grandes cidadesÜ Difusao molecularÜ Movimento BrownianoÜ Mobilidade de atomos na superfıcie de um cristalÜ Processos estrelaresÜ Colisoes de partıculas
Simulacoes tem um papel fundamental nestes estudos
Met Comp
Metodo deMonte CarloSimulacoes
Introducaoao PythonApresentacao
Referencias
Inicializandopython
Operacoes
Variaveis
Exemplos
Conclusaodo Curso
Passeio Aleatorio - Random Walk
Para ilustrar como e realizada uma simulacao, vamoscomecar com o sistema mais simples
O passeio do bebadoÜ A cada passo, um bebado pode se mover nas direcoes
N-S-L-O com igual probabilidade.
Ü Apos N passos, a que distancia do ponto de origem seencontrara? Impossıvel prever, pois e um evento aleatorio
Ü Apos N passos, a que distancia em media do ponto deorigem ele se encontrara? Com qual incerteza?Podemos simular M experimentos independentes
Met Comp
Metodo deMonte CarloSimulacoes
Introducaoao PythonApresentacao
Referencias
Inicializandopython
Operacoes
Variaveis
Exemplos
Conclusaodo Curso
Passeio Aleatorio
Ü Faca uma simulacao para o problema do passeioaleatorio (random walk) nas seguintes condicoes:
1 Todos os passos tem o mesmo comprimento: 1m.2 Passos so sao dados ao longo dos eixos x ou y .3 A probabilidade de andar em qualquer uma das
quatro direcoes e a mesma.
Met Comp
Metodo deMonte CarloSimulacoes
Introducaoao PythonApresentacao
Referencias
Inicializandopython
Operacoes
Variaveis
Exemplos
Conclusaodo Curso
Passeio Aleatorio: Algoritmo
Calculo da distancia apos 1 caminhada de Npassos
1 Inicialize a posicao inicial: x = 0 e y = 0
2 Defina o numero de passos em 1 caminhada: Npassos = 10
3 Para cada passo de 1 ate Npassos
4 sorteie uma das direcoesPense numa forma de fazer este sorteio usando um gerador denumeros aleatorios uniformemente distribuıdos de 0 a 1
5 calcule a nova posicao (x ou y dependendo do sorteio)
6 Calcule a distancia da posicao final ate a origem r =√
x2 + y2
Met Comp
Metodo deMonte CarloSimulacoes
Introducaoao PythonApresentacao
Referencias
Inicializandopython
Operacoes
Variaveis
Exemplos
Conclusaodo Curso
Passeio Aleatorio: Algoritmo
Media das distancias para Ncaminhadas com Npassos fixo
1 Defina o numero de passos em 1 caminhada: Npassos = 10
2 Defina o numero de caminhadas (experimentos) Nexpt = 100
3 Para cada caminhada de 1 ate Nexpt :
4 Inicialize a posicao inicial: x = 0 e y = 0
5 Para cada passo de 1 ate Npassos
6 sorteie uma das direcoes
7 calcule a nova posicao (x ou y dependendo do sorteio)
8 Calcule a distancia da posicao final ate a origem r =√
x2 + y2
9 Guarde a informacao necessaria para o calculo da mediano final da simulacao
10 Calcule a media
Met Comp
Metodo deMonte CarloSimulacoes
Introducaoao PythonApresentacao
Referencias
Inicializandopython
Operacoes
Variaveis
Exemplos
Conclusaodo Curso
Passeio Aleatorio: Exercıcio
Media das distancias para Ncaminhadas para cada valor de Npassos
1 Estude o programa passeio.c, que simula Nexp caminhadas de Npassoscada. Execute-o para, por exemplo, 100 e 1000 experimentos de 10 passoscada.
2 Modifique o programa para variar o numero de passos automaticamente de1 ate um certo valor maximo, por exemplo, Npassosmax = 1000. Oprograma deve se chamar passeio2.c
3 Para cada valor de Npassos imprima Npassos e a media das distancias .
4 Faca um grafico dos valores medios obtidos em funcao do numero depassos, 〈d〉 × Npassos .
5 Apresente o grafico para 100 experimentos e para 1000 experimentos einterprete o resultado.
Met Comp
Metodo deMonte CarloSimulacoes
Introducaoao PythonApresentacao
Referencias
Inicializandopython
Operacoes
Variaveis
Exemplos
Conclusaodo Curso
Passeio Aleatorio em uma grade em 2D
Met Comp
Metodo deMonte CarloSimulacoes
Introducaoao PythonApresentacao
Referencias
Inicializandopython
Operacoes
Variaveis
Exemplos
Conclusaodo Curso
Passeio Aleatorio - Plano em qualquerdirecao
Podemos tornar o problema um pouco mais geral - O passopode ser dado no plano, mas agora em qualquer direcao:
O angulo θ e um numero aleatorio de 0 a 2π,
x = cos(θ)
y = sin(θ)
Podemos refazer o problema anterior, supondo agora que oBebado possa andar, com igual probabilidade, em qualquerdirecao. Comparando o resultado para 10000 experimentoscom o obtido no exercıcio anterior:
Met Comp
Metodo deMonte CarloSimulacoes
Introducaoao PythonApresentacao
Referencias
Inicializandopython
Operacoes
Variaveis
Exemplos
Conclusaodo Curso
Passeio Aleatorio em qualquer direcao:Exercıcio
Media das distancias para Ncaminhadas para cada valor de Npassos
1 Modifique o programa passeio2.c para que o bebado possa andar emqualquer direcao com igual probabilidade. O programa deve se chamarpasseio3.c
2 Faca um grafico dos valores medios obtidos em funcao do numero depassos, 〈d〉 × Npassos .
3 Apresente o grafico para 1000 experimentos superposto ao do caso emque o bebado so andava nas direcoes N-S-L-O e interprete o resultado.
Met Comp
Metodo deMonte CarloSimulacoes
Introducaoao PythonApresentacao
Referencias
Inicializandopython
Operacoes
Variaveis
Exemplos
Conclusaodo Curso
Passeio Aleatorio em 2D
Met Comp
Metodo deMonte CarloSimulacoes
Introducaoao PythonApresentacao
Referencias
Inicializandopython
Operacoes
Variaveis
Exemplos
Conclusaodo Curso
Passeio Aleatorio em 3 dimensoes
Generalizando para 3 dimensoes - Podemos agora associaro problema do bebado a um problema fısico:A difusao das moleculas a temperatura ambienteAo abrir um vidro de perfume, as moleculas do perfume,apesar de terem alta velocidade, colidem com as moleculasde ar, sofrendo varias colisoes em direcoes aleatorias. Qualsera o seu deslocamento a partir da origem?Podemos analisar o comportamento da distancia emunidades do livre caminho medio, λ, a distancia mediaentre duas colisoes.
Met Comp
Metodo deMonte CarloSimulacoes
Introducaoao PythonApresentacao
Referencias
Inicializandopython
Operacoes
Variaveis
Exemplos
Conclusaodo Curso
Elemento de superfıcie:
dS = r2dΩ, dΩ = sin(θ)dθdΦ
dΩ = dgdΦ
dg = sin(θ)dθ
g(θ) = cos(θ)
Para que o numero de passosseja uniforme em dΩ adistribuicao deve ser uniformeem Φ e cos(θ), e nao em Φ e θ.
Met Comp
Metodo deMonte CarloSimulacoes
Introducaoao PythonApresentacao
Referencias
Inicializandopython
Operacoes
Variaveis
Exemplos
Conclusaodo Curso
Passeio Aleatorio
Refazendo o exercıcio do passeio aleatorio permitindo queo passo seja dado em qualquer direcao:
Ü distribuicao uniforme em Φ de 0 a 2πÜ distribuicao uniforme em g de -1 a 1Ü Obtenha θ = cos−1(g)
Ü x = cos(Φ) sin(θ) y = sin(Φ) sin(θ) z = cos(θ)
Ü r2 = x2 + y2 + z2
Met Comp
Metodo deMonte CarloSimulacoes
Introducaoao PythonApresentacao
Referencias
Inicializandopython
Operacoes
Variaveis
Exemplos
Conclusaodo Curso
Distancias medias percorridas
Que funcao pode ser ajustada a esse grafico?
Met Comp
Metodo deMonte CarloSimulacoes
Introducaoao PythonApresentacao
Referencias
Inicializandopython
Operacoes
Variaveis
Exemplos
Conclusaodo Curso
Discussao dos resultados
A distancia media nos tres exemplos apresenta o mesmocomportamento, sugerindo uma lei fısica mais fundamental.Podemos tentar ajustar a funcao
〈d〉λ≈ Nq
Para obter a potencia q
ln〈d〉λ≈ qlnN
Entao em um grafico log-log, obtemos uma reta, cujocoeficiente linear sera a potencia q.
Met Comp
Metodo deMonte CarloSimulacoes
Introducaoao PythonApresentacao
Referencias
Inicializandopython
Operacoes
Variaveis
Exemplos
Conclusaodo Curso
Obtencao do comportamento da distanciamedia
Numero de passos1 10 210 310
Dis
tan
cia
med
ia a
par
tir
da
ori
gem
1
10
/ ndf 2χ 10.3359 / 996Prob 1.0000p0 0.0019± 0.8889 p1 0.0003± 0.4995
/ ndf 2χ 10.3359 / 996Prob 1.0000p0 0.0019± 0.8889 p1 0.0003± 0.4995
Grade 2D
q = 1/2 ou〈d〉λ≈√
N
Met Comp
Metodo deMonte CarloSimulacoes
Introducaoao PythonApresentacao
Referencias
Inicializandopython
Operacoes
Variaveis
Exemplos
Conclusaodo Curso
Obtencao do comportamento da distanciamedia
Numero de passos1 10 210 310
Dis
tan
cia
med
ia a
par
tir
da
ori
gem
1
10
/ ndf 2χ 10.3359 / 996Prob 1.0000p0 0.0019± 0.8889 p1 0.0003± 0.4995
/ ndf 2χ 10.3359 / 996Prob 1.0000p0 0.0019± 0.8889 p1 0.0003± 0.4995
/ ndf 2χ 11.3966 / 996Prob 1.0000p0 0.0020± 0.8877 p1 0.0003± 0.4998
/ ndf 2χ 11.3966 / 996Prob 1.0000p0 0.0020± 0.8877 p1 0.0003± 0.4998
Uniforme 2D
Grade 2D
q = 1/2 ou〈d〉λ≈√
N
Met Comp
Metodo deMonte CarloSimulacoes
Introducaoao PythonApresentacao
Referencias
Inicializandopython
Operacoes
Variaveis
Exemplos
Conclusaodo Curso
Obtencao do comportamento da distanciamedia
Numero de passos1 10 210 310
Dis
tan
cia
med
ia a
par
tir
da
ori
gem
1
10
/ ndf 2χ 10.3359 / 996Prob 1.0000p0 0.0019± 0.8889 p1 0.0003± 0.4995
/ ndf 2χ 10.3359 / 996Prob 1.0000p0 0.0019± 0.8889 p1 0.0003± 0.4995
/ ndf 2χ 11.3966 / 996Prob 1.0000p0 0.0020± 0.8877 p1 0.0003± 0.4998
/ ndf 2χ 11.3966 / 996Prob 1.0000p0 0.0020± 0.8877 p1 0.0003± 0.4998
Uniforme 2D
Grade 2D
/ ndf 2χ 11.3966 / 996Prob 1.0000p0 0.0020± 0.8877 p1 0.0003± 0.4998
/ ndf 2χ 11.3966 / 996Prob 1.0000p0 0.0020± 0.8877 p1 0.0003± 0.4998
/ ndf 2χ 6.9488 / 996Prob 1.0000p0 0.0015± 0.9224 p1 0.0003± 0.4999
/ ndf 2χ 6.9488 / 996Prob 1.0000p0 0.0015± 0.9224 p1 0.0003± 0.4999
Uniforme 3D
q = 1/2 ou〈d〉λ≈√
N
Met Comp
Metodo deMonte CarloSimulacoes
Introducaoao PythonApresentacao
Referencias
Inicializandopython
Operacoes
Variaveis
Exemplos
Conclusaodo Curso
Exemplo: Descoberta do Higgs no ATLAS
Ü O LHC do CERN,(http://home.web.cern.ch/) na Suıca,produziu milhoes de colisoes proton-proton comenergias recordes de 7 e 8 TeV no centro de massas
Ü Os experimentos ATLAS (http://www.atlas.ch/) e CMS(http://cms.web.cern.ch/) analisaram os produtosdestas colisoes, buscando descobrir o boson de Higgs
Ü Esta partıcula era a unica prevista pelo Modelo Padraoda Fısica de Partıculas ainda nao encontrada
Ü Ela tem um papel fundamental: Permitir que aspartıculas tenham massa, sem quebrar a consistenciado modelo
Ü Em 4 de julho de 2012 ATLAS e CMS do CERNanunciaram a descoberta desta partıcula
Ü Em outubro de 2013 Peter Higgs e Francois Englertreceberam o Premio Nobel por suas teorias
Met Comp
Metodo deMonte CarloSimulacoes
Introducaoao PythonApresentacao
Referencias
Inicializandopython
Operacoes
Variaveis
Exemplos
Conclusaodo Curso
Exemplo 5: Descoberta do Higgs no ATLAS
XXXz Simulacoes !!
Met Comp
Metodo deMonte CarloSimulacoes
Introducaoao PythonApresentacao
Referencias
Inicializandopython
Operacoes
Variaveis
Exemplos
Conclusaodo Curso
Exemplo 5: Descoberta do Higgs no ATLAS
XXXz Simulacoes !!
Met Comp
Metodo deMonte CarloSimulacoes
Introducaoao PythonApresentacao
Referencias
Inicializandopython
Operacoes
Variaveis
Exemplos
Conclusaodo Curso
Introducao ao Python - Apresentacao
Criado por Guido Van Rossum no inıcio da decada de1990Linguagem de programacao de alto nıvelComo c, c++, java, ...
E uma linguagem interpretada e nao compilada
Comando ⇒ Interpretador ⇒ Resultado
Podemos tambem usar o modo script
Muito utilizada atualmente por ser mais “amigavel”E poderosa e flexıvel, sendo usada em muitasaplicacoesWeb, GUI, computacao cientıfica, desenvolvimento desoftware, administracao de sistemas, ...
Met Comp
Metodo deMonte CarloSimulacoes
Introducaoao PythonApresentacao
Referencias
Inicializandopython
Operacoes
Variaveis
Exemplos
Conclusaodo Curso
Apresentacao
Mas ...Esconde os detalhes de um ambiente de programacaomais avancado
inadequado para este aprendizado
Nao serve para computacao de alto desempenhoc, c++, FORTRAN, ...
Mas python pode “chamar” codigo compilado de outraslinguagens !!Uso integrado:
python: Configuracao, testes, analise de resultados, ...c++: calculos pesados (Monte Carlo, ajustes defuncoes,..), leitura de milhoes de eventos, ...
Met Comp
Metodo deMonte CarloSimulacoes
Introducaoao PythonApresentacao
Referencias
Inicializandopython
Operacoes
Variaveis
Exemplos
Conclusaodo Curso
Referencias
Site oficial: https://www.python.org/Tutorial do site oficial:https://docs.python.org/3/tutorial/index.htmlLearn X in Y minutes, where X=python:https://learnxinyminutes.com/docs/python/Como pensar como um cientista da Computacaousando Python:https://panda.ime.usp.br/pensepy/static/pensepy/ipython:http://ipython.readthedocs.io/en/stable/index.html
i Nos sistemas Linux normalmente ja ha um pythoninstalado
i Versoes atuais (> 3.x) tem algumas incompatibilidadescom as anteriores (2.x ou menos)
Met Comp
Metodo deMonte CarloSimulacoes
Introducaoao PythonApresentacao
Referencias
Inicializandopython
Operacoes
Variaveis
Exemplos
Conclusaodo Curso
Inicializando python
Na linha de comando do terminal linux:
helder$ python
Python 2.7.10 (default, Jul 14 2015, 19:46:27)[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwinType "help", "copyright", "credits" or "license" for more information.>>>
Para rodar um script ( ou “macro”) chamada teste.py:
helder$ python teste.py
Met Comp
Metodo deMonte CarloSimulacoes
Introducaoao PythonApresentacao
Referencias
Inicializandopython
Operacoes
Variaveis
Exemplos
Conclusaodo Curso
Operacoes elementares
Python como calculadora ...
>>> 1+12>>> 2*1020>>> 5/2 # divisao de inteiros2>>> 5.0/2 # divisao de reais2.5>>> 5%2 # operador resto (inteiros)1>>> 7**2 # isto nao temos em c ...49>>> 3*(3.+5.)/(2+6)3.0>>>
Met Comp
Metodo deMonte CarloSimulacoes
Introducaoao PythonApresentacao
Referencias
Inicializandopython
Operacoes
Variaveis
Exemplos
Conclusaodo Curso
Variaveis e tipos pre-definidos
>>> i=5 # inteiro (ja’ e’ o long do c)>>> j=3>>> i/j1>>> f=5. # real (ja’ e’ o double do c)>>> f/j1.6666666666666667>>> k=6L # inteiro de precisao ilimitada>>> k/j2L>>> c=3+2j # complexo>>> c.conjugate()(3-2j)>>> c.real3.0>>> c.imag2.0>>> b=(c*c.conjugate()).real>>> b13.0
Met Comp
Metodo deMonte CarloSimulacoes
Introducaoao PythonApresentacao
Referencias
Inicializandopython
Operacoes
Variaveis
Exemplos
Conclusaodo Curso
Mais python atraves de exemplos
segundoGrau.pystrings, comentarios, identacao, if/else, entrada esaıda, ...simpson.pylacos, funcoes, variaveis globais, ...
Met Comp
Metodo deMonte CarloSimulacoes
Introducaoao PythonApresentacao
Referencias
Inicializandopython
Operacoes
Variaveis
Exemplos
Conclusaodo Curso
Metodos Computacionais em FısicaConclusao
Ü Da linguagem C nao vimos struct Ü introducao a”classes”
Ü Vimos uma “pitada” de python ...Ü Nessa disciplina nao foram estudados aplicativos de
calculos algebricos, eles existem e sao muito uteis.Ü Atualmente todas as areas da Fısica utilizam metodos
computacionais.Ü Essa disciplina foi so uma introducao. Cada um de
voces deve aprofundar seus conhecimentos durante agraduacao, pois eles serao necessarios no futuro.
Ü Espero que, apesar do esforco que tiveram que fazer,tenham gostado.
Ü Sugestoes para melhorar o curso sao bem vindas
Met Comp
Metodo deMonte CarloSimulacoes
Introducaoao PythonApresentacao
Referencias
Inicializandopython
Operacoes
Variaveis
Exemplos
Conclusaodo Curso
Metodos Computacionais em FısicaConclusao
Ü Da linguagem C nao vimos struct Ü introducao a”classes”
Ü Vimos uma “pitada” de python ...Ü Nessa disciplina nao foram estudados aplicativos de
calculos algebricos, eles existem e sao muito uteis.Ü Atualmente todas as areas da Fısica utilizam metodos
computacionais.Ü Essa disciplina foi so uma introducao. Cada um de
voces deve aprofundar seus conhecimentos durante agraduacao, pois eles serao necessarios no futuro.
Ü Espero que, apesar do esforco que tiveram que fazer,tenham gostado.
Ü Sugestoes para melhorar o curso sao bem vindas
Met Comp
Metodo deMonte CarloSimulacoes
Introducaoao PythonApresentacao
Referencias
Inicializandopython
Operacoes
Variaveis
Exemplos
Conclusaodo Curso
Metodos Computacionais em FısicaConclusao
Ü Da linguagem C nao vimos struct Ü introducao a”classes”
Ü Vimos uma “pitada” de python ...Ü Nessa disciplina nao foram estudados aplicativos de
calculos algebricos, eles existem e sao muito uteis.Ü Atualmente todas as areas da Fısica utilizam metodos
computacionais.Ü Essa disciplina foi so uma introducao. Cada um de
voces deve aprofundar seus conhecimentos durante agraduacao, pois eles serao necessarios no futuro.
Ü Espero que, apesar do esforco que tiveram que fazer,tenham gostado.
Ü Sugestoes para melhorar o curso sao bem vindas