You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
NonlocalStabilityAccumulator will be a function like object that itself acts as an AttractorMapper. Here is how:
accumulator =NonlocalStabilityAccumulator(mapper, args...)
id =accumulator(u0)
BUT, calling accumulator(u0) will first call mapper(u0) and then store internally in the fields of NonlocalStabilityAccumulator the initial condition, where it converged to, and what is its convergence time, and any other nonlocal stability quantity we can estimate from calling mapper(u0).
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 thesemapper(u0)
, we might as well store them! We can store (internally) to which attractor eachu0
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. Butmapper(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. TheNonlocalStabilityAccumulator
can be enhanced with any measure of nonlocal stability that internally has to callmapper(u0)
for many different initial conditions.cc @andreasmorr
The text was updated successfully, but these errors were encountered: