Está en la página 1de 39

PERCOLACIN

Qu es percolacin?

Prximos vecinos: cuadrados con lado comn (nn) Siguientes prximos vecinos: cuadrados con vrtice comn(nnn)
2

Cluster: Grupo de cuadrados nn ocupados. Teora de la Percolacin: Propiedades de los clusters. Percolacin random: cada sitio de la red se ocupa aleatoriamente con probabilidad p. Ejercicio Escribir un programa que dibuje los sitios ocupados y vacos en un retculo 15x15 para p = 0.3, p = 0.5 y p = 0.7. Identicar los clsters mayores.
3

p=0.300000

0 0 0 0 0 1 0 0 1 0 0 0 0 0 0

1 1 1 0 1 0 1 1 0 1 0 0 0 1 0

0 0 0 0 1 0 0 0 1 0 0 1 1 0 0

1 0 0 0 1 0 0 0 0 0 0 1 0 0 0

0 1 0 0 0 0 1 0 0 0 0 0 0 0 0

0 1 0 0 1 0 0 0 0 1 0 0 0 1 1

1 1 0 0 0 0 0 0 0 0 1 1 0 1 1

1 0 1 0 1 1 0 0 0 0 0 0 1 1 0

0 0 1 1 0 1 0 1 0 1 0 1 1 0 0

0 0 0 0 0 1 0 0 0 0 0 0 0 0 1

0 0 0 0 0 0 1 0 0 1 0 1 0 1 0

1 0 0 0 1 0 0 1 0 0 0 0 0 0 0

0 0 0 0 0 1 0 1 0 0 0 0 0 1 0

0 0 0 1 0 1 1 0 0 1 1 0 0 0 0

p=0.500000

1 0 0 0 0 1 1 0 1 1 0 0 0 0 1

1 1 0 1 1 0 1 0 0 1 1 0 0 0 1

0 0 1 1 1 1 1 1 0 1 0 1 1 1 1

0 0 0 1 0 1 0 0 0 0 0 1 1 0 0

1 0 0 0 1 1 1 1 0 0 1 1 0 0 0

0 0 0 1 1 0 0 0 0 0 1 0 0 0 0

0 0 0 1 0 0 0 0 0 0 1 0 1 1 0

0 0 0 1 0 1 0 0 0 0 1 1 0 1 0

1 1 1 0 0 0 0 1 1 0 1 1 0 0 0

1 0 0 0 0 0 1 0 1 1 0 1 0 0 1

0 0 1 1 0 0 0 1 1 1 0 0 1 0 1

0 0 1 0 0 1 1 1 1 0 0 0 0 0 0

1 1 0 1 0 0 1 1 0 1 0 0 0 0 1

1 1 0 1 1 1 1 0 0 1 0 1 1 1 1

p=0.700000

1 0 0 1 1 1 0 1 0 1 1 0 0 1 0

1 1 1 1 1 1 1 1 1 0 1 1 1 1 1

1 1 1 1 1 1 1 1 1 1 1 0 0 1 0

0 1 1 1 1 0 1 1 0 1 0 1 0 1 1

0 0 0 1 1 1 1 1 1 1 0 1 1 1 1

1 1 0 1 1 1 1 1 1 0 1 1 0 0 1

1 1 0 0 0 1 1 1 0 0 1 1 0 1 1

1 0 1 1 0 0 1 1 1 1 1 1 0 1 0

1 1 1 1 0 1 1 1 0 1 1 1 1 0 1

0 0 1 0 1 0 1 1 1 0 0 0 1 1 0

1 1 0 1 1 1 1 1 1 1 1 1 1 1 1

0 0 1 1 1 1 1 0 1 0 1 1 1 1 1

1 1 1 1 0 0 0 1 1 1 0 0 1 1 1

1 1 1 0 1 1 0 1 1 0 1 1 1 0 0

Para p = 0.7 slo hay 4 clusters. Cluster percolante: ocupa casi todo el retculo Probabilidad crtica pc donde aparece por primera vez cluster percolante Fenmenos crticos: fenmenos cerca de pc. Teora de scaling escala: trata de describirlos. Si L 106 sitios, necesitamos un ordenador para analizar los clusters.
7

Aplicaciones: 1.-Fuego en los bosques Simular un bosque por una red cuadriculada. Cuadrado ocupado: rbol verde. Cunto tiempo tarda un fuego en penetrar en el bosque o en extinguirse? Simulacin: Encender todos los rboles de la primera la Recorremos la red (bosque) por las de izda. a derecha Un rbol encendido prende a su vecino nn a la derecha y al de abajo (si existen). Al cabo de un barrido completo el rbol est quemado no puede seguir encendiendo a los vecinos. Fuego termina cuando no quedan rboles encendidos o el fuego llega a la ltima la. La vida del fuego es el nmero de barridos necesarios para que el fuego termine. Resultado: Existe un valor crtico de p (ocupacin) cerca de 0.5928 para el que la vida del fuego
8

