Global continuation free tracking of arbitrary quantities
enhancementcontinuation
If we think about it, we can track "for free" arbitrary nonlocal stability during a global continuation. At the moment we track only the basin fractions. Then, after the continuation is over, we also track (but separately) whatever other quantity we want.
However, instead of the basin fractions, we could be tracking any other quantity that requires exploring the state space.
Consider the minimal critical shock: to calculate it, we have to randomly sample points in the state space (even if we use the BlackBox algorithm). For every sampled point we calculate in which basin of attraction it converged to because we call `mapper(u0)`. From all these initial conditions, we obtain the minimal critical shock. Well, since we anyways estimated all these `mapper(u0)`, we might as well store them! We can store (internally) to which attractor each `u0` goes; then, we have estimated for free the basins fractions as well, _while_ estimating the minimal critical shock. This could save a lot of time for expensive dynamical systems.
Exactly the same story can be said for the average return time: to estimate the return time we call `mapper(u0)` and then we record the convergence time. But `mapper(u0)` gives us for free to which attrcator we converged. Again we can estimate, _at the same time_ the average return time _as well as_ the basins fractions.
This allows us to compute two nonlocal stability indicators during any continuation, where the second is always the basins fraction that we get for free. In fact, we could even calculate the minimal fatal shock, mean return time, and basins fractions, all at the same time by taking into advantage that for each `u0`, `mapper(u0)` only needs to be called once!
To do these things we would need to create a new data strctuure: `NonlocalStabilityAccumulator`. This data strcture takes an initial condition and maps it to an attractor. Then it stores to which attractor it went, and how long it took. If you have 1000 initial conditions you can then estimate the minimal fatal shock for each attractor, and the average return time, and the basin fraction. The `NonlocalStabilityAccumulator` can be enhanced with _any_ measure of nonlocal stability that internally has to call `mapper(u0)` for many different initial conditions.
cc @andreasmorr
1 条评论