PERCOLACIÓN

1

¿Qué es percolación?

Próximos vecinos: cuadrados con lado común (nn) Siguientes próximos vecinos: cuadrados con vértice común(nnn)
2

Cluster: Grupo de cuadrados nn ocupados. Teoría de la Percolación: Propiedades de los clusters. Percolación random: cada sitio de la red se ocupa aleatoriamente con probabilidad p. Ejercicio Escribir un programa que “dibuje” los sitios ocupados y vacíos en un retículo 15x15 para p = 0.3, p = 0.5 y p = 0.7. Identificar los clústers mayores.
3

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 4 .p=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 5 .

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 6 .

Si L ≈ 106 sitios. Teoría de scaling escala: trata de describirlos.7 sólo hay 4 clusters.Para p = 0. 7 . Cluster percolante: ocupa casi todo el retículo Probabilidad crítica pc donde aparece por primera vez cluster percolante Fenómenos críticos: fenómenos cerca de pc. necesitamos un ordenador para analizar los clusters.

a derecha Un árbol encendido prende a su vecino nn a la derecha y al de abajo (si existen). Resultado: Existe un valor crítico de p (ocupación) cerca de 0. Al cabo de un barrido completo el árbol está quemado no puede seguir encendiendo a los vecinos.-Fuego en los bosques Simular un bosque por una red cuadriculada.5928 para el que la vida del fuego 8 . Cuadrado ocupado: árbol verde. La “vida” del fuego es el número de barridos necesarios para que el fuego termine. ¿Cuánto tiempo tarda un fuego en penetrar en el bosque o en extinguirse? Simulación: Encender todos los árboles de la primera fila Recorremos la red (bosque) por filas de izda. Fuego termina cuando no quedan árboles encendidos o el fuego llega a la última fila.Aplicaciones: 1.

5 0.4 0.6 p 9 . De hecho aumenta con el tamaño del bosque T 0.aumenta.

10 . La probabilidad de ocupación p se llama porosidad de la roca. Cuadrado ocupado: petróleo. Para ganar dinero hay que perforar si p > pc.2. Resultado: Si p < pc el petróleo está distribuido en clusters finitos. Si p < pc al perforar al azar lo más probable será pinchar un cluster pequeño y el pozo será poco rentable.-¡Buscar petróleo! Simular un material poroso que contiene gas o petróleo.

p < pc(∗) Demostración: La probabilidad de que un sitio arbitrario pertenezca a un s-cluster es sns Todo sitio ocupado pertenece a un cluster 11 . algún punto de la cadena está vacío. 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.Solución exacta en d = 1 La probabilidad de que un punto de la red (cadena ahora) sea el extremo izdo. En d = 1 si p < 1. de un cluster de s elementos. Por lo tanto en d = 1 pc = 1 P Se cumple que s sns = p.

Si p = pc = 1 entonces sólo hay un cluster que ocupa toda la cadena.La probabilidad de que un sitio arbitrario pertenezca a un cluster de tamaño arbitrario es la probabilidad de que esté ocupado p. s = ∞ lo que invalida la fórmula anterior. P Comprobación: 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 ( 1−p ) = p = (1 − p) p Para d > 1 la fórmula (*) sigue siendo válida excluyendo de la suma los clusters infinitos. Probabilidad de que un sitio ocupado pertenezca a un cluster finito de tamaño s ns es ws = P ns s s 12 . Por la misma razón se ha impuesto p < pc.

Recordar que hemos excluido el cluster infinito. siempre que se excluya el cluster infinito.Tamaño medio de los clusters es S= X X ns s2 ws s = P ns s Precaución: La fórmula anterior es válida en dimensión arbitraria. Cálculo 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) 1−p No es sorprendente que el tamaño medio de los clusters S diverja cuando p → pc. resultado similar en d > 1. Función de Correlación g(r): probabilidad de que un sitio a distancia r de un 13 .

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 expresión puede escribirse en forma exponencial (p < 1) introduciendo la longitud de correlación ξ « „ −r g(r) = exp ξ donde 1 1 (si p pc) ξ=− log p pc − p Vemos que ξ → ∞ cerca del punto crítico ξ y S están relacionados. En d = 1 cerca de pc = 1 S 2 = 2ξ 1−p 14 .sitio ocupado pertenezca al mismo cluster.

En d > 1 estas relaciones se generalizan: ξ ∼ |p − pc| −ν S(p) ∼ |p − pc| −γ Los exponentes ν y γ se llaman exponentes críticos. ν = 1. Universalidad: modelos aparentemente no relacionados tienen exponentes críticos comunes. caracterizan el comportamiento crítico. γ = 1. γ = 43/18 en d = 2 ν = 0. γ = 1 en d = 1 ν = 4/3.88.80 en d = 3 15 .

04 0.2e+06 1e+06 .98 1 p 1.96 0.6e+06 1.1e5 800000 600000 .04 16 .1.98 1 p 1.1e3 0 0.4e+06 1e+05 1.96 0.1e4 400000 200000 .8e+06 1e+06 1.02 1.02 1.

Parámetro 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 .

2 0. 1 0.4 0.2 1.2 0 0 0.6 0.6 1.8 2 18 .6 0.4 0.8 1 p 1.8 0.P∞ es parámetro de orden porque distingue entre las dos fases.4 1.

