El método de Monte Carlo: generalidades Números aleatorios
Simulación de Distribuciones de Poisson Simulación de Distribuciones Generales
El método de Monte Carlo en Mecánica Estadísti-ca
Percolación en
Percolación en
El modelo de Ising en
Bibliografía
The Art of Computer Programming, D. E. Knuth,
Addison-Wesley, vol 2, 1997.
Numerical Recipes in C, W. H. Press, B. P.
Flan-nery, S. A. Teukolsky, W. T. Vetterling, Cambridge University Press 1990.
Introduction to Percolation theory, A. Stauffer, A.
Aharony, Taylor & Francis, 1991.
Monte Carlo Simulation in Statistical Physics, K.
Binder, D.W. Heermann, Springer, 1997.
Quantum Fields on the computer, Ed. M. Creutz,
Método de Monte Carlo:
Cualquier técnica que use números aleatorios. P:¿Por qué Monte Carlo?
R: Por su casino (Karl Pearson, 1892)
P:¿Para qué pueden servir los números aleatorios? R: Veamos unos ejemplos:
Simulación: La reproducción de fenómenos na-turales necesita números aleatorios. En Física los ejemplos clásicos: Física Estadística, Física de Partículas
Muestreo: Muchas veces es poco práctico exa-minar todos los casos posibles. Un muestreo alea-torio puede revelar un comportamiento típico.
Análisis Numérico: Técnicas numéricas necesi-tan números aleatorios
Programación de ordenadores: Tests de efec-tividad de algoritmos
Toma de decisiones: Se rumorea que algunos ejecutivos tiran monedas al aire para tomar deci-siones. Algo parecido se dice de cómo califican los exámenes algunos profesores
Estética: Un toque de aleatoriedad puede resul-tar agradable
P:¿Qué es un número aleatorio?, ¿es 2 un número aleatorio?
R: Pregunta sin sentido. En su lugar hablaremos de una secuencia de números aleatorios independientes con una distribución específica.
Independientes: cada número es obtenido por
casua-lidad y no tiene ninguna relación con otros números de la serie
Distribución específica: cada número tiene una
pro-babilidad específica de pertenecer a un rango de va-lores determinado. La más común es la distribución uniforme, todos los números son igualmente proba-bles. Veremos otras.
Generación de Números Aleatorios
Utilizar máquinas específicas (resistencia gene-radora de ruido) Ej.: ERNIE (loto inglesa) Incon-venientes: averías difícilmente detectables, impo-sibilidad de rehacer los cálculos con idénticas se-cuencias
Utilizar tablas Inconvenientes: tablas cortas para cálculos, ocupan memoria, tiempos de acceso
Utilizar operaciones aritméticas. Von Neumann (1946)
extraer los dígitos centrales Ej:
P:¿Cómo aleatorio (random) si está completamente determinado por el anterior?
R : NO es random pero lo parece. Secuencias pseu-doaleatorias que llamaremos simplemente aleatorias. La secuencia de Von Neumann es un mal generador. Ejercicio: Usar el algoritmo de Von Neumann para generar una secuencia de números de 4 dígitos. Ana-lizar el resultado usando diferentes semillas (número inicial).
Peligro: los números aleatorios aceptados ciegamen-te pueden llevarnos a comeciegamen-ter errores. Como hizo IBM en los ’60 con su generador RANDU.
Generadores uniformes de números aleatorios En la práctica se generan números enteros
com-prendidos entre 0 y (módulo. El método más ex-tendido es el de las congruencias:
Método de las congruencias
Se basa en 4 números enteros mágicos : módulo ! : multiplicador " ! # $ : incremento " $ # &% : semilla " &% #
La secuencia se obtiene como
* ! + $-,/. 021 3 4 5
Por ejemplo en MapleV ) 687:9 . 0 $ ! ; <= > ? > ? > % @ > > > A> > & >
* Siempre se produce un loop
&% ! $ ) * > + ,/. 0B1 3C * > + ,/. 021 3C&D 3E8F 3GHI Si $
la generación es más rápida y la secuencia más corta
Elección del módulo
tiene que ser grande para tener secuencias largas. Si J es el tamaño de la palabra (J
D
en un Pentium) se suele tomar
J K
. Otra alternativa es el mayor primo menor que J .
Elección del multiplicador
Th: Una secuencia definida por 3
!
3
$
y L% tiene
pe-riodo de longitud si y sólo si
i) $ es primo relativo a ii) M !
es múltiplo de N , para todo primo N
divisor de
Si $
se cumple que
Th.: El máximo periodo cuando $
se obtiene si
i) L% es primo relativo a
ii) !
es elemento primitivo módulo
Cuando !
es primo relativo a , el entero más peque-ño para el que *
!PO=,Q. 0B1
se llama orden de
!
módulo . El !
que tiene el máximo valor posible de orden módulo se llama un elemento primitivo módulo .
Otros métodos:Secuencia de Fibonacci
(' ) * + 8R<) ,/. 021 * F + ,Q. 0B1 3 5
Ejercicio: Utilizar los números aleatorios para simu-lar el decaimiento radiactivo de una muestra de nú-cleos. La probabilidad de que un núcleo decaiga en un tiempo U V es: N W U V donde W U V # # . Considerad una muestra de
% núcleos radiactivos.
¿Cómo cambia con el tiempo el número de núcleos?. Haced una gráfica de *
V , . Algoritmo: Desde V hasta V , con U V
Loop sobre los núcleos que hay en V
Decidir si decae o no: si random# #
W
U V
enton-ces el número de núcleos decae en una unidad
Datos: % 3 W YX R<) 3 U V Z % 3 W X R[) 3 U V Z
Comparar con el resultado teórico
* V , %A\^] 6* W V ,
Mostrar el resultado en gráficas con escalas lineales y logarítmicas
x 160 180 200 220 240 260 280 140 120 100 80 60 40 20 100 80 60 40 20 Page 1
x 160 180 200 220 240 260 280 140 120 100 80 60 40 20 0 .1e3 .5e2 .1e2 5. Page 1
x 160 180 200 220 240 260 280 300 140 120 100 80 60 40 20 4000 3000 2000 1000 0 Page 1
x 160 180 200 220 240 260 280 140 120 100 80 60 40 20 .1e4 .1e3 .1e2 1. Page 1
Complicando la pregunta anterior: ¿cuál es la proba-bilidad de observar 4 decaimientos en un intervalo de
tiempo _ ?. Suponiendo que el número de decays en _ es mucho menor que
. Dividimos _ en inter-valos de duración U V , _ U V T ∆t Probabilidad 1 decay N ` U V W U V ` a b Probabilidad 4 decays en _ c N *d N , b Re 4 En el límite f , U V c g Rhij 4lkm3 i ` _ Distribución de Poisson
Ejercicio Modicar el ejercicio anterior para simular un experimento en el que contamos el número de decays observados en un intervalo _ . Repetir el experimento
varias veces y hacer histograma de la distribución de decays. Datos % W > RT sR<) U V s _ s % W > R F sR<) U V s _ s #experimentos = 1000
TESTS
P: Dada una secuencia n , ¿cómo saber si es
sufi-cientemente aleatoria? Test Chi-cuadrado o
Método básico en estadística que se usa en relación con muchos otros temas
- Tenemos un experimento que puede producir valo-res en p clases distintas, cada una de ellas tiene una
probabilidad asociada Nrqs3
Z
Ip
- Hacemos 4 observaciones independientes y
conta-mos tq el número de observaciones en la clase
Z . - Construimos u qwv x qwv ) tq 4Nq , 4Nq Si u y y
tendremos fundadas sospechas sobre las medidas efectuadas.
P: ¿Qué valores son razonables para u ?
La respuesta en la siguiente tabla (z
p
, grados de libertad)
{| } ~ {| ~ {| ~ {| ~ {| ~ {| ~ {| ~ | } } } } } } } } } } } | } } } } } } } } } } | } } } } } } } } } } } } | } } } } } } | } } } } } } } } | } } } } } } } } } | } } } } } } } } } } } | } } } } } } } | } } } } } } } } | } } } } } } } } } } } | } } } } } } } } } } | } } } } } } } } } | } } } } } } } } } | } } } } } } } } | } } } } } } } | } } } }
Si la entrada en la fila z columna N es La cantidad u sera menor o igual que con probabilidad N , para 4 suficientemente grande.
Criterio 4 grande: 4Nrq 5
Ejemplo: Tiramos 200 veces una moneda y medimos 118 caras y 82 cruces. u , z en la tabla tenemos < para N % y < para N
% . Luego la probabilidad de medir un valor de u menor o igual que el obtenido es casi del
orden del 99%. Demasiado grande. La moneda es sospechosa, no sirve como generador de secuencias binarias.
Si tiramos una moneda 20000 veces y encontramos 10001 caras y 9999 cruces entonces u
miramos en la tabla y vemos que u será menor que
el valor obtenido sólo en menos del 1% de los casos, ˛
ano podemos considerar el resultado aleatorio en ab-soluto!
El criterio que se adopta es:
Si u es menor del 1% o mayor del 99% se rechaza
el generador Si u está entre el 1% al 5% o del 95%
al 99% se sospecha del generador Si u está entre el
5% al 10% o del 90% al 95% puede sospecharse Ejercicio: Realizar el o test para el generador
L% Y[ 3 ! ) + 3 $ 3 D T
-Generar secuencia 20000 números -Obtener o haciendo bines de 2000
-Repetir 4 veces
-Representar la secuencia en un histograma, como puntos en 2D y en 3D.
Ejercicio: Realizar el o test para el generador de
Fibonacci. Realizar varios tests y hacer bloques de tres con los numeros de la secuencia.
Apartado teórico
Las variables t q son entradas de un histograma,
co-mo vico-mos antes la distribución de probabilidad que siguen es la de Poisson. La probabilidad de que tq
tomen los valores Yq es
x qwv ) g Rd * 4Nq , q k j g Re 4 4lk
Haciendo el cambio de variable q
* tq 4Nq , j 4Nq resulta u x qwv ) q . Las q no son independien-tes N ) ) + H + N x x . Sea el espacio * p , -dimensional de los * ) 3HHI3 x , . Para 4 grande los q tienen aproximadamente
distri-bución normal, luego puntos en un volumen diferen-cial ¡
IH ¡
x de
tienen probabilidad
aproximada-mente proporcional a \¢] 6* *£ ) + HH + x , j , La probabilidad de que x ) n ¤ , donde sólo p son independientes es N g R¥§¦ ¤¨E©ª « R[) B¨w©ª « ¬ * x R[) ,
La probabilidad de que u " ¤ ¥ % g R j x R[)s®¯¦ R[) x ¦ ¬ *-* p , j ° *§* p , j 3 ¤ j , ¬ *-* p , j ,
Esta es la distribución o con
* p , grados de liber-tad. ¬ * , * , k función gamma ° * 3 , ± % g Re² V´³ R<)
V función incompleta de
Test Espectral: el generador RANDU Fue introducido en los 60 por IBM
(' ) * ,/. 0B1 D )
Test 1 : generamos una secuencia de 1000 números y hacemos un histograma 0 20 40 60 80 100
Test 2: representemos la secuencia en 2D 0 5e+08 1e+09 1.5e+09 2e+09
Test 3: representemos la secuencia en 3D 0 2e+08 4e+08 6e+08 8e+08 1e+09 1.2e+09 1.4e+09 1.6e+09 1.8e+09 2e+09 0 2e+08 4e+08 6e+08 8e+08 1e+09 1.2e+09 1.4e+09 1.6e+09 1.8e+09 2e+09 0 2e+08 4e+08 6e+08 8e+08 1e+09 1.2e+09 1.4e+09 1.6e+09 1.8e+09 2e+09
Eligiendo apropiadamente el ángulo, los problemas de RANDU aparecen 0 2e+08 6e+08 1e+09 1.4e+09 1.8e+09 0 2e+08 4e+08 6e+08 8e+08 1e+09 1.2e+09 1.4e+09 1.6e+09 1.8e+09 2e+09 0 2e+08 4e+08 6e+08 8e+08 1e+09 1.2e+09 1.4e+09 1.6e+09 1.8e+09 2e+09
Simulación de Distribuciones Generales
Técnicas para la generación de secuencias de núme-ros aleatorios distribuidos de manera no uniforme, por ejemplo de acuerdo con la distibución de Poisson. Técnica de Rechazo
Generar una secuencia que sigue una función de dis-tribución µ * , . Algoritmo:
1. Elegir un valor de prueba a partir de un número
aleatorio ¶ ) b n + * b · ³ b n , ¶ )
2. Decidir si se acepta o no: Si µ
* , y ¶ µ¹¸ se acepta µ¸ 5 µ * , para todo , b n 5 5 b · ³ . Repetir hasta que se acepte.
Este algoritmo se puede ver como tirar dardos: f f(x) x x M min max
De esta manera se puede estimar la integral de µ
* , º ³§»2¼´½ ³ »¾À¿ µ * , Á 4 · 4 * b · ³ b n ,
Problemas: Funciona mal si µ
*
,
se parece a una “delta”. Casi nunca se aceptan las propuestas. Si la función tiene un polo no se puede usar. Si el rango de va desde
f
hasta f
Técnica de Inversión
1. Normalizar la función de distribución, de modo que sea una función de distribución de probabilidad (PDF).
2. Integrar analíticamente desde el mínimo n hasta
un arbitrario. Esto es la probabilidad de que ocurra
un valor menor o igual que .
3. Igualar el resultado a un número aleatorio uniforme y resolver en .
Es decir, resolver la ecuación
± ³ ³ ¾ µ * V , V ± ³Ã ³ ¾ µ * V , V ¶ Ejemplos
1) Generar entre 0 y 4 de acuerdo con µ , j * , : ± ³ % V R<)¦ V ± F % V R[)G¦ V ¶3 j ¶
generar de acuerdo con
¶ . 2) Generar entre 0 e f de acuerdo con µ * , g R ³ ± ³ % g Re² V ±ÅÄ % g R² ¶3 g R ³ ¶
generar de acuerdo con
Æ 0Ç *¹ ¶ , . Ejercicio: Generar ángulos È en el intervalo
"
È
É
de acuerdo con la función de distribución: µ
* È , *CX^9IÊ( È + !ÌË0 X È , R<) .
Generar 10000 valores usando !
y ! . Dibujar los resultados y sobreponer la función de dis-tribución.
Técnica de Importance Sampling (Muestreo Repre-sentativo??)
Reemplazar la función de distribución µ
* , por una forma aproximada µ · * ,
a la que se pueda aplicar la técnica de inversión.
Generar de acuerdo distribuidos según µ
· *
,
me-diante la técnica de inversión y aceptarlos de acuerdo con una probabilidad proporcional a J
µ * , j µ · * , . f (x)a f (x)
La técnica de rechazo es el caso especial en el que µ · * , es constante (µ¹¸ )
Ejemplo: Generar de acuerdo con µ
* , *d + , j en el rango # # . Intentadlo con la técnica de inversión. La idea es que J µ * , j µ · * ,
sea sencillo. Ele-gimos µ · * , j Zs͹ΠV * , con lo que J + .
Aplicamos la técnica de inversión a
j Z͹ΠV * , : Generamos de prueba: ¶ ) Decidimos si se acepta: si *d + , y ¶ J b · ³ se acepta. En este caso J
b ·
³
, en otros casos puede ser más complicado encontrarlo.