aumenta. De hecho aumenta con el tamao del bosque

0.4

0.5

0.6 p
9

2.-Buscar petrleo!

Simular un material poroso que contiene gas o petrleo. Cuadrado ocupado: petrleo. La probabilidad de ocupacin p se llama porosidad de la roca.

Resultado: Si p < pc el petrleo est distribuido en clusters nitos. Si p < pc al perforar al azar lo ms probable ser pinchar un cluster pequeo y el pozo ser poco rentable. Para ganar dinero hay que perforar si p > pc.
10

Solucin exacta en d = 1

La probabilidad de que un punto de la red (cadena ahora) sea el extremo izdo. de un cluster de 4 es 4 2 p (1 p) Si L #4-clusters= Lp4(1 p)2 (sin efectos de borde) Densidad de s-clusters: ns = ps(1 p)2 ns: Probabilidad de que un punto arbitrario de la cadena sea el extremo izdo. de un cluster de s elementos. En d = 1 si p < 1, algn punto de la cadena est vaco. Por lo tanto en d = 1 pc = 1

P Se cumple que s sns = p, p < pc() Demostracin: La probabilidad de que un sitio arbitrario pertenezca a un s-cluster es sns Todo sitio ocupado pertenece a un cluster
11

La probabilidad de que un sitio arbitrario pertenezca a un cluster de tamao arbitrario es la probabilidad de que est ocupado p.

Comprobacin: s P sps(1 p)2 = (1 p)2 s p dp = s dp


2 d P s p dp d 1 = (1 p)2p dp ( 1p ) = p

= (1 p) p

Para d > 1 la frmula (*) sigue siendo vlida excluyendo de la suma los clusters innitos. Por la misma razn se ha impuesto p < pc. Si p = pc = 1 entonces slo hay un cluster que ocupa toda la cadena, s = lo que invalida la frmula anterior.

Probabilidad de que un sitio ocupado pertenezca a un cluster nito de tamao s ns es ws = P ns s s


12

Tamao medio de los clusters es

S=

X ns s2 ws s = P ns s

Precaucin: La frmula anterior es vlida en dimensin arbitraria, siempre que se excluya el cluster innito. Clculo de S en d = 1 Denominador= p 2 P 2P 2 s 2 s d Numerador= (1 p) p dp s s p = (1 p) sp

S=

1+p (p < pc) 1p

No es sorprendente que el tamao medio de los clusters S diverja cuando p pc, resultado similar en d > 1. Recordar que hemos excluido el cluster innito. Funcin de Correlacin g(r): probabilidad de que un sitio a distancia r de un
13

sitio ocupado pertenezca al mismo cluster. g(r = 0) = 1 trivialmente g(r = 1) = p la probabilidad de que un vecino est ocupado es p Para un sitio a distancia r , ste y los (r 1) sitios que hay por medio deben estar ocupados luego g(r) = pr Esta expresin puede escribirse en forma exponencial (p < 1) introduciendo la longitud de correlacin r g(r) = exp donde 1 1 (si p pc) = log p pc p Vemos que cerca del punto crtico y S estn relacionados. En d = 1 cerca de pc = 1

2 = 2 1p
14

En d > 1 estas relaciones se generalizan:

|p pc|

S(p) |p pc|

Los exponentes y se llaman exponentes crticos, caracterizan el comportamiento crtico. Universalidad: modelos aparentemente no relacionados tienen exponentes crticos comunes. = 1, = 1 en d = 1 = 4/3, = 43/18 en d = 2 = 0.88, = 1.80 en d = 3
15

1.8e+06

1e+06

1.6e+06

1.4e+06

1e+05

1.2e+06

1e+06 .1e5 800000

600000 .1e4 400000

200000 .1e3 0 0.96 0.98 1 p 1.02 1.04 0.96 0.98 1 p 1.02 1.04

16

Parmetro de orden P: probabilidad de que un sitio pertenezca al cluster percolante.

En d = 1 P = 0 si p < pc P = 1 si p = pc = 1 En d > 1 P = 0 si p < pc P (p pc) si p pc

= 0? en d = 1 = 5/36 en d = 2 = 0.41 en d = 3
17

P es parmetro de orden porque distingue entre las dos fases.

1 0.8 0.6 0.4 0.2 0 0 0.2 0.4 0.6 0.8 1 p 1.2 1.4 1.6 1.8 2

18

Estos comportamientos son tpicos de las transiciones de fase, como las transiciones ferromagnticas o las trmicas. El anlogo ferromagntico de P sera la magnetizacin, S(p) sera la susceptibilidad.

Relacin de hiperescala: los exponentes crticos no son independientes. Se demuestra que estn ligados por la relacin de hiperescala

