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.

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

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. Teoría de scaling escala: trata de describirlos. Si L ≈ 106 sitios. 7 . necesitamos un ordenador para analizar los clusters.Para p = 0.7 sólo hay 4 clusters.

Aplicaciones: 1. 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. La “vida” del fuego es el número de barridos necesarios para que el fuego termine. Cuadrado ocupado: árbol verde.-Fuego en los bosques Simular un bosque por una red cuadriculada. 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 fila. ¿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.5928 para el que la vida del fuego 8 .

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

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

Por lo tanto en d = 1 pc = 1 P Se cumple que s sns = p. 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 . En d = 1 si p < 1. de un cluster de s elementos. algún punto de la cadena está vacío.Solución 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.

Probabilidad de que un sitio ocupado pertenezca a un cluster finito de tamaño s ns es ws = P ns s s 12 . 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. Por la misma razón se ha impuesto p < pc.

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. siempre que se excluya el cluster infinito. Función de Correlación g(r): probabilidad de que un sitio a distancia r de un 13 . resultado similar en d > 1.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. Recordar que hemos excluido el cluster infinito.

sitio ocupado pertenezca al mismo cluster. En d = 1 cerca de pc = 1 S 2 = 2ξ 1−p 14 . 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.

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

6e+06 1.04 0.1e5 800000 600000 .1e3 0 0.2e+06 1e+06 .98 1 p 1.8e+06 1e+06 1.96 0.04 16 .1e4 400000 200000 .96 0.1.02 1.98 1 p 1.02 1.4e+06 1e+05 1.

Parámetro de orden P∞: probabilidad de que un sitio pertenezca al cluster percolante.41 en d = 3 17 . 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.

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

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

Finite Size Scaling: (Escalado de Tamaño Finito?) En un retículo finito. ξ no puede ser divergente.. × L tenemos los comportamientos P∞(p) ∼ (p − pc) ∼ L β −β/ν S(p) ∼ |p − pc| −γ ∼L γ/ν 20 . 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.

Recorrer los sitios de la red. si random#< p se ocupa (0). asigno al sitio el número de cluster. si está ocupado (0) analizo el cluster. ◦ Creación del cluster: Recorro los 4 vecinos nn. creo el cluster. si no. • Análisis del cluster: numero el cluster. en C se puede) 21 . 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. se deja vacio (-1). (autorecurrente.

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

crear_cluster(xa-1.ya+1). } if(ya>0) if (campo[xa][ya-1]==0) { campo[xa][ya-1]=cluster.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. } } 23 . crear_cluster(xa.ya).ya-1).

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

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

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

} } 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).

Cumulante de Binder: Hemos visto cómo un observable en un retículo finito se comporta cerca del punto crítico. P∞(p.. por ejemplo.. 32 . Teniendo en cuenta que ξ ∼ |p − pc|−ν resulta P∞(p. La idea es construir un observable adimensional y medirlo para diferentes retículos. 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. L) ∼ L−β/ν f (L1/ν (p − pc)) + . el punto de corte nos permite situar pc. L) ∼ L−β/ν f (L/ξ).correcciones La función f es adimensional y en el punto crítico vale lo mismo para todos los retículos: f (0).

146055 39.645020 σS 12.094986 210.265747 0.986938 966.285344 0.295242 453.010568 0.034210 Realizamos los ajustes de dos parámetros P∞(L) = a1L 2 . 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 .201416 2195.258841 σP 0.575912 150.012502 0.906311 1545.259272 0.L 20 40 60 80 100 P∞ 0.013599 95.010357 0.009529 S 103.321150 0.010223 0.

34 .

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

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

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 .14(3) . ν 48 γ 43 = = 1.79 ν 24 Para calcular ν usamos la relación de hiperescala dν = γ + 2β 39 .Para los datos recogidos en la tabla anterior resulta β = 0.88(8) ν β 5 = = 0. ν a comparar con los resultados “exactos” γ = 1.

Sign up to vote on this title
UsefulNot useful