La teoría del caos y el efecto mariposa

Para empezar sólo la voy a llamar teoría del caos en el título. Era para captar al atención, y este nombre lo consigue.  Es mejor decirle ‘de los sistemas dinámicos’ o algo así. Por desgracia, la fama de todo esto ha hecho que se encuentre de todo en internet. Por ejemplo hoy he visto una página donde se afirmaba que el efecto mariposa era los efectos de… ¡viajar en el tiempo! Impresionante. Y es que aficionarse a la ciencia está bien, pero sin perder el norte.

Por el nombre (caos) hay gente que piensa que un comportamiento caótico es aleatorio e impredecible. Vamos, un cisco bueno. Lo cierto es que lo primero es falso y lo segundo, como casi siempre, es ‘depende’.

El caos es ‘determinista‘, que quiere decir que dado un estado inicial, el comportamiento a largo plazo está determinado sin error posible y es único. Esto es, que está ‘determinado’ por el estado inicial. Consideremos un sistema discreto, es decir, una ley de recurrencia, por ejemplo la también famosa ley de Fibonacci, pero sin estados iniciales. Entonces la dinámica (la ley que sigue el sistema) es f_n=f_{n-1}+f_{n-2} Dados dos estados iniciales, por ejemplo 1,1 conocemos todos los valores de f. Además, si realizamos el experimento dos veces con los mismos valores iniciales los resultados serán idénticos. Eso quiere decir determinista.

Diferentes son los sistemas probabilistas. En estos sistemas hay un componente azaroso que impide conocer el largo plazo. Pero lo que de verdad los caracteriza es que para el mismo dato inicial podemos obtener resultados de los experimentos completamente distintos. Por ejemplo (muy poco válido como veremos ahora), una moneda. Consideramos el experimento tirar una vez la moneda. A mismas condiciones unas veces saldrá cara y otras cruz. Digo que es un mal ejemplo, porque este modelo es probabilista sólo por nuestro desconocimiento, pues si conociésemos la dirección y la fuerza exactas del lanzamiento sabríamos si saldrá cara o cruz. La gravedad es determinista. Esto nos podría llevar a pensar hasta que punto existe el azar, o si puede ser la probabilidad sólo una herramienta útil dada nuestra ignoracia de la realidad completa. Pensar en un mundo completamente determinista ya lo hizo Laplace. Y tiene una frase famosa por ello.

Ya hemos entendido la palabra determinista (si no es así tenéis que releerlo). Veamos el ‘depende’.

Es aquí donde entra el ‘efecto mariposa‘, que es el nombre que le puso Edward Lorenz a la sensibilidad a los datos iniciales. ¿A que es exótico?. Creo que su idea era atraer la atención hacia su conferencia. El efecto mariposa viene a decir que cualquier cambio minúsculo acaba teniendo repercusiones enormes, y por lo tanto nuestra aproximación (predicción) será una chapuza completa. O exóticamente

Si una mariposa batiese sus alas en Pekín provocaría un tornado en Texas un mes siguiente.

O algo parecido. Bueno, no matéis a todas las mariposas para evitar los tornados. No hay que cogerlo tan literal. En realidad hay que hacer una interpretación de casi todo. Las mariposas no provocan tornados. Los tornados surgen de un conjunto de factores que los hacen posibles, esto es, todas las mariposas del mundo, nuestros aviones, nosotros corriendo, la humedad en mi pueblo… Ahora, si pudiesemos tener dos planetas Tierra, con exactamente las mismas condiciones salvo una mariposa, entonces los climas serían distintos. ¿En qué sentido (ahora viene el depende)?. Bueno, no distintos en el sentido de que en Valencia helase por las noches. Llamemos a este tipo de cambios bruscos cambios de tipo 1. No, serían cambios en el orden y en el tiempo (tiempo-temporal, no tiempo-clima). Por ejemplo, un tornado que apareciese en un planeta el día 1 de Julio en el otro no aparecería y aparecería uno el 18 de Agosto. O una tormenta en mi pueblo no caería, caería en Albaladejo. Estos son los cambios de tipo 2.

