Académique Documents
Professionnel Documents
Culture Documents
Monte Carlo
Carlos Maciel O. Bastos
Rafaela
Lucy
Processos Markovianos
Seja yi um evento aleat
orio que ocorre em um certo instante ti . Uma sequencia
de eventos aleat
orios (y1 , t1 ), (y2 , t2 ), ..., com t1 < t2 < t3 < ..., e denominada
sequencia Markoviana quando a probabilidade de se obter qualquer evento da
depende da probabilidade de se obter o evento imediatamente anterior, ou seja,
n
ao depende de toda historia do sistema, mas apenas da probabilidade de
ocorrer o ultimo evento.
A maioria dos processos que ocorrem na natureza tem caracteristicas de processos markovianos, sendo essa descricao muito util para o estudo de sistemas.
Podemos utilizar a notacao P (yF , tF , yI , tI ) para designar a probabilidade de
um evento yF ocorrer no tempo tF , conhecendo yI , no tempo tI . As sequencias
Markovianas obedecem a relacao de Chapman-Kolmogorov:
X
P (yF , , tF , yI , tI ) =
P (yF , tF , yk , tk )P (yk , tk , yI , tI )
(1)
k
onde k varia de I ate F, varrendo todos os intantes entre tI e tF . Para uma densidade de probabilidade contnuas, podemos definir a relacao na forma integral:
Z
P (yF , , tF , yI , tI ) = P (yF , tF , yk , tk )P (yk , tk , yI , tI )dyk
(2)
A Equa
c
ao Mestra
Existe uma equac
ao que governa a evolucao temporal dos processos estocasticos
Markovianos. Essa equacao e conhecida como equacao mestra. Vamos supor
P(y,t) a probabilidade de um estado microscopio y estar em um estado em um
determinado instante t. Se calcularmos a variacao da probabilidade:
P (y, t)
= Td Tf
t
(3)
Portanto a equac
ao mestra fica:
X
P (y, t) X
=
P (y 0 , t)(y 0 7 y)
P (y, t)(y 7 y 0 )
t
0
0
y
(6)
3
tem que ser deduzida a partir de primeiros princpios, ou de forma aproximada
atraves de estimativas.
Nos estados estacionarios, a funcao nao deve depender explicitamente do
tempo, logo:
P
=0
(7)
t
logo, podemos estabelecer uma relacao para a equacao mestra na situacao de
equilbrio:
X
X
P (y 0 , t)(y 0 7 y)
P (y, t)(y 7 y 0 ) =
(8)
y0
y0
Essa equac
ao e chamada balanco detalhado, sendo uma condicao suficiente para
a condic
ao de equilbrio. O balanco detalhado estabelece que na situacao estacionaria, deve existir a mesma probabilidade de sair de um estado e ir para
outro, quanto voltar para esse mesmo estado.
Uma das maneiras que podemos atacar problemas que envolvem o balanco
detalhado geralmente consiste em escolher taxa de maneira que (y1 7 y2 ), a
fim de satisfazer o balanco detalhado no equilbrio, ou seja,
P (y 0 , t 7 )(y 7 y 0 ) = P (y, t 7 )(y 7 y 0 )
Esta escolha geralmente n
ao e unica, e temos a certeza que o sistema atingiu
um estado final de equilbrio para tempos suficientemente grandes.
M
etodo de Monte Carlo
Hist
oria e Definico
es
O termo Monte Carlo aparentemente foi usado pela primeira vez por Ulam e
Von Neumann quando estavam em Los Alamos, durante o projeto Manhatam,
para descrever uma simulac
ao estoc
astica que eles haviam desenvolvido para ser
usado no desenvolvimento da bomba atomica.
Este metodo envolvia probabilidades, da a origem do nome Monte Carlo,
que e o mesmo nome do famoso cassino de Monte Carlo em Monaco. Alguns
autores preferem usar o termo simulacao estocastica para todos os metodos
que envolvem probabilidades, reservando Monte Carlo apenas para a integracao
Monte Carlo. Outros autores n
ao fazem esta distincao, entendendo por Monte
Carlo todo o metodos estoc
astico.
Em particular, podemos definir Monte Carlo como:
.
Monte Carlo e a arte de aproximar uma expectativa atraves de uma amostragem
media de uma func
ao utilizando numeros aleat
orios
.
Um dos motivos de definirmos assim o metodo e o fato dele usar a Lei dos
Grandes Numeros para aproximar uma expectativa (probabilidade).
Com o advento dos computadores, foi possvel melhorar a geracao de numeros aleatorio, com a criac
ao de numeros pseudo-aleatorios gerados em computadores, o metodo hoje e um dos mais importantes em simulacoes nas mais
diversas area, principalmente em simulacoes em fsica, qumica e biologia. Apesar de ser um metodo que necessite de bastante recurso computacional, e muito
vi
avel na resoluc
ao de problemas complexos.
M
edias e Probabilidades
Para uma vari
avel aleat
oria discreta X com valores possveis (x1 , x2 , x3 , ..., xn )
e com as suas probabilidades, que tem uma certa densidade de probabilidade
dada pela func
ao fX (x), onde fX (x) e uma funcao positiva. Pode-se calcular o
valor esperado pela serie:
(g(X)) =
g(x)fX (x)
(9)
g(x)fX (x)dx
(10)
gn (x) =
1X
g(xi )
n i=1
(11)
1X
g(X)
gn (X) =
n i=1
(12)
(13)
Calculo da Area
de um Circulo
Para ter uma ideia geral do metodo, podemos calcular o valor da area de um circulo de raio 1, ou seja, o numero . Vamos supor uma circulo centrado em (0,0),
onde podemos inscrever o circulo em um quadrado de lado 2. Ou seja, podemos
y[1, 1]
Sorteando aleat
oriamente uma certa quatidade N de pontos dentro do quadrado,
com isso ir
a cair pontos tambem dentro do crculo, onde definimos n o numero de
pontos que cairam dentro do crculo. Logo podemos escrever a seguinte relacao:
a
n
=
=
A
N
4
Note que n < N , uma vez que pontos caem fora da area do circulo. Atraves
dessa relac
ao podemos calcular o valor de :
= 4(
n
)
N
n
e o valor medio dos pontos que caem dentro do circulo,
Note que a frac
ao N
ou seja, como foi visto na sec
ao anterior, se o valor de N a media tende
ao valor de , ou seja, podemos observar o que foi discutido acima. Para exemplificar, abaixo esta alguns valores de de acordo com o numero de pontos
N:
N = 10 = 2.7999999999999998
N = 100 = 3.2000000000000002
N = 1000 = 3.1640000000000001
N = 10000 = 3.1212000000000000
N = 100000 = 3.1425600000000000
N = 1000000 = 3.1433520000000001
N = 10000000 = 3.1428560000000001
N = 100000000 = 3.1416674400000000
Lembrando que o valor de e aproximadamente 3.141592653589793.
Esse programa pode ser encontrado no Apendice I. Como trabalhamos com
numeros aleat
orios, ocorrem flutuacoes em torno de uma media, com isso podemos usar conceitos de estatisticas para estimar o erro. Como ocorrem flutuacoes,
existe uma certa variancia, ou seja, podemos calcular um desvio quadratico.
6
O n
umero medio e dado por:
n=
N
1 X
ni
N i=1
Como a variancia em torno da media e independente e igualmente distribuidas, podemos concluir que:
2 =
N
1 X 2
1
1
1
ni = 2 = 2 N n2 i = 2 = n2 i = = ni
2
N i
N
N
N
M
etodo de Monte Carlo- Metr
opolis
No caso do problema do modelo de Ising, temos que o Hamiltoniano, como ja
foi visto e dado por:
X
X
H=J
Si Sj H
Si
<i,j>
onde Si = 1.
Para o modelo em 1 dimensao, vimos que nao existe transicao de fase. No
caso bidimensional e com Condicoes Periodicas de Contorno, e possvel mostrar
que existe uma transic
ao de segunda ordem com divergencia no calor especfico
e na suceptibilidade.
Algoritmo de Metr
opolis
A ideia geral do algoritmo de Metropolis consiste em escolher uma sequencia
de configurac
oes independentes, constituindo uma cadeia de Markov. As configurac
oes iniciais geradas estao longe da situacao de equilbrio, mas a medida
que o tempo pasa, passa a ser gerada muitas configuracoes tpicas da situacao
de equilbrio, onde a partir da e possvel coletar as medias das grandezas interessadas.
7
As configurac
oes de uma rede sao geradas a partir de estados anteriores,
utilizando uma probabilidade de transicao, que depende da diferenca de energia
do estado inicial e final.
A sequencia de estados produzidos nao segue a ordem de tempo, esse e
um dos grandes problemas do metodo, uma vez que nao e possvel acompahar
a evoluc
ao temporal do sistema. O metodo mais utilizado quando se deseja
estudar a evoluc
ao no tempo e a Dinamica Molecular.
No caso do Monte Carlo, existe o chamado tempo de Monte Carlo , para
definir uma sequencia, que varia de acordo com o problema, mas nao corresponde a evoluc
ao temporal do sistema. Uma analogia do tempo de Monte
Carlo e pensar em um filme, onde existe uma sequencia de fotos, passando a
sequencia com que foram tiradas elas mostram a evolucao temporal, no caso do
Monte Carlo e como se recortassemos todas as fotos e as embaralhassemos e
colocassemos em uma ordem qualquer. Esse seria o tempo Monte Carlo.
Como foi introduzido rapidamente, as cadeias de Markov esta no coracao
do metodo de Metropolis. Como ja vimos a probabilidade de transicao por
unidade de tempo entre as configuracoes y e y 0 , segue a equacao mestra:
X
P (y, t) X
=
P (y 0 , t)(y 0 7 y)
P (y, t)(y 7 y 0 )
t
0
0
y
No equilbrio, ou seja, ap
os percorrer varias configuracoes (um numero de elementos grandes de sequencia) as probabilidades devem tender para os valores
de Gibbs,
P0 (y) =
1
exp(H)
Z
Onde Z e a func
ao Canonica de particao. Como ja vimos, uma outra condicao
necess
aria e suficiente para o equilbrio e dada pela equacao do balanco detalhado:
P0 (y)(y 7 y 0 ) = P0 (y 0 )(y 0 7 y)
logo, podemos facilmente concluir que
(y 7 y 0 )
1
= exp(H)
0
(y 7 y)
Z
Note que esta equac
ao n
ao determina a probabilidade de transicao de forma
unvoca, podendo haver varias escolhas desde que respeite esta relacao.
A relac
ao escolhida por Metr
opolis:
(y 7 y 0 ) =
1
exp(H)
(y 7 y 0 ) =
H > 0
H < 0
9
tripleto tem energia mais baixa temos interacao ferromagnetica. Ao observarmos o hamiltoniano de Heisenberge (ate mesmo o de Ising) e possvel concluir
que temos ent
ao ferromagnetismo com J > 0 e antiferromagnetismo com J < 0.
Como ja foi dicutido anteriormente, materiais ferromagneticos apresentam magnetizac
ao espont
anea
abaixo de uma certa temperatura crtica Tc e nula a partir dessa temperatura. Nessa simulc
ao utilizando o metodo de Metropolis, simulamos uma rede
quadrada de 2500
atomos, utilizamos 50000 passos de Monte Carlo, J=1, campo
externo = 0. Para o modelo de Ising em 2 dimensoes, e possvel perceber esse
aparecimento da magnetizac
ao espontanea:
10
Como o sistema e finito, ocorre uma curva, ja que temos poucos atomos
no sistema (nesse caso 2500 atomos), no limite termodinanico essa curva deve
divergir.Ocorre tambem uma divergencia na suceptibilidade magnetica:
11
12
Note que para baixas temperaturas os spins estao ordenados, sendo a origem
da magnetizac
ao espontanea. Conforme a temperatura aumenta e se aproxima
da temperatura crtica e possvel observar bolsoes, onde aparece uma correlac
ao de longa distancia. Apos a temperatura crtica o sistema comeca a flutuar muito, onde os spins estao tanto para cima como para baixo, onde quando
calculada sua media e zero.
Materiais Antiferromagn
eticos
O antiferromagnetismo e o ordenamento magnetico de todos os momentos magneticos
de uma amostra, na mesma direcao mas em sentido inverso (por pares, por exemplo, ou uma subrede frente a outra).
Como o ferromagnetismo, a interacao antiferromagnetica se destroi a alta
temperatura por efeito da entropia. A temperatura acima da qual nao se aprecia o antiferromagnetismo se chama temperatura de Neel. Acima desta, os
compostos s
ao tipicamente paramagneticos.
Os antiferromagnetos nao tem uma magnetizacao espontanea macroscopica
a baixas temperaturas. Abaixo de uma temperatura critica TN, a Magnetizacao
13
e a susceptibilidade diminuem com a temperatura tendendo a 0 quando T 0.
Acima de TN o comportamento e de um paramagneto com uma temperatura de
Curis Weiss negativa. Este comportamento que foi previsto por Neel, e devido
a um acoplamento antiparalelo de momento magneticos iguais e vizinhos, e que
foi confirmado por experimentos de difracao de neutrons.
Os dados abaixo foi simulado um antiferromagneto em uma rede de 2.500
atomos, J=-1, Campo externo nulo, e com 50.000 passos de Monte Carlo.
14
15
16
APENDICES
17
19
APENDICE I - C
alculo do numero pi
Nesse calculo consideramos, como foi descrito, uma circunferencia de raio 1
inscrita em um quadrado de aresta 2 esse programa em linguagem fortran exemplifica a soluc
ao do problema do calculo da area desse circulo atraves do
Metodo de Monte Carlo.
!
!
!
!
!
!
!
!
****************************************************************
Calculo de Area de um circulo de raio 1
Carlos M. O. Bastos, Luciana, Rafaela
Trabalho da disciplina de Mecanica Estatstica
Departamento de Fsica - DF
Universidade Federal de S
ao Carlos - Brasil
****************************************************************
20
write (*,*) a= , 4.d0*aig , +-, 4.d0*erro
write (*,*) MC/exato , 4.d0*aig/area
end program
21
read (1,*) cpp
! Definindo a rede inicial
T=Ti
beta =(1/Ti)
open(10, file=mxT.dat)
open(12,file=ExT.dat)
open(14,file=XxT.dat)
open(15,file=cxT.dat)
if (istart.eq.1) then
do j = 1,N
do i = 1,N
s(i,j) = 1
end do
end do
Else
do j= 1, L
do i = 1, L
call randomn umber(rn)
if (rn.le.0.5) then
s(i,j) = -1
else
s(i,j) = 1
end if
end do
end do
end if
j=0.d0
i=0.d0
do while (T.le.Tf)
call initr andoms eed()
rmq = 0.d0
req = 0.d0
!Escolhendo um spin da rede
rM = 0.d0
rM1 = 0.d0
rM2 = 0.d0
rE = 0.d0
icont = 0.d0
do k=1,N
rM(k) = 0.d0
rener(k) = 0.d0
do j = 1, L
do i = 1, L
! impondo cond. period. de contorno
i1 = L - mod(L-i+1,L)
i2 = 1 + mod(i,L)
j1 = L - mod(L-j+1,L)
j2 = 1 + mod(j,L)
sj = s( i1, j ) + s( i2, j ) + s( i, j1 ) + s( i, j2 ) !somatoria de todos os
primeiros vizinhos
22
. !Calculando a prob. de flipar
p = exp( -2.d0 * beta * ( cJ * s(i,j) * sj + H * s(i,j) ) )
if (p.ge.1.d0) then
s(i,j) = -s(i,j)
icont = icont + 1
else
call randomn umber(r)
if (r.le.p) then
s(i,j) = -s(i,j)
icont = icont + 1
endif
endif
!somando a magnetizacao
. rM(k) = rM(k) + s(i,j)
!verificando as C.P.C.
if (i.ge.2.and.j.ge.2) then
rener(k) = rener(k) - cJ * s(i,j) * ( s(i-1,j) + s(i,j-1) ) - H * s(i,j)
endif
if (i.eq.L) then
rener(k) = rener(k) - cJ * s(1,j) * s(L,j) - H * s(1,j)
endif
.
if (j.eq.L) then
rener(k) = rener(k) - cJ * s(i,1) * s(i,L)
endif
end do
end do
! C
alculo das Medias
rM(k) = rM(k) / dfloat(L**2)
rener(k) = rener(k) / dfloat(L**2)
end do
req=0.d0
rmq=0.d0
rmm=0.d0
rme = 0.d0
igf=cpp*N
ihkj = igf
k= igf
do while((ihkj).le.N)
rmq = rM(k)**2+ rmq
rmm = rM(k) + rmm
rme = rener(k) + rme
req = rener(k)**2 + req
k=k+1
ihkj=ihkj+1
end do
!print*, Media da Magnetizacao: ,rmm/dfloat(ihkj) , Media da energia:,rme/dfloat(ihkj)
open(5,file=mapeamento.dat)
rmqf=0.d0
23
reqf=0.d0
rmqf= (rmq/dfloat((N-igf)))-(rmm/dfloat((N-igf)))**2
reqf= (req/dfloat((N-igf)))-(rme/dfloat((N-igf)))**2
write(*,*) T = , (T), E: , rme/dfloat(N-igf),m: , rmm/dfloat((Nigf)),X:, rmqf,c:,reqf
write(10,*) (T), rmm/dfloat(N-igf)
write(12,*)(T), rme/dfloat(N-igf)
write(14,*) (T),rmqf
write(15,*) (T), reqf
T=T+rdt
beta=(1/T)
end do
do j = 1,L
do i = 1,L
if (s(i,j).eq.1) then
write(5,*) i,j
end if
icont=icont+1
end do
end do
close(5)
close(10)
close(12)
close(14)
close (15)
end
SUBROUTINE initr andoms eed()
integer*4 rdt,rds,clock,rdj,rdn
INTEGER, DIMENSION(:), ALLOCATABLE :: seed
. CALL RANDOMS EED(size = rdn)
ALLOCATE(seed(rdn))
.
CALL SYSTEMC LOCK(COU N T = clock)
.
seed = rdclock + 37 * (/ (i - 1, i = 1, rdn) /)
CALL RANDOMS EED(P U T = seed)
DEALLOCATE(seed)
END SUBROUTINE
24
0 ! Campo Externo aplicado
1.5d0 !Temperatura inicial
3.5d0 !Temperatura final
5.0d-3 !incremento da Temperatura
0.20d0 !porcentagem dos passos iniciais a serem desprezados na termalizacao
( 1)