Está en la página 1de 38

El mtodo de Monte Carlo: generalidades

Nmeros aleatorios
Simulacin de Distribuciones de Poisson
Simulacin de Distribuciones Generales
El mtodo de Monte Carlo en Mecnica Estadstica
Percolacin en

 

Percolacin en

 




El modelo de Ising en

 

El modelo de Ising en

 

Bibliografa

The Art of Computer Programming, D. E. Knuth,


Addison-Wesley, vol 2, 1997.

Numerical Recipes in C, W. H. Press, B. P. Flannery, 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,


World Scientific, 1992.

Mtodo de Monte Carlo:


Cualquier tcnica que use nmeros aleatorios.
P:Por qu Monte Carlo?
R: Por su casino (Karl Pearson, 1892)
P:Para qu pueden servir los nmeros aleatorios?
R: Veamos unos ejemplos:

Simulacin: La reproduccin de fenmenos naturales necesita nmeros aleatorios. En Fsica


los ejemplos clsicos: Fsica Estadstica, Fsica
de Partculas

Muestreo: Muchas veces es poco prctico examinar todos los casos posibles. Un muestreo aleatorio puede revelar un comportamiento tpico.

Anlisis Numrico: Tcnicas numricas necesitan nmeros aleatorios

Programacin de ordenadores: Tests de efectividad de algoritmos

Toma de decisiones: Se rumorea que algunos


ejecutivos tiran monedas al aire para tomar decisiones. Algo parecido se dice de cmo califican
los exmenes algunos profesores

Esttica: Un toque de aleatoriedad puede resultar agradable

Juegos: De aqu proviene el propio mtodo

P:Qu es un nmero aleatorio?, es 2 un nmero


aleatorio?
R: Pregunta sin sentido. En su lugar hablaremos de
una secuencia de nmeros aleatorios independientes
con una distribucin especfica.
Independientes: cada nmero es obtenido por casualidad y no tiene ninguna relacin con otros nmeros
de la serie
Distribucin especfica: cada nmero tiene una probabilidad especfica de pertenecer a un rango de valores determinado. La ms comn es la distribucin
uniforme, todos los nmeros son igualmente probables. Veremos otras.

Generacin de Nmeros Aleatorios

Utilizar mquinas especficas (resistencia generadora de ruido) Ej.: ERNIE (loto inglesa) Inconvenientes: averas difcilmente detectables, imposibilidad de rehacer los clculos con idnticas secuencias

Utilizar tablas Inconvenientes: tablas cortas para


clculos, ocupan memoria, tiempos de acceso

Utilizar operaciones aritmticas. Von Neumann


(1946)



 

extraer los dgitos centrales

    

Ej:

    

  

        



P:Cmo aleatorio (random) si est completamente


determinado por el anterior?
R : NO es random pero lo parece. Secuencias pseudoaleatorias 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 nmeros de 4 dgitos. Analizar el resultado usando diferentes semillas (nmero
inicial).
Peligro: los nmeros aleatorios aceptados ciegamente pueden llevarnos a cometer errores. Como hizo
IBM en los 60 con su generador RANDU.

Generadores uniformes de nmeros aleatorios


En la prctica se generan nmeros enteros  comprendidos entre 0 y
(mdulo. El mtodo ms extendido es el de las congruencias:
Mtodo de las congruencias
Se basa en 4 nmeros enteros mgicos
: mdulo

! : 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

 ! 

$ 

 

    
/
,
.
0
B
1
 )

3C








,/. 021
3C&D
3E8F

3GHI



&%

>

> 
+

Si $
la generacin es ms rpida y la secuencia
ms corta

Eleccin del mdulo


tiene que ser grande para tener secuencias largas.
  D
Si J es el tamao de la palabra (J
en un


J K . Otra alternativa
Pentium) se suele tomar
es el mayor primo menor que J .
Eleccin del multiplicador
Th: Una secuencia definida por
riodo de longitud si y slo si

i)

ii)

3 ! 3 $ y L% tiene pe-

$ es primo relativo a
M

!   es mltiplo de N , para todo primo N

divisor de

iii)

M es mltiplo de 4 si

es mltiplo de 4

Si

$ 


se cumple que


$
Th.: El mximo periodo cuando
i)

L% es primo relativo a

ii)

! es elemento primitivo mdulo

se obtiene si

Cuando ! es primo relativo a , el entero ms peque*


 
o para el que !PO=,Q. 0B1
se llama orden de
! mdulo . El ! que tiene el mximo valor posible
de orden mdulo
se llama un elemento primitivo
mdulo .
Otros mtodos:Secuencia de Fibonacci

 ( ' )
  +  8 R<) ,/. 021
 *
 
 SR F +  8 RTQT Q, . 0B1
3
5

Ejercicio: Utilizar los nmeros aleatorios para simular el decaimiento radiactivo de una muestra de ncleos. La probabilidad de que un ncleo decaiga en
W

 W
