Você está na página 1de 31

Seminario de Investigacin

Mtodo de Monte Carlo para Simulacin Computacional


Gerson Esteban Valenzuela Gonzlez
30 de marzo de 2010
Resumen
En el presente seminario se revisan los conceptos bsicos detrs del mtodo de Monte Car-
lo. Varios mtodos clsicos para generar nmeros pseudo-aleatorios son revisados en primera
instancia, ya que estos constituyen el punto de partida para cualquier simulacin estocstica.
La solucin de integrales denidas haciendo uso de nmeros aleatoriamente distribuidos
se presenta como una herramienta poderosa en comparacin a los mtodos determinsticos de
solucin de integrales (i.e., reglas de Simpson), cuando aquellas son dobles, triples, o en general,
son integrales sobre un hiper espacio. En estos casos, donde los grados de libertad aumentan
considerablemente, los mtodos determinsticos se tornan lentos y complicados de programar. En
comparacin, Monte Carlo es conservativo en el tiempo de clculo y muy simple de programar.
El estudio de sistemas fsicos mediante Monte Carlo, tal como un sistema monoatmico, es
ms complejo. Las posibles conguraciones de las partculas del sistema, el espacio de fase, est
distribuido con densidad de probabilidad bien denida por la mecnica estadstica. En particular
para sistemas a temperatura constante dicha distribucin no es uniforme. En este contexto, las
cadenas de Markov surgen como herramienta fundamental para crear conguraciones de un
sistema fsico con probabilidad proporcional a la teoricamente denida. La combinacin de las
cadenas de Markov y el mtodo de Monte Carlo convergen en el mtodo de Metrpolis, el cual
es la opcin adecuada para simular sistemas fsicos de manera estocstica.
ndice general
1. Introduccin 3
2. Nmeros pseudo-aleatorios 5
2.1. Congruencial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2. Algoritmos de cambio de registro . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3. Generador Fibonacci desfasado . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.4. Otros generadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.5. Distribuciones no uniformes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.6. Ejemplo: distribucin de velocidades de partculas . . . . . . . . . . . . . . . . . 13
3. Integracin numrica con Monte Carlo 14
3.1. Integracin unidimensional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2. Integracin bidimensional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.3. Estimacin de error en la integracin . . . . . . . . . . . . . . . . . . . . . . . . 18
3.4. Importance sampling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4. Monte Carlo en simulacin molecular 23
4.1. Cadenas de Markov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.2. Sistema molecular y mecnica estadstica . . . . . . . . . . . . . . . . . . . . . . 24
4.3. Modelo de Ising ferromagntico: Introduccin . . . . . . . . . . . . . . . . . . . 25
4.4. Modelo de Ising ferromagntico: Simulacin . . . . . . . . . . . . . . . . . . . . 26
2
Captulo 1
Introduccin
Los mtodos estocsticos y sus diversas aplicaciones pertenecen a un rea que no tiene lugar
en la formacin tradicional del ingeniero qumico en la Universidad de Concepcin, lo cual puede
ser justicado en la medida que la mayora de los problemas de procesos qumicos son resueltos
por mtodos determinsticos o por la experiencia. En cambio, el investigador dedicado a estudios
de postgrado generalmente encuentra resultados que han sido deducidos por medio de mtodos
de simulacin; se reere a esto el uso extensivo de computadores para resolver problemas usando
la menor cantidad de informacin experimental posible y, por tanto, haciendo fuerte uso de
conceptos bsicos.
Es as como el Departamento de Ingeniera Qumica, a nivel de postgrado, enfrenta el uso de
mtodos estocsticos en un contingente limitado e importante de investigadores que desarrollan
trabajos de tesis de magister y/o doctorado. Ejemplos especcos son el trabajo de Roberto
Rozas sobre modelacin de permeabilidad de materiales porosos, el de Cecilia Bustos sobre
modelacin de ujo multifsico en materiales porosos, el de Javier Quispe sobre modelacin
en sedimentacin y el de Luis Segura sobre simulacin de secado de materiales porosos. Otros
esfuerzos mediante Monte Carlo tambin se han dado en grupos de investigacin del Profesor
Andrs Meja y Profesor Hugo Segura.
El mtodo de Monte Carlo (MC) es un mtodo estocstico que consiste en resolver un
problema usando la fuerza bruta. Por ejemplo, si se quisiera saber la probabilidad de que como
resultado de lanzar una moneda salga sello, la va ms directa es lanzar la moneda una gran
cantidad de veces y contar las veces en que el resultado es sello. Naturalmente llevar a cabo
3
CAPTULO 1. INTRODUCCIN 4
esta empresa es en la prctica tedioso, pero si se establecen en un algoritmo reglas simples que
representen en forma dedigna el experimento, un computador hace posible simular sin mayor
esfuerzo cosas que en la prctica parecen imposible.
Para todo n que requiera de un mtodo de Monte Carlo, es necesario ser capaz de ge-
nerar nmeros de igual probabilidad. Nmeros de esta naturaleza, llamados pseudo-aleatorios,
representarn el concepto bsico de repetir muchas veces y en forma independiente una accin
(lanzar la moneda una y otra vez). Tal herramienta encuentra utilidad en la solucin de inte-
grales denidas y en la generacin de nmeros distribuidos con una probabilidad determinada
entre otras.
As, el objetivo del presente seminario de investigacin es estudiar las herramientas cons-
tituyentes del mtodo de Monte Carlo, programarlas en FORTRAN 90 y aplicar el mtodo a
simulacin molecular. En primera instancia de estudiaran algunas formas de generar nmeros
pseudo-aleatorios y luego el uso de esta herramienta para solucionar integrales denidas. Como
segunda aplicacin de estos nmeros se ver la forma en que es posible producir nmeros bajo
certeras densidades de probabilidad. Finalmente se presentan las bases del mtodo de Metr-
polis, que es una serie de estrategias sobre el mtodo de Monte Carlo para su aplicacin en
simulacin molecular, y se aplica al modelo ferromagntico de Ising.
Captulo 2
Nmeros pseudo-aleatorios
Muchos de los generadores de nmeros pseudo-aleatorios (RNG) produce una secuencia de
elementos por medio de una transformacin lineal en alguna estructura algebraica. En este
contexto los tres mtodos ms utilizados son: Congruencial, Algortimos de cambio de registro
y generadores Fibonacci desfasado (LFG). Todos estos mtodos reciben el nombre genrico de
simple RNG [1]. Los nmeros aleatorios as generados deben cumplir la mayor cantidad de
las exigencias siguientes [2]:
deben distribuirse en forma uniforme,
ser no correlacionados,
nunca deben repetirse entre si,
deben satisfacer los test de aleatoriedad,
ser reproducibles,
deben ser ajustables por medio de un valor inicial (semilla),
deben ser generados rpidamente sin consumo excesivo de memoria.
Hay varios test que permiten identicar problemas con los generadores. Uno de los ms simples
es dividir el intervalo [0,1] en una gran cantidad de subsegmentos, generar los nmeros aleatorios
y vericar la uniformidad en la cantidad de nmeros en cada subsegmento del intervalo. Otro
test consiste en gracar dos o tres secuencias de nmeros aleatorios, generados con distinta
5
CAPTULO 2. NMEROS PSEUDO-ALEATORIOS 6
semilla, y buscar estructuras regulares [3]. La descripcin de varios test y su aplicacin a los
generadores mencionados puede ser revisada en [1].
2.1. Congruencial
Llamado tambin mtodo multiplicativo es una forma simple y muy popular de generar
secuencias de nmeros pseudo-aleatorios [3]. La secuencia es generada mediante la combinacin
X
n
= (cX
n1
+ a
0
)MOD m (2.1)
Todos los elementos de la serie son nmeros enteros, m es el mdulo, c y a
0
son multiplicadores
y X
n
es el nmero aleatorio generado como el resto de la divisin de (cX
n1
+a
0
) y m, operacin
representada por la funcin MOD. El mximo periodo alcanzado con este tipo de generadores
es m siempre que c y a
0
sean correctamente elegidos [2]. La serie necesita del valor inicial X
0
conocido como semilla que debe ser impar para el desempeo adecuado del generador. Nme-
ros pseudo-aleatorios en el intervalo [0,1] son normalmente utilizados y se consiguen mediante
la divisin
U
n
= X
n
/(m1) (2.2)
donde U
n
es real en [0,1]. Segn referencia [3] un buen generador multiplicativo es el 32-bit
lineal congruential algorithm (CONG)
X
n
= (16807 X
n1
)MOD (2
31
1) (2.3)
es cual es muy fcil de implementar tal como se muestra en el cdigo FORTRAN de la Figura
2.1. Como se ve, los parmetros de entrada son el nmero de trminos i y la semilla X
0
. Este tipo
de algoritmo es fcilmente integrable como una subrutina de un programa principal pasando los
nmeros pseudo-aleatorios almacenados en U
1
para los nes que sean convenientes.
Uno de los principales problemas de mtodo congruencial es que el ltimo bit de los n-
meros producidos es correlacionado lo que puede afectar en simulaciones donde existen muchas
dimensiones. Otro problema relacionado a este mtodo es que el periodo mximo del generador,
para un procesador de 32 bit, es 2
32
10
9
que puede ser sobrepasado en unos pocos segundos
con la actual velocidad de los procesadores. [2]
CAPTULO 2. NMEROS PSEUDO-ALEATORIOS 7
Program CONG
implicit none
integer*8 i, X
0
, c, j, m, X
1
double precision, dimension(:), allocatable :: U
1
i = 10; X
0
= 23117 ! nmero de trminos y semilla
c = 16807; m = 2**31 1 ! multiplicador y mdulo
allocate(U
1
(i))
do j = 1, i
X
1
= mod(c X
0
, m)
X
0
= X
1
(j)
U
1
(j) = dble(X
1
)/dble(m1)
end do
end program
Figura 2.1: Cdigo del algoritmo CONG en FORTRAN
2.2. Algoritmos de cambio de registro
Este tipo de algoritmos resuelven algunos de los problemas asociados al mtodo congruencial.
En primer lugar es generada una tabla de nmero pseudo-aleatorios (i.e. mtodo CONG) de la
cual se generan nuevos nmeros aleatorios mediante combinacin de los encontrados en la tabla:
X
n
= X
np
.XOR.X
nq
(2.4)
donde el operador .XOR. es igual a (X
np
+ X
nq
)MOD 2 cuando X
np
y X
nq
son variables
lgicas. Esta denicin de la frmula recursiva deriva de que este tipo de algoritmos son pro-
gramables por hardware [4], en donde las variables son binarias. La programacin en software
mediante FORTRAN es simplicada por la funcin IEOR(I, J) la que convierte los enteros I
y J al sistema binario I
bin
y J
bin
, evala (I
bin
+ J
bin
)MOD 2 y convierte el resultado al sistema
decimal. Valores tpicos de p y q son mostrados en la Tabla 2.1. Cuando p = 250 se obtiene el
generador R250, el comnmente usado de esta clase [3]. Un cdigo de implementacin de este
generador es mostrado en la Figura 2.2 el cual es muy simple de integrar como parte de un
programa de Monte Carlo.
CAPTULO 2. NMEROS PSEUDO-ALEATORIOS 8
Cuadro 2.1: Valores tpicos de p y q.
p q
98 27
250 103
1279 216, 418
9689 84, 471, 1836, 2444, 4187
Program R250
implicit none
integer*8 i, X
0
integer*8 c, j, m,p, q
integer*8, dimension(:), allocatable :: X
1
double precision, dimension(:), allocatable :: U
1
i = 10000; X
0
= 75911 ! nmero de trminos y semilla
p = 250; q = 103
allocate(X
1
(p + i))
allocate(U
1
(i))
! inicio de CONG
c = 16807; m = 2**31 1 ! multiplicador y mdulo
do j = 1, p
X
1
(j) = mod(c X
0
, m)
X
0
= X
1
(j)
end do
! n de CONG
do j = p + i, p + 1
X
1
(j) = ieor(X
1
(j p), X
1
(j q))
U
1
(j p) = dble(X
1
(j))/dble(m1)
end do
end program
Figura 2.2: Cdigo FORTRAN del algoritmo R250 de cambio de registro iniciado con el mtodo CONG.
CAPTULO 2. NMEROS PSEUDO-ALEATORIOS 9
2.3. Generador Fibonacci desfasado
Tal como su nombre lo indica, el mtodo proviene de la serie de Fibonacci
X
n
= X
n1
+ X
n2
(2.5)
la cual es modicada desfasando los ndices de los sumandos y cambiando la operacin aritm-
tica. En general,
X
n
= X
np
X
nq
(2.6)
donde el operador representa una operacin aritmtica binaria: adicin, sustraccin o multi-
plicacin. Las dos primeras pueden ser entre nmeros de coma otante en tanto que la multi-
plicacin slo entre nmeros enteros. La generacin de nmeros aleatorios, en forma similar al
mtodo congruencial, pasa por aplicar la operacin MOD entre el resultado de y el mdulo
m. De esta forma, se dene el LFG mediante la recurrencia
X
n
= X
np
X
nq
(2.7)
donde representa al combinacin de la operacin y la funcin MOD. Note que cuando
es multiplicacin, m = 2 y X
i
son variables lgicas, se recupera el algoritmo de cambio de
registro. El algoritmo se inicia con una tabla de p nmero aleatorios y los nuevos nmeros se
obtienen de la combinacin denida por . Este mtodo tiene un periodo mximo bastante
mayor al obtenido con el mtodo congruencial, en particular, si el mdulo es m = 2
b
(donde b
son los bit de precisin de las variables X
i
), cuando = .XOR. el periodo mximo es de 2
p
1.
Cuando es adicin o sustraccin el periodo mximo es 2
b1
(2
p
1) y si es multiplicacin
el periodo es 2
b1
(2
p
3) [2]. Test empricos han mostrado que las mejores propiedades son
obtenidas cuando se utiliza multiplicacin, seguido de cerca por adicin y sustraccin dejando
al mtodo de cambio de registro en psima posicin [2, 1]. Segn Marsaglia [1] la combinacin
p = 17, q = 5 y = + ha mostrado periodo mximo 2
17
(2
31
1). Designando esta conguracin
como F(17,5,+), el cdigo R250 mostrado en la Figura 2.2 es modicado fcilmente a F(17,5,+)
obteniendo mayor calidad en la generacin aleatoria de nmeros. Esto se muestra en la Figura
2.3.
CAPTULO 2. NMEROS PSEUDO-ALEATORIOS 10
Program F17P5
implicit none
integer*8 i, X
0
integer*8 c, j, m,p, q
integer*8, dimension(:), allocatable :: X
1
double precision, dimension(:), allocatable :: U
1
i = 15302; X
0
= 25913 ! nmero de trminos y semilla
p = 17; q = 5
allocate(X
1
(p + i))
allocate(U
1
(i))
! inicio de CONG
c = 16807; m = 2**31 1 ! multiplicador y mdulo
do j = 1, p
X
1
(j) = mod(c X
0
, m)
X
0
= X
1
(j)
end do
! n de CONG
do j = p + i, p + 1
X
1
(j) = mod(X
1
(j p) + X
1
(j q), m)
U
1
(j p) = dble(X
1
(j))/dble(m1)
end do
end program
Figura 2.3: Cdigo del algoritmo F(17,5,+) en FORTRAN. Pequeas modicaciones a R250 supone,
tericamente, mejores propiedades de los nmeros aleatorios.
CAPTULO 2. NMEROS PSEUDO-ALEATORIOS 11
2.4. Otros generadores
Se ha mostrado que mediante la combinacin aditiva de dos diferentes generadores congruen-
ciales de 32 bit, se puede producir uno que pasa todos los test conocidos con un gran periodo
de alrededor 10
18
, bastante mayor al periodo mximo de este tipo de generadores. En general,
la combinacin de cualquiera dos generadores mediante la operacin aritmtica mejora la
aleatoriedad respecto a los mtodos independientes.
Los RNG presentados dan un marco conceptual suciente para los nes del presente semi-
nario. Los cdigos en FORTRAN presentados en las Figuras 2.1, 2.2 y 2.3 van a ser utilizados
en los captulos siguientes donde se presentan varias situaciones en las que el mtodo de Monte
Carlo es utilizable.
2.5. Distribuciones no uniformes
Para muchos casos resulta necesario disponer de nmeros aleatorios distribuidos con cier-
ta probabilidad no uniforme. Por ejemplo, las velocidades de los tomos o molculas que se
encuentran en un espacio denido se ajustan bien a la distribucin de Maxwell-Boltzmann de
velocidades, la que es una distribucin Gaussiana, y la capacidad de generar nmeros aleatorios
con dicha distribucin es muy til en simulacin molecular.
A partir de un conjunto de nmeros aleatorios con distribucin uniforme cualquier otra dis-
tribucin puede ser obtenida. Sea f(x) una funcin de distribucin y F(y) la funcin acumulada
de f(x) entre e y:
F(y) =
_
y

