JuliaDynamics / ChaosTools.jl

Tools for the exploration of chaos and nonlinear dynamics
https://juliadynamics.github.io/DynamicalSystemsDocs.jl/chaostools/stable/
MIT License
187 stars 35 forks source link

Fix return times function for continuous systems #278

Closed Datseris closed 1 year ago

Datseris commented 1 year ago

This PR aims to:

  1. Improve source code clarity of return times for discrete systems
  2. Overall better organize tests for return times
  3. Fix return times for continuous systems, which never really worked well and was also super slow. To this end we have
    • Re-written the source code from scratch.
    • Offer two algoritms: linear interpolation, or integrator-based interpolation with minimization for finding closest point and then rootfinding for finding the crossings.
    • Linear interpolation works only for spheres (in the future one could contribute code for rectangle crossing I guess.
    • High precision interpolation uses Optim.jl and Roots.jl.
    • Serious tests are now also done for continuous systems.
  4. Performance increase for continuous systems: TODO; write by how much.

Only todo left is to make it work for hyperrectangles in continuous systems.