#
#
U V donde U V
un tiempo U V es: N
.

Considerad una muestra de % ncleos radiactivos.


Cmo cambia con el tiempo el nmero de ncleos?.
 * ,
V .
Haced una grfica de
Algoritmo:

Desde




hasta V , con

U V
V

Loop sobre los ncleos que hay en

W
#
U V entonDecidir si decae o no: si random#
ces el nmero de ncleos decae en una unidad

Registrar el nmero de ncleos en

Datos:

 

 


%

W 
3

W 


  Y X <
R
)

3 U V

Z


 
  X R[)

3 U V

Z

Comparar con el resultado terico

 * , 
V


%A\^]

6 *  W ,
V

Mostrar el resultado en grficas con escalas lineales y


logartmicas

100

80

60

40

20

20

40

60

80

100

120

140

160

180

200

220

240

260

280

.1e3

.5e2

.1e2

5.
0

20

40

60

80

100

120

140

160

180

200

220

240

260

280

4000

3000

2000

1000

0
20

40

60

80

100

120

140

160

180

200

220

240

260

280

300

.1e4

.1e3

.1e2

1.
20

40

60

80

100

120

140

160

180

200

220

240

260

280

Complicando la pregunta anterior: cul es la probabilidad de observar 4 decaimientos en un intervalo de


tiempo _ ?. Suponiendo que el nmero de decays en

_ es mucho menor que . Dividimos _ en inter
valos de duracin U V , _
U V
t

Probabilidad 1 decay N
Probabilidad

U V

W 

4 decays en _
c 

En el lmite

 `


c 

*d 

b e
R 
,
N
 

U V
g 
R hij 4lkm3 i  ` _
,