f(x)dx (2.8)
Entonces asignando nmeros aleatorios con distribucin uniforme a F(y), el conjunto de nmeros
y
i
se distribuye de acuerdo a f(x). Esta es la forma ms general para obtener distribuciones
distintas a la uniforme [3]. La distribucin normal o Gaussiana est dada por:
f(x) =
1

2
e

(x)
2
2
2
(2.9)
donde es la desviacin estandar de la distribucin y el valor medio. La funcin acumulada
de f es la integral
F(y) =
_
y

2
e

(x)
2
2
2
dx (2.10)
CAPTULO 2. NMEROS PSEUDO-ALEATORIOS 12
Mediante el cambio de variables s = (x )/(

2) y t = (y )/(

2) la funcin acumulada
se reduce a
F(t) =
1
2
[1 + erf(t)] (2.11)
erf(t) =
2

_
t
0
e
s
2
ds (2.12)
Entonces, se asignan F(t)
i
como nmeros aleatorios de distribucin uniforme, se calculan los
erf(t
i
) = 2F(t)
i
1 y los t
i
se obtienen como la inversa de erf(t
i
). Luego se pueden calcular los x
i
del cambio de variables x
i
= t
i

2 +. La evaluacin de la inversa de la funcin de error no es


trivial y se puede recurrir a una tabla de interpolacin para resolver el problema, sin embargo,
algunos autores han propuesto formas ms simples para obtener una distribucin normal. Si
x
1
y x
2
son nmeros uniformemente distribuidos, se pueden obtener nmeros de distribucin
normal y
1
e y
2
mediante el mtodo de Box-Muller:
y
1
= (2 lnx
2
)
1/2
cos(2x
1
) (2.13)
y
2
= (2 ln x
2
)
1/2
sen(2x
1
) (2.14)
de esta forma un vector x de nmeros aleatorios uniformes puede ser convertido fcilmente a
un vector y de nmeros de distribucin normal.
Figura 2.4: 100000 nmeros pseudo-aleatorios distribuidos uniformemente con el generador de Fibo-
nacci desfasado F(17,5,+) y su conversin a la distribucin normal mediante el mtodo de Box-Muller
CAPTULO 2. NMEROS PSEUDO-ALEATORIOS 13
2.6. Ejemplo: distribucin de velocidades de partculas
En la simulacin molecular por dinmica molecular (MD) se resuelven las ecuaciones de
movimiento de Newton en el tiempo obteniendo un conjunto de posiciones y velocidades de
las partculas (molculas en el caso ms general) de donde es posible calcular propiedades
termodinmicas. MD es un mtodo determinstico y como tal requiere de condiciones iniciales,
tanto de posicin como de velocidades de cada partcula, para la integracin de las ecuaciones
de movimiento. En este sentido se suele asignar las velocidades de la distribucin de Maxwell-
Boltzmann,
f(v
i
) =
_
m
2k
b
T
_
0.5
exp
_

