1 votos

Cálculo numérico de los exponentes de Lyapunov sin Jacobiano

Tengo un modelo numérico para el que me gustaría calcular el espectro de Lyapunov. El número de dimensiones es de cientos, y no tengo una expresión analítica para el jacobiano disponible. El sistema es caótico (exponente de Lyapunov mayor positivo) y la dimensión fractal no es enorme (3-5). La integración numérica se realiza con un método de Euler explícito.

¿Cuál sería la forma mejor/simple de calcular el espectro completo de los exponentes de Lyapunov? ¿Alguien sabe de scripts de Matlab que pueda utilizar y/o adaptar? Mi objetivo es calcular la dimensión de Kaplan-Yorke y determinar si el sistema es hipercaótico.

2voto

Wrzlprmft Puntos 274

Es casi seguro que no quieres todo el espectro de Lyapunov, sino sólo los dos, tres o quizá cuatro exponentes de Lyapunov más grandes. Estrictamente hablando, dos son suficientes para mostrar el hipercaos, pero es posible que quieras ir a por el primer cero uno como comprobación de cordura. Obtener, por ejemplo, el centésimo exponente de Lyapunov requiere mucho tiempo de cálculo y su resultado será probablemente muy inexacto. Lo más importante es que no se gana nada con ello. Tampoco es necesario para la dimensión de Kaplan-Yorke.

Dicho esto, si no quieres trabajar con el jacobiano, la separación de órbitas es el camino a seguir. Más concretamente, se integran muchas versiones ligeramente diferentes del sistema y se observa cómo evoluciona su separación (los vectores de Lyapunov). Para los exponentes de Lyapunov más allá del primero, tienes que tener cuidado de eliminar regularmente cualquier componente en la dirección de los vectores de Lyapunov anteriores.

Técnicamente, el procedimiento para los dos primeros exponentes de Lyapunov es:

  1. Seleccione algunos parámetros ε que representa el tamaño de una pequeña perturbación, y τ que representa el intervalo de reescalado. Para la mayoría de los sistemas, ε=1012 es una buena opción. Utilice un puñado de oscilaciones de su dinámica para  τ pero más adelante se hablará de esta elección.

  2. Cree tres instancias de su sistema, y llame para denotar sus estados en el momento t por y0(t) , y1(t) y y2(t) .

  3. Establecer la condición inicial y0(0) a algo en el atractor. Establecer y1(0)=y0(0)+ε·r1 y y2(0)=y0(0)+ε·r2 , donde r1 y r2 son vectores aleatorios.

  4. Integrar para τ unidades de tiempo.

  5. Calcula v1(t)=y1(t)y0(t)|y1(t)y0(t)|;λ1(t)=1τlog(|y1(t)y0(t)|ε).

    v1 es su primer vector de Lyapunov. λ1 es su primer exponente local de Lyapunov. Si |y1(t)y0(t)| no es mucho menor que el diámetro de su atractor, su elección de τ es demasiado alto.

  6. Calcula v2(t)=y2(t)y0(t)y2,v1v1|y2(t)y0(t)y2,v1v1|;λ2(t)=1τlog(|y2(t)y0(t)y2,v1v1|ε).

    v2 es su segundo vector de Lyapunov. λ2 es su segundo exponente local de Lyapunov. Obsérvese que esto es análogo al paso 5, salvo que se elimina la proyección sobre v1 .

  7. Set y1(t)=y0(t)+εv1(t) y y2(t)=y0(t)+εv2(t) . Este reescalado es asegurarse de que sus separaciones sean pequeñas.

  8. Vaya al paso 4.

Después de esto se puede promediar el λ1 y λ2 (excepto los primeros) para obtener los respectivos exponentes de Lyapunov.

También se podría estimar el jacobiano a partir de diferencias finitas, pero eso es sólo sustituir una  ε con otro.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X