Estos comportamientos son típicos de las transiciones de fase. como las transiciones ferromagnéticas o las térmicas. El análogo ferromagnético de P∞ sería la magnetización. Relación de hiperescala: los exponentes críticos no son independientes. Se demuestra que están ligados por la relación de hiperescala 2β + γ = νd 19 . S(p) sería la susceptibilidad.

como el que siempre usamos.. Lo que observamos cerca del punto crítico es que ξ ∼ L luego L ∼ |p − pc| es decir −ν |p − pc| ∼ L −1/ν En un retículo finito de tamaño L × L.. ξ no puede ser divergente.Finite Size Scaling: (Escalado de Tamaño Finito?) En un retículo finito. × L tenemos los comportamientos P∞(p) ∼ (p − pc) ∼ L β −β/ν S(p) ∼ |p − pc| −γ ∼L γ/ν 20 .

si está ocupado (0) analizo el cluster. si no. si están ocupados les asigno el número de cluster y vuelvo a Crear el cluster del sitio actual.Programa que identifica los clusters Llenar los sitios con probabilidad p: generar un número aleatorio. creo el cluster. se deja vacio (-1). en C se puede) 21 . Recorrer los sitios de la red. si random#< p se ocupa (0). ◦ Creación del cluster: Recorro los 4 vecinos nn. (autorecurrente. asigno al sitio el número de cluster. • Análisis del cluster: numero el cluster.

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

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

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

2) { for (x=0.9. float p.copias=1.y++) { campo[x][y]=-1. p=0.void main(void) { int j.8. y. } } 25 .p+=0.k.4. long x. if (RAND()<p) campo[x][y]=0. x++) { for (y=0.p<0.y<L. /*llenamos la red */ for(p=0. x< L.

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

} } 27 .

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 .p = 0.

P∞(p) ∼ (p − pc)β Usar el Cumulante de Binder Programa: medir S(p) medir P∞ ≡: tamaño del cluster mayor 31 .Buscando pc en d = 2 desesperadamente P Divergencia en S(p) = nss2/p S(p) ∼ |p − pc|−γ Cero de P∞(p).

La idea es construir un observable adimensional y medirlo para diferentes retículos. P∞(p. 2 Medimos P∞ / P∞ 2 Cálculo de exponentes críticos Cálculo de γ/ν y β/ν a partir de los resultados obtenidos para los diferentes retículos en el punto crítico pc.correcciones La función f es adimensional y en el punto crítico vale lo mismo para todos los retículos: f (0). L) ∼ L−β/ν f (L/ξ).. L) ∼ L−β/ν f (L1/ν (p − pc)) + . el punto de corte nos permite situar pc. 32 . Teniendo en cuenta que ξ ∼ |p − pc|−ν resulta P∞(p.. por ejemplo.Cumulante de Binder: Hemos visto cómo un observable en un retículo finito se comporta cerca del punto crítico.

010568 0.010357 0.146055 39.285344 0.575912 150.265747 0.201416 2195.258841 σP 0.012502 0.645020 σS 12.034210 Realizamos los ajustes de dos parámetros P∞(L) = a1L 2 .010223 0.259272 0.L 20 40 60 80 100 P∞ 0. S(L) = b1L donde a2 = −β/ν y b2 = γ/ν Obviamente es más fácil a b2 log P ∞ = log a1 + a2 log L log S = log b1 + b2 log L 33 .094986 210.986938 966.906311 1545.009529 S 103.295242 453.321150 0.013599 95.

34 .

. ak ) = a1f1(x)+a2f2(x)+. a1. m) En el caso de que f (x. f (x. a2) = a1 + a2x. {ak }). . en nuestro caso. n) los valores medidos. Objetivo: encontrar los mejores parámetros Principio de máxima verosimilitud: los mejores parámetros minimizan la expresión χ = 2 n X (yi − f (xi.. luego para un conjunto de n datos las condiciones de mínimo son 35 . con errores (desviaciones típicas) σi en los puntos (exactos) xi. . la solución es fácil. (i = 1..Ajuste de n datos experimentales a una función Sean yi. Sea la relación teórica y = f (x. (k = 1... donde {ak } representa un conjunto de parametros (k < n). {ak })2 i=1 2 σi Condiciones de mínimo ∂χ2/∂ak = 0 . En el caso que nos ocupa sólo tenemos 2.

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 solución −1 a=M Y 36 .n X i=1 n X i=1 (yi − a1 − a2xi)/σi = 0 2 2 (yi − a1 − a2xi)xi/σi = 0 Definiendo 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 = .

Caculemos el siguiente valor medio (ak − αk )(aq − αq ) de acuerdo con la solución 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 2 X fj (xi)fp(xi) −1 −1 (ak − αk )(aq − αq ) = (M )kj (M )qp 2 σi jipl 37 .Cálculo de los errores en los parámetros Sean αk los valores “exactos” de los parámetros.

de acuerdo con la definición de la matriz M (ak − αk )(aq − αq ) = (M −1 )kq Conclusión σ(ak ) = q (M −1)kk 38 .

10 . ν 48 γ 43 = = 1.79 ν 24 Para calcular ν usamos la relación de hiperescala dν = γ + 2β 39 . ν a comparar con los resultados “exactos” γ = 1.14(3) .Para los datos recogidos en la tabla anterior resulta β = 0.88(8) ν β 5 = = 0.

Sign up to vote on this title
UsefulNot useful