Los cambios de tipo 1 son cambios bruscos que no quiere nadie. Estos cambios van asociados a cambios muy profundos en el sistema. Ahora tengo que ponerme técnico, lo siento. En un sistema dinámico, hay asociado un espacio de fases, que es un sitio donde viven las características del sistema. En este lugar de posiciones y velocidades (si es físico el sistema) o en el caso del clima de humedades y temperaturas, existen ‘cosas’ que atraen. Además son cosas raras normalmente en los casos caóticos. De hecho son fractales. Como no tenían muchas ganas de buscar un nombre exótico los llamaron ‘atractores extraños’. Posee la virtud de la simpleza. Los comportamientos del sistema cambian bruscamente entre unos atractores y otros (el mismo sistema puede tener varios al variar los parámetros). Es decir, para seguir con el ejemplo del clima, tenemos nuestro porcentaje de CO2 en la atmósfera en un nivel x. Nuestro sistema entonces tiene x como un parámetro. Si aumenta el porcentaje, digamos a 2x entonces nuestro sistema cambia de parámetro, pudiéndose producir un cambio de atractor, con el consiguiente nevazo en la Malvarrosa. Podemos ver esto del plano de fases y los atractores como un par de platos hondos y una aceituna, tenemos los platos juntos de manera que la aceituna reposa en el borde de ellos. La aceituna caerá rodando a uno de ellos. Los platos son los atractores, el conjunto de los dos es el espacio de fases y nuestra aceituna es el estado del sistema.

Dicho esto, está claro que hay que evitar los cambios de tipo 1. Los de tipo 2 son mejores en general.

Resumiendo, si tenemos un estado inicial, este nos viene dado por un conjunto de mediciones que hemos hecho. Estas mediciones no tienen (ni pueden) tener una precisión infinita (en cuyo caso el estado del sistema estaría determinado siempre) por lo que aparecen pequeños errores entre nuestro estado inicial para realizar los cálculos y la predicción y el verdadero estado inicial. Es decir, en nuestro espacio de fases hay dos puntos distintos, el de las medidas y el real. Al ser el comportamiento caótico, al avanzar el tiempo las curvas que tracen estos puntos se separarán. Y consecuentemente nuestra predicción a largo tiempo fallará.

Concluyendo, el ‘depende’ significa que podemos predecir el corto (quizá muy corto) plazo con poco error y podemos predecir si habrá cambio de atractor o no. Esto es comparable a decir que en Cuenca en Julio hará calor pero no poder decir habrá 36º C a las 15 de la tarde del día 2 de Julio. Decir que hará calor es decir el atractor, decir la temperatura exacta a la hora cabal es una predicción a largo plazo.

El comportamiento caótico existe, además es muy común. Aparece en todas las ramas del saber, física, biología medicina… Necesita algunas cosas para que se pueda dar. El sistema de ecuaciones diferenciales ha de ser no lineal y tener una dimensión mayor que dos. Pero esto no es nada raro en la cruda realidad fuera de las ‘oscilaciones pequeñas’ y cosas por el estilo.

He hecho un programita en Matlab para ver la sensibilidad a los datos iniciales:

function [x1,y1,z1,Y1,x2,y2,z2,Y2]=caoslogistica
%Este codigo estudia varios casos de 2 sistemas dinamicos discretos
%que conducen a un comportamiento caotico para ciertos valores
%de un parametro. Asi mismo dibuja unos diagramas de bifurcacion.
%Para el primer caso se puede poner k=4 para ver el comportamiento
%caotico. Para el segundo se puede poner k=1.6.
%Rafael Granero Belinchon.