2 + = d

19

Finite Size Scaling: (Escalado de Tamao Finito?) En un retculo nito, como el que siempre usamos, no puede ser divergente. Lo que observamos cerca del punto crtico es que L luego

L |p pc|
es decir

|p pc| L

1/

En un retculo nito de tamao L L... L tenemos los comportamientos

P(p) (p pc) L

S(p) |p pc|

20

Programa que identica los clusters

Llenar los sitios con probabilidad p: generar un nmero aleatorio, si random#< p se ocupa (0), si no, se deja vacio (-1). Recorrer los sitios de la red, si est ocupado (0) analizo el cluster. Anlisis del cluster: numero el cluster, asigno al sitio el nmero de cluster, creo el cluster. Creacin del cluster: Recorro los 4 vecinos nn, si estn ocupados les asigno el nmero de cluster y vuelvo a Crear el cluster del sitio actual. (autorecurrente, en C se puede)

21

#include <stdio.h> #include <math.h> #include <stdlib.h> #define L 10 #define Norm 1/((float) RAND_MAX +1.0F) #define RAND() rand()*Norm long campo[L][L]; long cluster; void crear_cluster(long xa, long ya) { if(xa<(L-1)) if (campo[xa+1][ya]==0) { campo[xa+1][ya]=cluster; crear_cluster(xa+1,ya); } if(xa>0)

22

if (campo[xa-1][ya]==0) { campo[xa-1][ya]=cluster; crear_cluster(xa-1,ya); } if(ya<(L-1)) if (campo[xa][ya+1]==0) { campo[xa][ya+1]=cluster; crear_cluster(xa,ya+1); } if(ya>0) if (campo[xa][ya-1]==0) { campo[xa][ya-1]=cluster; crear_cluster(xa,ya-1); } }

23

void analiza_clusters(void) { long xa,ya; cluster=0; for(ya=0;ya<L;ya++) { for(xa=0;xa<L;xa++) { if (campo[xa][ya]==0) { cluster++; campo[xa][ya]=cluster; crear_cluster(xa,ya); } } } }

24

void main(void) { int j,k,copias=1; long x, y; float p; p=0.8; /*llenamos la red */ for(p=0.4;p<0.9;p+=0.2) { for (x=0; x< L; x++) { for (y=0;y<L;y++) { campo[x][y]=-1; if (RAND()<p) campo[x][y]=0; } }

25

/* Pinto la red -1 vacio 0 ocupado, el vertice inferior izquierd for(y=L-1;y>=0;y--) { printf("\n"); for (x=0;x<L;x++) printf("%4i",campo[x][y]); } printf("\n"); /* Analizo los clusters: los numero*/ analiza_clusters(); /* Pinto la red analizada*/ for(y=L-1;y>=0;y--) { printf("\n"); for (x=0;x<L;x++) printf("%4i",campo[x][y]); } printf("\n");

26

} }

27

p = 0.4

-1 0 -1 0 0 -1 -1 -1 0 -1 -1 12 -1 10 10 -1 -1 -1 3 -1

-1 0 -1 -1 -1 -1 -1 0 -1 -1 -1 12 -1 -1 -1 -1 -1 1 -1 -1

0 -1 0 0 -1 0 -1 0 0 0 15 -1 11 11 -1 7 -1 1 1 1

-1 0 -1 -1 -1 -1 0 -1 -1 -1 -1 13 -1 -1 -1 -1 6 -1 -1 -1

-1 0 -1 -1 0 0 -1 -1 -1 -1 -1 13 -1 -1 8 8 -1 -1 -1 -1

0 -1 0 0 0 -1 -1 0 0 -1 16 -1 8 8 8 -1 -1 4 4 -1

-1 -1 -1 0 -1 0 -1 -1 -1 0 -1 -1 -1 8 -1 9 -1 -1 -1 2

0 -1 -1 0 -1 -1 -1 -1 0 -1 17 -1 -1 8 -1 -1 -1 -1 5 -1

-1 0 -1 0 0 -1 -1 -1 0 -1 -1 14 -1 8 8 -1 -1 -1 5 -1

-1 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 8 -1 -1 -1 -1 -1 -1

28

p = 0.6

0 -1 0 -1 -1 0 -1 -1 0 0

-1 0 0 0 0 0 0 0 0 -1

0 -1 0 -1 -1 -1 -1 0 0 0

-1 0 -1 0 -1 0 0 0 0 0

-1 -1 -1 -1 0 0 0 0 -1 0

-1 0 0 0 0 0 0 0 -1 -1

0 -1 0 -1 0 -1 0 0 -1 0

-1 -1 0 0 0 0 -1 0 0 -1

-1 0 -1 0 0 -1 0 0 0 0

-1 -1 -1 -1 -1 0 -1 -1 -1 0

7 -1 1 -1 -1 1 -1 -1 1 1

-1 1 1 1 1 1 1 1 1 -1

8 -1 1 -1 -1 -1 -1 1 1 1

-1 5 -1 4 -1 1 1 1 1 1

-1 -1 -1 -1 1 1 1 1 -1 1

-1 1 1 1 1 1 1 1 -1 -1

9 -1 1 -1 1 -1 1 1 -1 2

-1 -1 1 1 1 1 -1 1 1 -1

-1 6 -1 1 1 -1 1 1 1 1

-1 -1 -1 -1 -1 3 -1 -1 -1 1

29

p = 0.8
0 -1 -1 0 0 0 -1 -1 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 -1 -1 0 0 0 -1 0 -1 0 0 0 -1 -1 -1 0 0 0 0

1 -1 -1 1 1 1 -1 -1 1 -1

1 1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 -1 1 1 1

1 -1 1 1 1 1 -1 1 1 -1

1 1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1 1

1 1 -1 1 1 1 1 1 1 -1

1 1 1 1 1 1 1 1 1 1

1 1 -1 -1 1 1 1 -1 1 -1

1 1 1 -1 -1 -1 1 1 1 1

30

Buscando pc en d = 2 desesperadamente

P Divergencia en S(p) = nss2/p S(p) |p pc|


Cero de P(p), P(p) (p pc) Usar el Cumulante de Binder

Programa: medir S(p) medir P : tamao del cluster mayor


31

Cumulante de Binder: Hemos visto cmo un observable en un retculo nito se comporta cerca del punto crtico, por ejemplo, P(p, L) L/ f (L/). Teniendo en cuenta que |p pc| resulta P(p, L) L/ f (L1/ (p pc)) + ...correcciones La funcin f es adimensional y en el punto crtico vale lo mismo para todos los retculos: f (0). La idea es construir un observable adimensional y medirlo para diferentes retculos, el punto de corte nos permite situar pc. 2 Medimos P / P 2 Clculo de exponentes crticos Clculo de / y / a partir de los resultados obtenidos para los diferentes retculos en el punto crtico pc.
32

L 20 40 60 80 100

P 0.321150 0.285344 0.265747 0.259272 0.258841

P 0.012502 0.010357 0.010568 0.010223 0.009529

S 103.295242 453.986938 966.906311 1545.201416 2195.645020

S 12.146055 39.013599 95.575912 150.094986 210.034210

Realizamos los ajustes de dos parmetros

P(L) = a1L 2 , S(L) = b1L


donde a2 = / y b2 = / Obviamente es ms fcil

b2

log P = log a1 + a2 log L

log S = log b1 + b2 log L


33

34

Ajuste de n datos experimentales a una funcin Sean yi, (i = 1, .., n) los valores medidos, con errores (desviaciones tpicas) i en los puntos (exactos) xi. Sea la relacin terica y = f (x, {ak }), donde {ak } representa un conjunto de parametros (k < n). En el caso que nos ocupa slo tenemos 2. Objetivo: encontrar los mejores parmetros Principio de mxima verosimilitud: los mejores parmetros minimizan la expresin

n X (yi f (xi, {ak })2 i=1 2 i

Condiciones de mnimo 2/ak = 0 , (k = 1, .., m) En el caso de que f (x, ak ) = a1f1(x)+a2f2(x)+.. la solucin es fcil, en nuestro caso, f (x, a1, a2) = a1 + a2x, luego para un conjunto de n datos las condiciones de mnimo son
35

n X i=1 n X i=1

(yi a1 a2xi)/i = 0
2

(yi a1 a2xi)xi/i = 0

Deniendo n n X yi X xiyi Y1 = , Y2 = 2 2 i i i=1 i=1 n n n X 1 X xi X x2 i M11 = ,M12 = y M22 = 2 2 2 i i i i=1 i=1 i=1 EL sistema lineal de ecuaciones se escribe en forma matricial

Y = Ma
Con solucin
1

a=M

36

Clculo de los errores en los parmetros Sean k los valores exactos de los parmetros. Caculemos el siguiente valor medio

(ak k )(aq q )
de acuerdo con la solucin encontrada

X fj (xi) 1 (M )kj (ak k ) = (yi yi) 2 i ji


Por otra parte

(yi yi)(yj yj ) = i il
Por tanto

X fj (xi)fp(xi) 1 1 (ak k )(aq q ) = (M )kj (M )qp 2 i jipl


37

de acuerdo con la denicin de la matriz M

(ak k )(aq q ) = (M

)kq

Conclusin

(ak ) =

(M 1)kk

38

Para los datos recogidos en la tabla anterior resulta

= 0.14(3) ,
a comparar con los resultados exactos

= 1.88(8)

5 = = 0.10 , 48

43 = = 1.79 24

Para calcular usamos la relacin de hiperescala

d = + 2

39

También podría gustarte