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 .

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.

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

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

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

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

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

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

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

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

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

04 0.8e+06 1e+06 1.02 1.2e+06 1e+06 .1e3 0 0.96 0.1e4 400000 200000 .04 16 .4e+06 1e+05 1.6e+06 1.98 1 p 1.96 0.02 1.1e5 800000 600000 .98 1 p 1.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 .

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

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

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

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

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

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

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

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

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

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

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

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

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 .013599 95.010223 0.094986 210.012502 0.285344 0.034210 Realizamos los ajustes de dos parámetros P∞(L) = a1L 2 .201416 2195.010357 0.009529 S 103.258841 σP 0.010568 0.146055 39.L 20 40 60 80 100 P∞ 0.575912 150.265747 0.906311 1545.295242 453.321150 0.645020 σS 12.259272 0.986938 966.

34 .

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

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

Cálculo de los errores en los parámetros Sean αk los valores “exactos” de los parámetros. 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 .

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 .

Para los datos recogidos en la tabla anterior resulta β = 0.88(8) ν β 5 = = 0.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) .

Sign up to vote on this title
UsefulNot useful