disp(‘Comenzamos con el sistema dinamico Xn+1=k1Xn(1-Xn)’)
disp(‘—Primer Experimento:—‘)
k1=input(‘Dame una constante entre 0 y 4:’);
x0=input(‘Dame un valor inicial entre 0 y 1:’);
x1(1)=x0;
for i=1:100
x1(i+1)=k1*x1(i)*(1-x1(i));
end
disp(‘—Segundo Experimento:—‘)
k2=input(‘Dame una constante entre 0 y 4:’);
y0=input(‘Dame un valor inicial entre 0 y 1:’);
y1(1)=y0;
for i=1:100
y1(i+1)=k2*y1(i)*(1-y1(i));
end
disp(‘—Tercer Experimento:—‘)
k3=input(‘Dame una constante entre 0 y 4:’);
z0=input(‘Dame un valor inicial entre 0 y 1:’);
z1(1)=z0;
for i=1:100
z1(i+1)=k3*z1(i)*(1-z1(i));
end
subplot(4,1,1)
plot(x1);title(‘Primer experimento’);
subplot(4,1,2)
plot(y1);title(‘Segundo experimento’);
subplot(4,1,3)
plot(z1);title(‘Tercer experimento’);
subplot(4,1,4)
plot(z1,’r’);
hold on
plot(x1);
hold on
plot(y1,’k’);title(‘Todos juntos’);
hold off
a=input(‘Presiona cualquier tecla para continuar:’);
clear a;
disp(‘Comenzamos con el sistema dinamico Xn+1=k1Xn^2-1’)
disp(‘—Primer Experimento:—‘)
k1=input(‘Dame una constante entre 0 y 4:’);
x0=input(‘Dame un valor inicial entre 0 y 1:’);
x2(1)=x0;
for i=1:100
x2(i+1)=k1*x2(i)^2-1;
end
disp(‘—Segundo Experimento:—‘)
k2=input(‘Dame una constante entre 0 y 4:’);
y0=input(‘Dame un valor inicial entre 0 y 1:’);
y2(1)=y0;
for i=1:100
y2(i+1)=k2*y2(i)^2-1;
end
disp(‘—Tercer Experimento:—‘)
k3=input(‘Dame una constante entre 0 y 4:’);
z0=input(‘Dame un valor inicial entre 0 y 1:’);
z2(1)=z0;
for i=1:100
z2(i+1)=k3*z2(i)^2-1;
end
figure
subplot(4,1,1)
plot(x2);title(‘Primer experimento’);
subplot(4,1,2)
plot(y2);title(‘Segundo experimento’);
subplot(4,1,3)
plot(z2);title(‘Tercer experimento’);
subplot(4,1,4)
plot(z2,’r’);
hold on
plot(x2);
hold on
plot(y2,’k’);title(‘Todos juntos’);
hold off
a=input(‘Presiona cualquier tecla para continuar:’);
clear a;
disp(‘Vamos a dibujar ahora un diagrama de bifurcacion para el primer sistema’)
K=0:0.01:4;
X=zeros(length(K),5000);;
X(:,1)=0.3;
for j=1:length(K);
for i=1:5000
X(j,i+1)=K(j)*X(j,i)*(1-X(j,i));
end
end
Y1=X(:,4000:end);
figure
plot(Y1);title(‘Diagrama de bifurcacion para el primer sistema’)
a=input(‘Presiona cualquier tecla para continuar:’);
clear a;
disp(‘Vamos a dibujar ahora un diagrama de bifurcacion para el segundo sistema’)
K=0:0.01:4;
X=zeros(length(K),5000);
X(:,1)=0.3;
for j=1:length(K);
for i=1:5000
X(j,i+1)=K(j)*X(j,i)^2-1;
end
end
Y2=X(:,4000:end);
figure
plot(Y2);title(‘Diagrama de bifurcacion para el segundo sistema’)

Primer experimento (k=4)

La diferencia entre los datos iniciales es de 0.01 entre el de arriba y el segundo y de 0.001 entre el primero y el tercero. Como se puede ver en la gráfica de abajo, las trayectorias se separan más o menos por llegado un tiempo, pero al principio iban bien juntitas. Además podemos ver que todas estan en el mismo atractor. Eso se ve por los ‘patrones’ característicos que tienden a producirse. Me refiero a las oscilaciones grandes seguidas de varias muy pequeñas.  Esto se entiende fácil si se imagina uno nuestro estado del sistema como una mosca cansina. Estará dando vueltas a tu alrededor, quizá de forma complicada, pero antes o despues va a volver a pasar por tu oreja, quizá no como la vez anterior, pero muy cerca. Eso es lo que produce estos patrones. Que nuestro estado pasa cerca de una cierta parte del atractor.

Segundo experimento (k=1.6)

Arriba se muestran los resultados de ejecutar el código poniendo k=4 para el primer sistema y k=1.6 para el segundo. Veamos cómo cambia el carácter de la solución al mover k:

Otra cosa que resultaba ‘rara’ del comportamiento caótico era que reglas aparentemente muy sencillas (como puede ser elevar al cuadrado y restar 1) daban comportamientos muy complicados. También ocurre al revés, reglas aparentemente complicadas dan comportamiento simple.

Quizá otro día hable del sistema de Lorenz y de su atractor famoso.