mv
2
i
2k
B
T
_
(2.15)
la cual es una distribucin gaussiana de la variable aleatoria v en la i-sima direccin. La
distribucin tiene promedio v
i
= 0 y varianza
2
= k
B
T/m.
f(v
i
) =
1

2
exp
_

v
2
i
2
2
_
(2.16)
Con un generador de nmero pseudo-aleatorios uniformemente distribuidos y el mtodo de Box-
Muller, asignar velocidades v
i
a un conjunto de N partculas se vuelve una tarea prcticamente
trivial. Considere que y
i
= f(v
i
) es la densidad de probabilidad de t
i
= v
i
/ que se distribuye
en forma normal. Entonces t
i
se obtiene con el mtodo de Box-Muller y v
i
se determina como
v
i
= t
i
. Para obtener distintas velocidades en x, y y z basta con asignar una semilla distinta
para el RNG en cada caso.
Figura 2.5: Distribucin de velocidades v
x
, v
y
, v
z
de Maxwell-Boltzmann para 100000 partculas me-
diante nmeros t
x
, t
y
, t
z
normalmente distribuidos generados con el mtodo de Box-Muller.
Captulo 3
Integracin numrica con Monte Carlo
La integral denida puede admitir tres tipos de solucin: analtica, numrica determinstica
y numrica estocstica. La primera se basa en el segundo teorema fundamental del clculo, lo
que lleva a resolver la integral indenida asociada al problema mediante reduccin de la integral
a formas ms simples que admitan solucin por reglas de antiderivacin. Por ejemplo la solucin
de
_
b
a
ln(x)dx segn el segundo teorema fundamental es f(b) f(a) donde f es la antideriva-
da de F(x) = ln(x). La integral indenida
_
F(x)dx no admite una regla de antiderivacin
directa y debe ser simplicada mediante el mtodo de separacin de variables. De acuerdo a
ello,
_
F(x)dx = xln(x)
_
dx = x(ln(x) 1) en donde se aplic una regla de antiderivacin
directamente a
_
dx. Con ello, la solucin de la integral denida es b(ln(b) 1) a(ln(a) 1).
Muchos problemas son intratables por este mtodo, sobre todo cuando las ecuaciones provienen
de problemas fsicos antes que de acadmicos, fundamentalmente porque no siempre existe la
solucin analtica a una integral indenida. Un ejemplo clsico es
_
e
t
2
dt, constituyente funda-
mental de la funcin de error, erf(x) = 2
0.5
_
x
0
e
t
2
dt, presente en problemas de fenmenos de
transporte, probabilidades, etc.
Los problemas sin solucin analtica deben ser aproximados mediante mtodos numricos de
integracin. Los aqu denominados determinticos se reeren a la discretizacin del intervalo
de integracin [a, b] en subintervalos de igual longitud x. Para muchos nes es de total utilidad
la regla del trapecio:
_
b
a
f(x)dx
b a
2n
[f(x
0
) + 2f(x
1
) + + 2f(x
n1
) + f(x
n
)] (3.1)
14
CAPTULO 3. INTEGRACIN NUMRICA CON MONTE CARLO 15
o la regla de Simpson compuesta:
_
b
a
f(x)dx
b a
3n
[f(x
0
) +4f(x
1
) +2f(x
2
) +4f(x
3
) +2f(x
4
) + +4f(x
n1
) +f(x
n
)] (3.2)
Para la regla del trapecio n es cualquier nmero natural, mientras que para Simpson n debe ser
impar. El error de truncamiento del trapecio (T) y de Simpson (S) esta dado por las siguientes
expresiones:

T
=
1
12
(b a)f
(2)
()(x)
2
(3.3)

S
=
1
180
(b a)f
(4)
()(x)
4
(3.4)
donde es un nmero que existe en el intervalo [a, b]. Estas reglas son exactas para funciones
lineales (trapecio) y para funciones cuya cuarta derivada anule (simpson), como polinomios
de grado tres y menor. La integracin numrica con estos mtodos es bastante simple para
integrales simples, como la funcin error por ejemplo, pero considere el caso en que la integral
depende de ms grados de libertad. Una integral triple genrica es
I =
_
a
2
a
1
_
b
2
b
1
_
c
2
c
1
f(x, y, z)dzdydx (3.5)
y su solucin por alguno de los mtodos anteriores pasa por separar la integral y resolver
recursivamente,
I =
_
a
2
a
1
f
1
(x)dx (3.6)
f
1
(x) =
_
b
2
b
1
f
2
(x, y)dy (3.7)
f
2
(x, y) =
_
c
2
c
1
f(x, y, z)dz (3.8)
esto implica una gran cantidad de aplicaciones del mtodo de integracin. Por ejemplo si se
utilizar la regla de simpson para resolver la integral triple anterior dividiendo cada intervalo x,
y y z en una misma cantidad n, habra que ejecutar n
3
+ n
2
+ n veces la regla de Simpson.
En general para un sistema de F grados de libertad la cantidad de llamadas a la regla sera
n
F
+ n
F1
+ n
F2
+ + n. Es en estos casos, donde el problema consta de muchos grados de
libertad, que el mtodo de Monte Carlo cobra importancia.
La integracin de una funcin unidimensional se puede resolver mediante una cuadratura
simple como la mostrada en la Figura 3.1.
_
b
a
F(x)dx = (b a)F (3.9)
CAPTULO 3. INTEGRACIN NUMRICA CON MONTE CARLO 16
donde F es el valor medio de F en el intervalo [a,b]. El computo de F se puede conseguir
evaluando a F en la mayor cantidad de puntos en el intervalo de inters, F = n
1

