Siguiente: , Anterior: , Subir: dynamics   [Índice general][Índice]

49.2 Análisis gráfico de sistemas dinámicos discretos

Función: chaosgame ([[x1, y1]…[xm, ym]], [x0, y0], b, n, opciones, …);

Usa el método llamado juego del caos, para producir fractales: se dibuja un punto inicial (x0, y0) y luego se elije aleatoriamente uno de los m puntos [x1, y1]...[xm, ym]. Después se dibuja un nuevo punto que estará en el segmento entre el último punto dibujado y el punto que se acabó de elegir aleatoriamente, a una distancia del punto elegido que será b veces la longitud del segmento. El proceso se repite n veces. Este programa acepta las mismas opciones de plot2d.

Ejemplo. Gráfico del triángulo de Sierpinsky:

(%i1) chaosgame([[0, 0], [1, 0], [0.5, sqrt(3)/2]], [0.1, 0.1], 1/2,
                 30000, [style, dots]);
./figures/dynamics7
Función: evolution evolution (F, y0, n, …, opciones, …);

Dibuja n+1 puntos en una gráfica bidimensional (serie de tiempo), en que las coordenadas horizontales de los puntos son los números enteros 0, 1, 2, ..., n, y las coordenadas verticales son los valores y(n) correspondientes, obtenidos a partir de la relación de recurrencia

        y(n+1) = F(y(n))

Con valor inicial y(0) igual a y0. F deberá ser una expresión que dependa únicamente de la variable y (y no de n), y0 deberá ser un número real y n un número entero positivo. Esta función acepta las mismas opciones que plot2d.

Ejemplo.

(%i1) evolution(cos(y), 2, 11);
./figures/dynamics1
Función: evolution2d ([F, G], [u, v], [u0, y0], n, opciones, …);

Muestra, en una gráfica bidimensional, los primeros n+1 puntos de la sucesión definida a partir del sistema dinámico discreto con relaciones de recurrencia:

        x(n+1) = F(x(n), y(n))    y(n+1) = G(x(n), y(n))

Con valores iniciales x0 y y0. F y G deben ser dos expresiones que dependan únicamente de x y y. Esta función acepta las mismas opciones que plot2d.

Ejemplo. Evolución de un sistema dinámico discreto en dos dimensiones:

(%i1) f: 0.6*x*(1+2*x)+0.8*y*(x-1)-y^2-0.9$
(%i2) g: 0.1*x*(1-6*x+4*y)+0.1*y*(1+9*y)-0.4$
(%i3) evolution2d([f,g], [x,y], [-0.5,0], 50000, [style,dots]);
./figures/dynamics5

Y un acercamiento de una pequeña región en ese fractal:

(%i9) evolution2d([f,g], [x,y], [-0.5,0], 300000, [x,-0.8,-0.6],
                  [y,-0.4,-0.2], [style, dots]);
./figures/dynamics6
Función: ifs ([r1, …, rm], [A1,…, Am], [[x1, y1], …, [xm, ym]], [x0, y0], n, opciones, …);

Usa el método del Sistema de Funciones Iteradas (IFS, en inglés Iterated Function System). Ese método es semejante al método descrito en la función chaosgame. pero en vez de aproximar el último punto al punto elegido aleatoriamente, las dos coordenadas del último punto se multiplican por una matriz 2 por 2 Ai correspondiente al punto que fue elegido aleatoriamente.

La selección aleatoria de uno de los m puntos atractivos puede ser realizada con una función de probabilidad no uniforme, definida con los pesos r1,...,rm. Esos pesos deben ser dados en forma acumulada; por ejemplo, si se quieren 3 puntos con probabilidades 0.2, 0.5 y 0.3, los pesos r1, r2 y r3 podrían ser 2, 7 y 10, o cualquier otro grupo de números que tengan la misma proporción. Esta función acepta las mismas opciones que plot2d.

Ejemplo. El helecho de Barnsley, creado con 4 matrices y 4 puntos:

(%i1) a1: matrix([0.85,0.04],[-0.04,0.85])$
(%i2) a2: matrix([0.2,-0.26],[0.23,0.22])$
(%i3) a3: matrix([-0.15,0.28],[0.26,0.24])$
(%i4) a4: matrix([0,0],[0,0.16])$
(%i5) p1: [0,1.6]$
(%i6) p2: [0,1.6]$
(%i7) p3: [0,0.44]$
(%i8) p4: [0,0]$
(%i9) w: [85,92,99,100]$
(%i10) ifs(w, [a1,a2,a3,a4], [p1,p2,p3,p4], [5,0], 50000, [style,dots]);
./figures/dynamics8
Función: orbits (F, y0, n1, n2, [x, x0, xf, xstep], opciones, …);

Dibuja el diagrama de órbitas de una familia de sistemas dinámicos discretos unidimensionales, con un parámetro x; ese tipo de diagrama se usa para mostrar las bifurcaciones de un sistema discreto unidimensional.

La función F(y) define una secuencia que comienza con un valor inicial y0, igual que en el caso de la función evolution, pero en este caso la función también dependerá del parámetro x, el cual tomará valores comprendidos en el intervalo de x0 a xf, con incrementos xstep. Cada valor usado para el parámetro x se muestra en el eje horizontal. En el eje vertical se mostrarán n2 valores de la sucesión y(n1+1),..., y(n1+n2+1), obtenidos después de dejarla evolucionar durante n1 iteraciones iniciales.

Ejemplo. Diagrama de órbitas para el mapa cuadrático

(%i1) orbits(x^2+a, 0, 50, 200, [a, -2, 0.25], [style, dots]);
./figures/dynamics3

Para ampliar la región alrededor de la bifurcación en la parte de abajo, cerca de x = -1.25, se usa el comando:

(%i2) orbits(x^2+a, 0, 100, 400, [a,-1,-1.53], [x,-1.6,-0.8],
             [nticks, 400], [style,dots]);
./figures/dynamics4
Función: staircase (F, y0, n,opciones,…);

Dibuja un diagrama de escalera (o diagrama de red) para la sucesión definida por la ecuación de recurrencia

        y(n+1) = F(y(n))

La interpretación y valores permitidos de los parámetros de entrada es la misma que para la función evolution. Un diagrama de escalera consiste en una gráfica de la función F(y), junto con la recta G(y) = y. Se comienza por dibujar un segmento vertical desde el punto (y0, y0) en la recta, hasta el punto de intersección con la función F. En seguida, desde ese punto se dibuja un segmento horizontal hasta el punto de intersección con la recta, (y1, y1); el procedimiento se repite n veces hasta alcanzar el punto (yn, yn). Esta función acepta las mismas opciones que plot2d.

Ejemplo.

(%i1) staircase(cos(y), 1, 11, [y, 0, 1.2]);
./figures/dynamics2

Siguiente: , Anterior: , Subir: dynamics   [Índice general][Índice]