Skip to content

Conversation

@alexfikl
Copy link
Owner

@alexfikl alexfikl commented May 4, 2025

This adds a little function to compute the Lyapunov exponents using the method from https://doi.org/10.1016/j.chaos.2023.113167.

TODO:

  • Figure out how to orthogonalize.
  • Add some tests.

@alexfikl
Copy link
Owner Author

alexfikl commented May 4, 2025

This seems to have highlighted a shortcoming in our interface. We need to renormalize the exponent every N iterations, but neither the evolve nor the advance methods allow this without a lot of hackery..

There are two issues:

  1. There is no way to modify ynext. Might be hacked around by modifying event.y in place.
  2. There is no way to modify the history. The history value is already computed and stored by the time we get to modifying event.y, so this is not solvable at the moment.

The simplest workaround seems to be to just give a callback to advance to potentially update the value of ynext before it's sent back to evolve. We can't really solve it by wrapping advance because it already computed things..

How does OrdinaryDiffEq.jl handle something like this? For integer-order systems it should just be possible to solve the system from $[t_n, t_n + N \Delta t]$ over and over again without modifying the underlying integrator, but this doesn't seem possible for the fractional case..

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants