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

Recurrence mapper with Sparse matrix #257

Closed awage closed 2 years ago

awage commented 2 years ago

This is an experimental code to allow to track attractors in high dimensional dynamical systems.

There are some problems that I don't know how to solve:

I have a added a test file just for demonstration of the capability of the algorithm. It works in dimension 100 without a flinch...

Datseris commented 2 years ago

can confirm, seems to work, but we have to come up with examples that aren't trivial. Seems to me that this setting of the Kuramoto has a huuuuuge amount of fixed points as its attractors?

awage commented 2 years ago

The Kuramoto oscillator has a lot of symmetries and many attractors are basically the same with phases switched. It has no practical interest for this method. I will look for more suitable examples this week.

Datseris commented 2 years ago

In the branch sparse_frac_continuation I've added a function that takes in a vector of dictionaries, each mapping ids to attractors, and then matches them, and also ensures that attractors that have distance greater than threshold get assigned different ID. I can either merge this here now, or continue there in that PR and work on implementing the code for the optimized basins fractions I've described in the meeting. Either way is fine for me, so let me know if you actually need this unique_attractor_ids! function and then I can merge now.

awage commented 2 years ago

@Datseris some wonky stuff happened here. I was updating my local branch to the upstream branch and github merged the all stuff without asking. The strange thing is that it didn't merged any commits. I will reopen a new PR with the changes already made from the branch stored in my computer.