Distribucin de Poisson

 ` a
U V
b

Ejercicio Modicar el ejercicio anterior para simular un


experimento en el que contamos el nmero de decays
observados en un intervalo _ . Repetir el experimento
varias veces y hacer histograma de la distribucin de
decays.
Datos

 % 
%

 
 

W   >   
R T s R<)
W   >   R F <
sR )

#experimentos = 1000

U V 
U V

 
 

s
s

_ 

  
   s
s

TESTS
P: Dada una secuencia
cientemente aleatoria?
Test Chi-cuadrado

n , cmo saber si es sufi-

Mtodo bsico en estadstica que se usa en relacin


con muchos otros temas
- Tenemos un experimento que puede producir valores en p clases distintas, cada una de ellas tiene una
Z  
Ip
probabilidad asociada Nrqs3
- Hacemos 4 observaciones independientes y contaZ
mos tq el nmero de observaciones en la clase .
- Construimos



qwv x 
t q 4 Nq ,
4Nq
qwv )

Si u y y
tendremos fundadas sospechas sobre las
medidas efectuadas.

P: Qu valores son razonables para


La respuesta en la siguiente tabla ( z
de libertad)

u ?
p

 

, grados

~ } } }  }} } } }} }} }
}}   } } 
{ | } }} } } } } }    }
}   
~   }  } } 
} } } } } }  }
{ |  } }} } } } } } } } } 

~   }}   } }   
   } }  
{ | } }  } }} } } } } 

~ } } }} }} } } }
  } } } } }}
{ |  }    } }} } }
 }

~  }  }  
}     } }  }
{ | }}  }} }      }} }


~   } } } } } }} }
}  }   } 
{ | }  } } } 
} }  } }

} }
~ }  }} }} }} } 

{ |  } }} }     
}
}}}
}  } }} } } 
| | | | | | | | | | | | | | | |

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


   
 
 ,z
en la tabla
118 caras y 82 cruces. u
   <
 
   <

para N
%y 

tenemos 
  
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 slo en menos del 1% de los casos,
ano
podemos considerar el resultado aleatorio en absoluto!

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

L%

 Y[  ! 
3

test para el generador

 )
+

 $ 
3

 D T

-Generar secuencia 20000 nmeros


-Obtener

haciendo bines de 2000

-Repetir 4 veces
-Representar la secuencia en un histograma, como
puntos en 2D y en 3D.

test para el generador de


Ejercicio: Realizar el o
Fibonacci. Realizar varios tests y hacer bloques de
tres con los numeros de la secuencia.

Apartado terico
Las variables t q son entradas de un histograma, como vimos antes la distribucin de probabilidad que
siguen es la de Poisson. La probabilidad de que tq
tomen los valores Yq es

g Rd *
4 Nq ,
x
qwv )
q k

g e
R  4 
j
4lk
 * 
, j 4Nq

t
q
4


N
q
Haciendo el cambio de variable q
 x

resulta u

. Las q no son independienq


)
w
q
v

N   .
tes N ) ) + H +
x x
*   ,
*
Sea el espacio p
-dimensional de los ) 3HHI3 x , .
Para 4 grande los q tienen aproximadamente distribucin normal, luego puntos en un volumen diferen 
aproximadacial
IH x de tienen
6*  probabilidad
*
,j  ,
mente proporcional a \]
) + HH + x

 
La probabilidad de que x ) n
, donde slo p
son independientes es

g 
R E R[)
Bw * x R[) ,

"

u
R )   ** p   , j  3 j  ,
g R  j   x R[)s [
*-* p   , j  ,
%  x *-* p   , j  
*   ,

Esta es la distribucin o con p
grados de liberLa probabilidad de que

tad.

* , 
*


,
3
ma

*


  ,
k funcin gamma
g e
R V R<)  V funcin incompleta de gam%

Test Espectral: el generador RANDU


Fue introducido en los 60 por IBM

 (' )

*  

 D )
/
,
.
B
0
1
 

Veamos que RANDU tiene serios problemas

Test 1 : generamos una secuencia de 1000 nmeros


y hacemos un histograma

100

80

60

40

20

5e+08

1e+09

1.5e+09

2e+09

Test 2: representemos la secuencia en 2D

2e+09

1.5e+09

1e+09

5e+08

0
0

5e+08

1e+09

1.5e+09

2e+09

Test 3: representemos la secuencia en 3D

2e+09
1.8e+09
1.6e+09
1.4e+09
1.2e+09
1e+09
8e+08
6e+08
4e+08
2e+08
0
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

2e+09
1.8e+09
1.6e+09
1.4e+09
1.2e+09
1e+09
8e+08
6e+08
4e+08
2e+08
0
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

2e+08

6e+08
1e+09
1.4e+09
1.8e+09

Este fenmeno se conoce como Efecto Marsaglia

Otros tests

Simulacin de Distribuciones Generales


Tcnicas para la generacin de secuencias de nmeros aleatorios distribuidos de manera no uniforme, por
ejemplo de acuerdo con la distibucin de Poisson.
Tcnica de Rechazo
Generar una secuencia que sigue una funcin de dis*
tribucin  , .
Algoritmo:
1. Elegir un valor de prueba
aleatorio )

 b n +

 a partir de un nmero

* b  b ,
  n )

2. Decidir si se acepta o no: Si


*
acepta 5  , para todo  ,
Repetir hasta que se acepte.


 , y
se
 b n 5  5  b .

Este algoritmo se puede ver como tirar dardos:

f(x)

x min

x max

* ,
De esta manera se puede estimar la integral de 

2 *  ,   4 *  b   b n  ,

4

* ,
Problemas: Funciona mal si  se parece a una
delta. Casi nunca se aceptan las propuestas. Si la
funcin tiene un polo no se puede usar. Si el rango
 f
f
de  va desde
hasta
no se puede usar.

Tcnica de Inversin
1. Normalizar la funcin de distribucin, de modo
que sea una funcin de distribucin de probabilidad
(PDF).
2. Integrar analticamente desde el mnimo  n hasta
un  arbitrario. Esto es la probabilidad de que ocurra
un valor menor o igual que  .
3. Igualar el resultado a un nmero aleatorio uniforme
y resolver en  .
Es decir, resolver la ecuacin

* 
V, V 
* , 
V V

Ejemplos

* , 
1) Generar  entre 0 y 4 de acuerdo con 
 j * ,
 :
R<) 
 j  
V 
% V

3
F R[)G 
V
% V
 
generar  de acuerdo con 
.
* , 
2) Generar entre 0 e
de acuerdo con 
g Re 
V 
  g R  
%

3

g R 

%
  0 *  ,
generar  de acuerdo con 
.
f

Ejercicio: Generar ngulos en el intervalo


de acuerdo con la funcin de distribucin:
*CX^9I(
X
+ !0 , R<) .


!
Generar 10000 valores usando

 ! 
 y

g R

 " 

*

,

  

.

Dibujar los resultados y sobreponer la funcin de distribucin.

Tcnica de Importance Sampling (Muestreo Representativo??)

* ,
Reemplazar la funcin de distribucin  por una
* ,
 a la que se pueda aplicar la
forma aproximada
tcnica de inversin.

* ,
 meGenerar de acuerdo  distribuidos segn
diante la tcnica de inversin y aceptarlos de acuerdo
*

*
 ,j  ,.
con una probabilidad proporcional a J

f (x)
f (x)

La tcnica de rechazo es el caso especial en el que


* ,
 es constante ( )

*d

+
Ejemplo: Generar  de acuerdo con  ,



 , j  en el rango #  #
. Intentadlo con la
tcnica de inversin.
* ,j * ,
La idea es que J
  sea sencillo. Ele * ,   j Zs * ,
 
+  .
gimos

V  con lo que J
 j Z * ,
Aplicamos la tcnica de inversin a
V  :


Generamos

 de prueba: 


)
*d

+  , y J b se
Decidimos si se acepta: si
 
b

acepta. En este caso J


, en otros casos

puede ser ms complicado encontrarlo.

También podría gustarte