n
i
F(x
i
),
donde es claro que la eleccin de los puntos x
i
debe ser completamente independiente para
resolver la integral exitosamente. Si se eligieran los puntos centrados en x = 0.3, por ejemplo, el
valor de F se aproximara a F(0.3) y la integral no sera correctamente evaluada. Los puntos
x
i
necesariamente tienen distribucin de probabilidad uniforme.
F
F(0.3)
F
x
a
b 0.3
Figura 3.1: Clculo de una integral denida por cuadratura. rea tachada con lineas oblicuas corres-
ponde a una eleccin independiente de x
i
. rea tachada con lineas verticales se aproxima a elegir puntos
cercanos a x = 0.3.
Esta cuadratura se extiende fcilmente a la evaluacin de la integral triple como sigue:
I =
_
a
2
a
1
_
b
2
b
1
_
c
2
c
1
f(x, y, z)dzdydx = (a
2
a
1
)(b
2
b
1
)(c
2
c
1
)n
1
n

i
F(x
i
, y
i
, z
i
) (3.10)
donde n corresponde al nmero de puntos uniformemente distribuidos. La simplicidad del m-
todo de Monte Carlo respecto al numrico determinstico es evidente conforme aumentan los
grados de libertad del problema.
3.1. Integracin unidimensional
Como primer paso en la comprensin del Mtodo de Monte Carlo como integrador numrico
se comparar la solucin del siguiente problema
I =
_
2
0
[e
x
+ sin(x)]dx (3.11)
en forma analtica, con la regla de Simpson y con Monce Carlo. La solucin analtica es:
I = e
2
1 6.3890561 (3.12)
CAPTULO 3. INTEGRACIN NUMRICA CON MONTE CARLO 17
Los mtodos de Simpson y Monte Carlo se han programado en FORTRAN y los resultados son
mostrados en la Tabla 3.1 en funcin de n, que representa la longitud del vector de nmeros
aleatorios y el nmero de subintervalos de discretizacin para Monte Carlo y Simpson respec-
tivamente. Se ha usado el generador de nmeros aleatorios Fibonacci desfasado F(17, 5, +) con
semilla X
0
=27113. Inspeccionando los resultados es clara la ventaja de la regla de Simpson con-
tra el mtodo de Monte Carlo tanto en precisin como en tiempo computacional, sin embargo,
la diferencia no es tan radical como se podra esperar y ciertamente el mtodo de Monte Carlo
es una forma eciente para resolver una integral simple.
Cuadro 3.1: Comparacin en la solucin de I =
_
2
0
[e
x
+sin(x)]dx obtenida con Monte Carlo (MC) y
con la regla de Simpson (S).
n I
MC
I
S
CPU
MC
, segundos CPU
S
, segundos
101 6.6223 6.2454 2.6 10
5
3.2 10
5
1001 6.3721 6.3745 7.1 10
5
9.1 10
5
10001 6.3740 6.3878 7.1 10
4
5.1 10
4
100001 6.3922 6.3891 5.5 10
3
4.3 10
3
1000001 6.3889 6.3893 5.5 10
2
3.7 10
2
10000001 6.3894 6.3893 5.6 10
1
3.8 10
1
3.2. Integracin bidimensional
En el siguiente ejemplo se muestra la eciencia del mtodo de Monte Carlo para el clculo
del volumen generado por los ejes coordenados y la funcin f(x, y) = 2x
2
+3y
2
en los intervalos
[0, 2] y [0, 5] para x e y respectivamente.
V =
_
2
0
_
5
0
[2x
2
+ 3y
2
]dydx 276.666 (3.13)
Como ya se ha comentado, la regla de Simpson se aplica en forma recursiva:
V
S

_
2
0
g(x)dx (3.14)
g(x)
_
5
0
[2x
2
+ 3y
2
]dy (3.15)
CAPTULO 3. INTEGRACIN NUMRICA CON MONTE CARLO 18
de forma que en primer lugar se calcula, con la regla de Simpson, g(x) para cada x en el intervalo
[0, 2]. Construida g se calcula V
S
. En el mtodo de Monte Carlo se resuelve:
V
MC
(2 0)(5 0)
1
n
n

i=1
[2x
2
i
+ 3y
2
i
] (3.16)
En la Tabla 3.2 se muestran los resultados mediante ambos mtodos y se puede notar un aumento
signicativo en el consumo de tiempo de CPU utilizando Simpson compuesto para resolver
la integral doble. Comparando con la solucin de la integral simple de la seccin anterior,
Monte Carlo resulta conservativo en el consumo computacional con un error que en muchas
aplicaciones puede considerarse aceptable. Otra ventaja es la programacin del mtodo; mientras
que Simpson comienza a volverse engorroso, en Monte Carlo nicamente hay que denir un
vector adicional de nmeros aleatorios para solucionar el problema.
Cuadro 3.2: Comparacin en la solucin de V =
_
2
0
_
5
0
[2x
2
+3y
2
]dydx obtenida con Monte Carlo (MC)
y con la regla de Simpson (S).
n V
MC
V
S
CPU
MC
, segundos CPU
S
, segundos
101 316.0113 271.6478 1.8 10
5
1.5 10
4
1001 273.0381 276.1615 6.9 10
5
9.4 10
3
10001 274.9171 276.6161 9.2 10
4
8.0 10
1
100001 277.0332 276.6616 6.8 10
3
79.7
1000001 276.8941 - 7.3 10
2
-
10000001 276.7538 - 7.1 10
1
-
100000001 276.6855 - 15.2 -
Con el ejemplo anterior ya se establece las ventajas y el tipo de problemas que Monte Carlo
esta orientado a resolver.
3.3. Estimacin de error en la integracin
Una forma de estimar el error en la integracin con Monte Carlo esta dado por la siguiente
frmula [5]:

m
/

n (3.17)
CAPTULO 3. INTEGRACIN NUMRICA CON MONTE CARLO 19
en donde
m
es el error del mtodo y es la desviacin estandar de la integral calculada por
Monte Carlo. Por ejemplo, para una integral simple I =
_
b
a
f(x)dx

2
= I
2
I
2
(3.18)
donde
I = (b a)
1
n
n

i=1
f(x
i
) (3.19)
I
2
= (b a)
2
1
n
n

i=1
f(x
i
)
2
(3.20)
Para una integral doble V =
_
a
2
a
1
_
b
2
b
1
f(x, y)dydx

2
= V
2
V
2
(3.21)
V = (a
2
a
1
)(b
2
b
1
)
1
n
n

i=1
f(x
i
, y
i
) (3.22)
V
2
= (a
2
a
1
)
2
(b
2
b
1
)
2
1
n
n

i=1
f(x
i
, y
i
)
2
(3.23)
y la extensin a ms grados de libertad se vuelve intuitiva. Para el ejemplo de las Seccin 3.2
se tienen los siguientes resultados:
Cuadro 3.3: Error estimado con Monte Carlo el la solucin de V =
_
2
0
_
5
0
[2x
2
+ 3y
2
]dydx. La solucin
analtica es V = 276.666.
n V
MC
error real error estimado
101 316.0113 39.54 21.71
1001 273.0381 3.62 7.03
10001 274.9171 1.74 2.25
100001 277.0332 0.37 0.71
1000001 276.8941 0.23 0.25
10000001 276.7538 0.088 0.071
Se observa que el error del mtodo es bien estimado por la Ecuacin 3.17 conforme n y
que tiende a disminuir considerablemente mientras mayor es el nmero de evaluaciones.
CAPTULO 3. INTEGRACIN NUMRICA CON MONTE CARLO 20
3.4. Importance sampling
En la seccin anterior se mostr que el error de la integracin con Monte Carlo es propor-
cional a , la desviacin estandar de la evaluacin de la integral. El error del mtodo puede ser
disminuido y an requerir menos nmeros de evaluaciones de la integral para obtener un resul-
tado satisfactorio mediante la tcnica de importance sampling. Sea p una funcin de densidad
de probabilidad en el intervalo [a, b],
_
b
a
p(x)dx = 1 (3.24)
y una integral I a calcular en el mismo intervalo,
I =
_
b
a
F(x)dx (3.25)
La ecuacin anterior se puede escribir en forma equivalente como
I =
_
b
a
_
F(x)
p(x)
_
p(x)dx (3.26)
Ahora, calculando el racional como un valor promedio en el intervalo [a, b] la integral tiene
solucin aproximada I
n
I
n
=
_
b
a
_
F
p
_
p(x)dx =
_
F
p
_
_
b
a
p(x)dx =
_
F
p
_
(3.27)
_
F
p
_
=
1
n
n

i=1
F(x
i
)
p(x
i
)
(3.28)
La esencia del mtodo es determinar una funcin p tal que el cuociente F/p sea una funcin
suave y lo ms constante posible en el intervalo [a, b]. Como siempre, los x
i
son nmeros de
distribucin uniforme. Cuando p(x) = C con C = constante, de Ecuacin 3.24, C = (b a)
1
con lo cual n
1

n
i=1
F(x
i
)/p(x
i
) = (ba)n
1

n
i=1
F(x
i
) de modo que se recupera la cuadratura
analizada en los captulos anteriores. Como ejemplo de la tcnica de importance sampling se
estudia la solucin de la integral I =
_
1
0
e
x
2
dx utilizando dos funciones de distribucin distintas:
p
1
(x) = C
1
y p
2
(x) = C
2
e
x
. Para el primer caso se tiene:
_
1
0
C
1
dx = 1 C
1
(1 0) = 1 C
1
= 1 (3.29)
de modo que
_
F
p
_
=
1
n
n

i=1
e
x
2
i
0 x
i
1 (3.30)
CAPTULO 3. INTEGRACIN NUMRICA CON MONTE CARLO 21
Para el segundo caso:
_
1
0
C
2
e
x
dx = 1 C
2
(e
1
+ e
0
) = 1 C
2
=
1
(e
1
+ e
0
)
1.58 (3.31)
de modo que
_
F
p
_
=
1
n
n

i=1
e
x
2
i
1.58e
x
i
0 x
i
1 (3.32)
Los x
i
se distribuyen uniformemente en el intervalo [0, 1]. La solucin de la integral se ha
programado en FORTRAN y los resultados son mostrados en la Tabla 3.4. Se puede observar
que el mtodo de importance sampling, para este ejemplo, es un orden de magnitud menor a
Monte Carlo respecto el tamao del vector de nmero aleatorios, el tiempo empleado y el error
estimado.
Cuadro 3.4: Solucin de la integrl
_
1
0
e
x
2
dx con el mtodo de importance sampling usando p(x) = C1
(Monte Carlo normal) y p(x) = C
2
e
x
(Monte Carlo optimizado)
Monte Carlo normal importance sampling
n 10000 1000
I
n
0.749 0.748
error 0.002 0.002
CPU time (s) 5.7 10
4
6.7 10
5
n 100000 10000
I
n
0.7476 0.7491
error 0.0006 0.0005
CPU time (s) 4.5 10
3
8.2 10
4
Se deduce del ejemplo anterior que la tcnica de importance sampling puede incrementar
considerablemente la calidad de la integracin con Monte Carlo. La idea de introducir la densidad
de probabilidad p(x) es que el cuociente g(x) = F(x)/p(x) sea una funcin casi constante en
el intervalo de integracin [a, b]. Para el caso anterior, g
1
(x) = e
x
2
y g
2
(x) = e
x
2
/e
x
son
obviamente funciones de distinto comportamiento. En la Figura 3.2 se han gracado ambas
funciones en el intervalo [0, 1] de donde se deduce, con cierta facilidad, que al elegir nmeros
x
i
uniformemente distribuidos en el intervalo [0, 1] para calcular el valor esperado de g
1
se
obtendr mayor desviacin estandar de los datos respecto al mismo experimento con g
2
por
CAPTULO 3. INTEGRACIN NUMRICA CON MONTE CARLO 22
el simple motivo que g
1
cubre mayor rango de la ordenada que g
2
. La eleccin de la densidad
de probabilidad depende del intervalo de integracin, en efecto, la densidad p(x) = e
x
no da
buenos resultados para el intervalo [0, 2] o cualquier otro distinto al [0, 1]. Pese a lo anterior,
siempre es posible normalizar una funcin F en el intervalo genrico [a, b] hasta el [0, 1].
Figura 3.2: Diferencias al utilizar una densidad de probabilidad como importance sampling en el
mtodo de Monte Carlo.
Captulo 4
Monte Carlo en simulacin molecular
Con los captulos anteriores se espera haber entregado una idea mediana, pero clara, de lo que
es el mtodo de Monte Carlo en general. El objetivo del presente captulo es utilizar el mtodo
para resolver problemas moleculares, relacionados fuertemente con la mecnica estadstica, para
lo cual resulta indispensable presentar algunos conceptos que sern de total utilidad.
4.1. Cadenas de Markov
Se entiende una cadena de Markov como la dependencia que tiene la probabilidad de un
evento estocstico respecto al ocurrido inmediatamente antes [3]. En forma matemtica es una
probabilidad condicional,
p(X
tn
= S
in
|X
t
n1
= S
i
n1
) (4.1)
donde S
1
, S
2
,... son los posibles estados de un sistema, en tanto X
t
es el estado que adquiere el
sistema en el instante t.
En contraste con el lanzamiento de una moneda, donde cada lanzamiento es independiente del
anterior, la probabilidad de que una persona compre una guitarra depender, intuitivamente,
de la compra que se haya realizado antes. La persona como tal se dice es el sistema que
tendr distintos estados S
1
, S
2
,... (i.e. distintos matices entre necesidades y cantidad disponible
de dinero). Este sistema no permanece constante en el tiempo, sino que va cambiando entre
estados de acuerdo a su decisin de compra: hay una transicin constante entre estados,
W
ij
= p(X
tn
= S
j
|X
t
n1
= S
i
) (4.2)
23
CAPTULO 4. MONTE CARLO EN SIMULACIN MOLECULAR 24
La Ecuacin 4.2 es una interpretacin prctica de la Ecuacin 4.1, en efecto el concepto de
transicin entre estados es central en la simulacin de MC como se ver ms adelante. La proba-
bilidad de que ocurran dos eventos consecutivos, p(X
tn
= S
j
), es por denicin de probabilidad
condicional,
p(X
tn
= S
j
) = p(X
tn
= S
j
|X
t
n1
= S
i
)p(X
t
n1
= S
i
) (4.3)
p(X
tn
= S
j
) = W
ij
p(X
t
n1
= S
i
) (4.4)
4.2. Sistema molecular y mecnica estadstica
Un sistema molecular, en el contexto de este trabajo, se entiende como un sistema com-
puesto de tomos que pueden o no estar enlazados entre si formando distintas molculas. Estos
tomos son modelados como partculas situadas en un espacio dimensional denido que pueden
interactuar entre si de acuerdo a alguna ley, un potencial de interaccin semi-emprico, que en
primera instancia dene la naturaleza del sistema. Toda la materia, en la escala de nanmetros,
puede ser modelada en dicha forma, as pueden ser estimadas sus propiedades con alto grado
de certeza.
Las partculas se encuentran necesariamente connadas en un espacio dimensional y se mue-
ven vertiginosamente cambiando continuamente de posicin (r) y momentum (p), como resul-
tado, se genera el espacio de fase (r
N
, p
N
) de acuerdo a las restricciones que estn sometido el
sistema, por ejemplo, condiciones denidas de temperatura y presin.
El espacio de fase de un sistema que ha alcanzado el estado de mnima energa libre, en
acuerdo a las restricciones y la naturaleza del sistema, se distribuye con densidad de probabilidad
[6],
p
i
=
exp(H
i
/k
B
T)
Q
(4.5)
en donde la funcin de particin es,
Q = c
_
exp(H/k
B
T)dr
N
dp
N
(4.6)
donde c es una constante. Aqu el Hamiltoniano, H = H(r
N
, p
N
), engloba la contribucin
energtica del sistema aislado. Cualquier propiedad del sistema puede ser calculada como
A =
1
Q
_
A(r
N
, p
N
)exp(H/k
B
T)dr
N
dp
N
(4.7)
CAPTULO 4. MONTE CARLO EN SIMULACIN MOLECULAR 25
El objetivo ltimo de simular un sistema molecular es calcular sus propiedades de acuerdo
a la Ecuacin 4.7, el objetivo de este captulo es examinar cmo es posible realizar esta tarea
utilizando procedimientos estocsticos, lo que es ilustrado con uno de los sistemas ms simples
de estudiar con MC: el modelo de Ising ferromagntico.
4.3. Modelo de Ising ferromagntico: Introduccin
Este consiste de partculas situadas en un ltice y que interaccionan con sus vecinos ms
cercanos de forma que lo nico que son capaces de hacer es cambiar de spin [3]. En la gura a
continuacin se bosqueja el sistema para un ltice cuadrado bidimensional.
+
-
+
+
-
+
-
+
+
-
+
+
+
-
+
-
-
-
+
-
+
+
-
+
+
Figura 4.1: Esquema del modelo de Ising bidimensional de 5 X 5
El Hamiltoniano de este sistema es,
H = F

i,j

j
H

i
(4.8)
donde F > 0 es una constante de interaccin, H es el campo magntico y
i
= 1 representa
el spin de la partcula i-sima. El espacio de fase de este sistema esta formado por las distin-
tas conguraciones de spin de las partculas y se distribuye de acuerdo a Ecuacin 4.5. Una
propiedad de inters en este sistema es la magnetizacin M =

i

