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

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

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.

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 .

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

a derecha Un árbol encendido prende a su vecino nn a la derecha y al de abajo (si existen). 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. Cuadrado ocupado: árbol verde.5928 para el que la vida del fuego 8 . 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. Al cabo de un barrido completo el árbol está quemado no puede seguir encendiendo a los vecinos.Aplicaciones: 1.-Fuego en los bosques Simular un bosque por una red cuadriculada.

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

Para ganar dinero hay que perforar si p > pc. Cuadrado ocupado: petróleo. La probabilidad de ocupación p se llama porosidad de la roca.2. Si p < pc al perforar al azar lo más probable será pinchar un cluster pequeño y el pozo será poco rentable. 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. 10 .

de un cluster de s elementos. 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 . 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. En d = 1 si p < 1.Solución exacta en d = 1 La probabilidad de que un punto de la red (cadena ahora) sea el extremo izdo.

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. Si p = pc = 1 entonces sólo hay un cluster que ocupa toda la cadena. 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.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. Función de Correlación g(r): probabilidad de que un sitio a distancia r de un 13 . Recordar que hemos excluido el cluster infinito. siempre que se excluya el cluster infinito. resultado similar en d > 1.

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

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

96 0.96 0.4e+06 1e+05 1.98 1 p 1.2e+06 1e+06 .02 1.1.02 1.1e3 0 0.04 0.6e+06 1.1e4 400000 200000 .98 1 p 1.1e5 800000 600000 .04 16 .8e+06 1e+06 1.

41 en d = 3 17 .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.

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

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

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

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

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

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

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

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

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

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∞ ≡: tamaño del cluster mayor 31 .

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

094986 210.575912 150.013599 95.906311 1545.010223 0.285344 0.012502 0.259272 0.645020 σS 12.201416 2195.295242 453. 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 .009529 S 103.265747 0.010357 0.146055 39.986938 966.L 20 40 60 80 100 P∞ 0.010568 0.321150 0.034210 Realizamos los ajustes de dos parámetros P∞(L) = a1L 2 .258841 σP 0.

34 .

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

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 .

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

Sign up to vote on this title
UsefulNot useful