La ecuación logística

La ecuación logística es una de los  ejemplos más ricos de la matemática. Está definida por la iteración

donde el valor inicial x0 es 0 £ x0£ 1 y el parámetro 0 £ r £ 4. En otras palabras, dado un valor inicial 0 £ x0 £ 1, generamos un nuevo valor x1 a partir de la relación x1=rx0(1-x0) y luego repetimos el proceso para generar x a partir de  x1, y así sucesivamente. Esta recurrencia viene a ser iterar la ecuación x=f(x), donde f(x)=rx(1-x). Justamente se tiene que f : [0,1] ---> [0,1] cuando el parámetro es 0 £ r £ 4.

Los punto fijos de x=f(x) son las soluciones de la ecuación

x= r x (1-x)
Resolviéndola, aparecen  los dos puntos fijos p1=0 y  p2=(r-1)/r.  Con una calculadora, o con matlab, podemos calcular
fácilmente los  términos de esta iteración. Por ejemplo, si hacemos sucesivamente con matlab
 
>>r=0.5;
>> x=0.8;
>> x=r*x*(1-x)
>> x=r*x*(1-x)  ....
irán apareciendo los términos correspondientes al parámetro r=0.5 empezando la iteración en x0=0.8. Se observa que
para este r=0.5,  la órbita tiende a 0, cualquiera que sea el x0. Cuando r=0.7 ocurre lo mismo. Pero para r=1.5  los
valores xn  se acercan a 1/3. Cuando r=2, se acercan ahora a 0.5.  Quizás sorprendentemente, a partir de r>3, aparece una
bifurcación, ya que por ejemplo, con r=3.2 los sucesivos términos xn van oscilando entre 0.5130456... ,  0.799456...
Al aumentar r, cada uno de estos límites se bifurca a su vez. Así por ejemplo para r=3.5 aparece un ciclo de periodo 4 dado por
0.38282.., 0.82694..., 0.50088..., y 0.87500.. . Para r=3.55, las órbitas forman ahora un ciclo de periodo 8. Pero, si seguimos
aumentando r, los términos van tomando valores uno tras otro sin ningún esquema aparente, es el caos. A veces aparece un cierto
orden, por ejemplo el parámetro  r=3.835 da ahora periodo 3. Pero se van alternando incomprensiblemente orden y caos.

    En la tabla siguiente hacemos un pequeño programa de matlab que obtiene como resultado la figura de la derecha. En abscisas
colocamos los valores de r, mientras que en ordenadas colocamos los puntos xn que aparecen en la sucesión una vez que se ha
estabilizado,  no colocando en la gráfica los 100 primeros términos. En este diagrama, llamado de Feigenbaum, se observa que
de manera conjunta todo el proceso.  Para 0<r<3 los iterados se acercan a un valor límite, tal como esperábamos. Luego empiezan
las bifurcaciones y el caos, junto con ciertas ventanas de intervalos con periodicidad.
 
function x=feigenbaum(x0,mu,N0,N)
%ejemplo: feigenbaum(0.2,[1:0.05:4],100,200);
%x0=0.2; valor inicial
%mu=1:0.1:4; parámetro de f(x)=mu*x*(1-x)
%N0=100;  N=200; 
M=length(mu);
x=zeros(N+1,M);
for m=1:M
   x(1,m)=logmap(x0,mu(m),N0);
   for n=1:N
      x(n+1,m)=mu(m)*x(n,m)*(1-x(n,m));
   end
end
plot(mu,x,'m','markersize',3);
title('Biburcacion de Feigenbaum');
xlabel('mu');
ylabel('x(n)');
function x=logmap(x0,mu,N)
if N==0
   x=mu*x0*(1-x0);
else
   aux=logmap(x0,mu,N-1);
   x=mu*aux*(1-aux);
end

¿Qué está sucediendo en realidad?  Veamos, sabemos que si  es un punto fijo de x=g(x), entonces  xn=g(xn)
converge hacia alpha cuando es |g'(a)|<1, ya que por el Teorema del Valor Medio
xn+1- a = g(xn)-g(a g¢(a) (xn-a)

En nuestro caso, para el segundo punto fijo de f(x)=r x(1-x),

sabemos que la sucesión se acercará a p2 , a partir de un cierto valor inicial, siempre que sea |f ' ( p2)| < 1.
¿Para qué  valores de r se cumple esta condición y por tanto obtenemos la convergencia?.
Al ser  f(x)=rx(1-x)=rx-rx2, se tiene

f '(x)=r-2rx
Luego f ' ( p2)=r-2r(r-1)/r=-r+2, siendo  |f ' ( p2)| < 1 justo cuando  |-r+2| < 1, esto es
1<r<3
que es lo observado anteriormente.
 
Para el estudio de estas iteraciones es conveniente representarlas en
un gráfico. Si la ecuación a iterar es x=f(x), empezamos con un x0
cualquiera sobre el eje de abscisas, su imagen x1=f(x0) estará sobre la 
curva y=f(x). Debemos colocar ahora  x1 sobre el eje de las x para
evaluar ahora  x2=f(x1). Para ello trazamos una horizontal desde f(x1) hasta
tocar la diagonal y=x, este punto de corte tendrá justamente como
abscisa x1, con lo que vamos otra vez sobre la gráfica y=f(x) para evaluar 
f(x1), y así sucesivamente. Si hay convergencia, la poligonal obtenida
se acercará al punto de corte de y=f(x) con y=x.

 

Con parámetro r=3.3, iteramos a partir de x0=0.1 . Vemos que aunque al
principio la línea de iteración se acerca al punto fijo p2, al ser este inestable
(valor absoluto de la derivada mayor que uno), las líneas se alejan del punto
fijo, pero se acumulan cerca de dos valores, alternativamente.

Explicación de periodo doble de la gráfica de la iteración de la izquierda.
En realidad los puntos de periodo dos son puntos fijos de g(x)=f(f(x)). Tal
como se ve en la figura estos punto son donde la gráfica de g(x) corta y=x.

Los puntos de periodo doble aparecen cuando g(x)=x para g(x)=f(f(x)). Al ser f(x)=kx(1-x) resulta
 
 




Luego la ecuación g(x)=x da lugar, despues de simplificar, a la ecuación de cuarto orden
 
 

Ecuación que parece complicada, pero como sabemos que los puntos fijos de la iteración f(x)=x son también puntos fijos de esta última,
resulta que x=0, x=(k-1)/k son raíces de esta ecuación. La solución x=0 nos permite simplificar, dividiendo por x,  a una de tercer orden

y dividiendo esta última por x-(r-1)/r resulta

Dividiendo por  - r3

ecuación cuadrática cuyas soluciones son

    Que son los puntos de periodo doble en función del parámetro r. Obsérvese que el integrando en las expresiones es positivo
justo cuando r>3.

En los diagramas de abajo se estudia el periodo triple cuando r=3.835. En la figura de la izquierda se tiene la gráfica de g(x)=f 3(x) cuando
r=3.8. En la figura de la derecha se ha aumentado r hasta  r=3.835,  la diagonal y=x toca ahora la gráfica de g(x) en seis puntos, tres
estables (en azul) y tres inestables (en negro).



Programas de matlab: diagrama.m, logistica.m (utiliza la función logistic.m), periododoble.m, periodo3.m, caos.m .

Tomeu Barceló  /  Departamento de Matemáticas  /  Universidad Autónoma de Madrid