i
.
En principio, si se quiere resolver el problema en el espacio bidimensional, es factible si-
tuar partculas en puntos jos de un ltice de L X L y comenzar a cambiar los spin de estas
aleatoriamente, utilizando para ello un generador de nmeros aleatorios. El problema con ese
CAPTULO 4. MONTE CARLO EN SIMULACIN MOLECULAR 26
experimento es que el espacio de fase realmente obedece a una densidad de probabilidad bien
denida por la Ecuacin 4.5, en tanto que las conguraciones que somos capaces de hacer pu-
dieran ser aquellas de menor probabilidad, o bien de otra densidad distinta, y por tanto no
contribuir con certeza al clculo de las propiedades del sistema (i.e., magnetizacin).
Para sortear este problema es conveniente utilizar el mtodo de Metrpolis, que consiste
en generar conguraciones del espacio de fase utilizando una cadena de Markov. Esto es, cada
conguracin se va generando a partir de la anterior de acuerdo a una probabilidad de tran-
sicin W
ij
. Con ello no todas las conguraciones que pudiramos construir aleatoriamente son
aceptadas, si no slo aquellas que representan efectivamente al sistema. Una expresin adecuada
para la probabilidad de transicin entre estados, propuesta por Metropolis et al., es,
W
ij
=
exp(H/k
B
T), H > 0
1, H < 0
(4.9)
donde es claro que se aceptan todas las conguraciones tales que su energa sea menor a la
conguracin precedente. En caso contrario, la nueva conguracin es aceptada si un nmero
aleatorio uniformemente distribuido resulta menor a W
ij
.
Con el criterio anterior se asegura que las distintas conguraciones del sistema, generadas
aleatoriamente y aceptadas de acuerdo a la probabilidad de transicin, se distribuyen con pro-
babilidad proporcional a la Ecuacin 4.5. Por lo tanto, cualquier propiedad A del sistema puede
ser estimada como,
A =

i
n
i

A
i
(4.10)
donde n
i
es la cantidad de conguraciones i idnticas, el nmero total de conguraciones y
A
i
el valor de la propiedad A en la conguracin i.
4.4. Modelo de Ising ferromagntico: Simulacin
La simulacin de este sistema consiste en los siguientes pasos:
1. Situar las partculas en un ltice de L X L. Las partculas en el ltice pueden ser
representadas como una matriz cuadrada z(i, j) de tamao L X L que contiene los valores
de spin
k
de la partcula k-sima con posicin (i, j), de tal forma que
1
= z(1, 1),

2
= z(1, 2),
3
= z(1, 3), etc.
CAPTULO 4. MONTE CARLO EN SIMULACIN MOLECULAR 27
2. Asignar una conguracin inicial de spin a cada partcula. Para este sistema se
proponen dos tipos de conguraciones.
Tipo I: completamente magnetizada con
k
= 1 para todo k.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Figura 4.2: Ejemplo de conguracin inicial completamente magnetizada.
Tipo II: Aleatoria de baja magnetizacin.
+
+
-
+
-
-
+
-
+
-
+
-
+
+
-
-
+
+
-
+
-
+
-
+
-
Figura 4.3: Ejemplo de conguracin inicial aleatoria de baja magnetizacin.
3. Calcular la energa del sistema segn H
1
= F

i,j

i

j
H

i

i
. El parmetro de
interaccin F es un valor constante que depende del sistema real que se quiera modelar
por con el modelo de Ising, lo importante es el parmetro denido como j = J/k
B
T. Dado
j para cualquier valor jo de F se calcula la temperatura.
CAPTULO 4. MONTE CARLO EN SIMULACIN MOLECULAR 28
4. Cambiar el spin de una partcula elegida aleatoriamente. Para ello se utiliza un
RNG que denir el valor de i y j. Luego se cambia el spin como z(i, j) = 1 z(i, j).
Calcular la energa del sistema segn H
2
= F

i,j

i

j
H

i

i
,
5. Denir si aceptar o no la nueva conguracin. Si H
2
H
1
< 0, hacer W = 1. Si
H
2
H
1
> 0 calcular W = exp(H/k
B
T).
Generar un nmero pseudo-aleatorio r, luego si r < W la nueva conguracin es aceptada
y se asigna H
1
= H
2
. Volver al paso 4. Si por el contrario la conguracin es rechazada,
volver el spin a su valor original y volver al paso 4. Se rechazan las conguraciones de
igual energa.
Con los pasos mencionados se ha escrito un programa en FORTRAN 90, del cual slo se
ha calculado la magnetizacin del sistema. Es sabido que el modelo bidimensional presenta
transicin de fase en j 0.44 para H = 0. Cuando la temperatura disminuye (j aumenta)
el sistema tiende a magnetizarse en forma espontnea, por el contrario, a alta temperatura
predomina la aleatoriedad de los spin por lo que el sistema tiende a desmagnetizarse.
Figura 4.4: Magentizacin para las siguientes simulaciones: j = 0.04 conguracin inicial magnetizada,
j = 1.4 conguracin inicial desmagnetizada. Sistema de L = 10.
En la Figura 4.4 se presentan los resultados de magnetizacin en el tiempo. Ntese que el
tiempo se entiende aqu no en el sentido temporal, si no en la sucesin de cadenas de Markov
aceptadas. Las simulaciones han sido sobre un total de 1000000 de conguraciones probadas
de las cuales solo una fraccin han sido aceptadas. Para el caso j = 0.04 el 90 % de las con-
guraciones probadas fueron aceptadas, se explica esto en la alta temperatura del sistema, lo
CAPTULO 4. MONTE CARLO EN SIMULACIN MOLECULAR 29
que aumenta el valor de la probabilidad de transicin W. Esta simulacin fue iniciada con una
conguracin totalmente magnetizada y, de acuerdo a las restricciones del sistema (alta tempe-
ratura), hay una clara tendencia a desmagnetizar. En cambio, la simulacin con j = 1.4 se inici
con conguracin inicial desmagnetizada y el sistema espontneamente tiende a magnetizarse.
En este caso las conguraciones aceptadas alcanzaron tan solo el 2.5 % del total.
Este ejemplo reeja que al momento de utilizar el mtodo de Monte Carlo para un sistema
fsico, que tiene descripcin en la mecnica estadstica, no es suciente con generar congura-
ciones aleatoriamente. Es necesario que las conguraciones sean consistentes con la densidad de
probabilidad del espacio de fase. Por ello el mtodo de Metrpolis aqu estudiado es el adecuado
para este tipo de estudios.
Bibliografa
[1] Marsaglia G. A current view of random number generators. Computer Science and Statistics,
1984.
[2] Coddington P. Random number generators for parallel computers. 1997.
[3] Landau D. and Binder K. A guide to Monte Carlo simulations in statical physics. Cambridge,
second edition, 2000.
[4] Vehmanen L. Saarinen J., Tomberg J. and Kaski K. VLSI implementation of tausworthe
random number generator for parallel processing. IEE PROCEEDING-E, 138(3):138, 1991.
[5] Gould and Tobochnik. An introduction to computer simulation methods, volume 2. Addison
Wesley, 1988.
[6] Berend.S. Frenkel.D. Understanding Molecular Simulation. Academic Press, 2002.
30

Você também pode gostar