diff --git a/dev/.documenter-siteinfo.json b/dev/.documenter-siteinfo.json index 0d5d5a6d..4955e069 100644 --- a/dev/.documenter-siteinfo.json +++ b/dev/.documenter-siteinfo.json @@ -1 +1 @@ -{"documenter":{"julia_version":"1.10.7","generation_timestamp":"2024-12-31T16:34:38","documenter_version":"1.8.0"}} \ No newline at end of file +{"documenter":{"julia_version":"1.10.7","generation_timestamp":"2024-12-31T16:49:15","documenter_version":"1.8.0"}} \ No newline at end of file diff --git a/dev/examples/gMAM_Maierstein/0a4574e4.png b/dev/examples/gMAM_Maierstein/0a4574e4.png new file mode 100644 index 00000000..4a841ad8 Binary files /dev/null and b/dev/examples/gMAM_Maierstein/0a4574e4.png differ diff --git a/dev/examples/gMAM_Maierstein/5f4d0b05.png b/dev/examples/gMAM_Maierstein/5f4d0b05.png deleted file mode 100644 index 75314020..00000000 Binary files a/dev/examples/gMAM_Maierstein/5f4d0b05.png and /dev/null differ diff --git a/dev/examples/gMAM_Maierstein/66ea99e4.png b/dev/examples/gMAM_Maierstein/66ea99e4.png deleted file mode 100644 index df6c643c..00000000 Binary files a/dev/examples/gMAM_Maierstein/66ea99e4.png and /dev/null differ diff --git a/dev/examples/gMAM_Maierstein/672fe833.png b/dev/examples/gMAM_Maierstein/672fe833.png new file mode 100644 index 00000000..ba5f9842 Binary files /dev/null and b/dev/examples/gMAM_Maierstein/672fe833.png differ diff --git a/dev/examples/gMAM_Maierstein/7eb9dc25.png b/dev/examples/gMAM_Maierstein/7eb9dc25.png deleted file mode 100644 index bcc5e5a5..00000000 Binary files a/dev/examples/gMAM_Maierstein/7eb9dc25.png and /dev/null differ diff --git a/dev/examples/gMAM_Maierstein/cf5c0022.png b/dev/examples/gMAM_Maierstein/cf5c0022.png new file mode 100644 index 00000000..98ea418b Binary files /dev/null and b/dev/examples/gMAM_Maierstein/cf5c0022.png differ diff --git a/dev/examples/gMAM_Maierstein/index.html b/dev/examples/gMAM_Maierstein/index.html index c7770d1d..dc3bc6b7 100644 --- a/dev/examples/gMAM_Maierstein/index.html +++ b/dev/examples/gMAM_Maierstein/index.html @@ -98,14 +98,14 @@ markersize=10) for i in eachindex(fp)] lines!(ax2, reduce(hcat, tr), linewidth=1, color=(:black, 0.2)) -fig
Basins of attraction are the regions in the state space that lead to a particular attractor. We can find the basins of attraction using the function basins
.
using Attractors
+fig
Basins of attraction are the regions in the state space that lead to a particular attractor. We can find the basins of attraction using the function basins
.
using Attractors
ba = basins(sys, [0.0, 0], [0.0, 1], [1.0, 0], intervals_to_box([-2, -2], [2, 2]), bstep=[0.01, 0.01], ϵ_mapper=0.001, Ttr=100)
Ur, Vr, atr, M = ba
heatmap(Ur, Vr, M)
The basin boundaries can be quickly extracted using the function basin_boundaries
.
bb = basinboundary(ba)
2×401 Matrix{Float64}:
-2.0 -1.99 -1.98 -1.97 -1.96 … 1.95 1.96 1.97 1.98 1.99 2.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
We can quickly find a path which computes a transition from one attractor to another using the function `transition.
paths_ends = (fp[stab][1], fp[stab][2])
-path, time, succes = transition(sys, paths_ends...);
(2-dimensional StateSpaceSet{Float64} with 641 points, [517.7171629237718, 517.7376002302709, 517.7494329181949, 517.7599766401947, 517.7703452646747, 517.7792676865303, 517.788877834018, 517.7979336902946, 517.8064944742007, 517.8149114538829 … 523.8363302652367, 523.8493929443385, 523.8625686444242, 523.8765884429681, 523.8920703025415, 523.908016604301, 523.9248026164025, 523.9409609274759, 523.957922755368, 523.957922755368], true)
fig = Figure(size=(600, 400), fontsize=13)
+path, time, succes = transition(sys, paths_ends...);
(2-dimensional StateSpaceSet{Float64} with 900 points, [106.48141489813125, 106.49780026691688, 106.5119462440886, 106.52693095484169, 106.53908156437723, 106.55011244791457, 106.56099909907199, 106.57074227742457, 106.58044624767932, 106.59005455391035 … 115.17352926435885, 115.18420243831719, 115.19534784999497, 115.20647170494696, 115.21768471454715, 115.22925062199255, 115.24101942028322, 115.25378758660449, 115.2681517737159, 115.2681517737159], true)
fig = Figure(size=(600, 400), fontsize=13)
ax = Axis(fig[1, 1], xlabel="u", ylabel="v", aspect=1.4,
xgridcolor=:transparent, ygridcolor=:transparent,
ylabelrotation=0)
@@ -125,11 +125,11 @@
fig
lines!(ax, path, color=:black)
-fig
If we want to compute many: transitions
is the function to use.
tt = transitions(sys, paths_ends..., 3; tmax=1e3);
Transition path ensemble of 3 samples
+fig
If we want to compute many: transitions
is the function to use.
tt = transitions(sys, paths_ends..., 3; tmax=1e3);
Transition path ensemble of 3 samples
- sampling success rate: 1.0
- - mean residence time: 470.887
- - mean transition time: 8.359
- - normalized transition rate: 56.3
fig = Figure(size=(600, 400), fontsize=13)
+ - mean residence time: 63.288
+ - mean transition time: 10.049
+ - normalized transition rate: 6.3
fig = Figure(size=(600, 400), fontsize=13)
ax = Axis(fig[1, 1], xlabel="u", ylabel="v", aspect=1.4,
xgridcolor=:transparent, ygridcolor=:transparent,
ylabelrotation=0)
@@ -150,7 +150,7 @@
for i in 1:length(tt.paths)
lines!(ax, tt.paths[i])
end
-fig
In the context of nonlinear dynamics, Large Deviation Theory provides tools to quantify the probability of rare events that deviate significantly from the system's typical behavior. These rare events might be extreme values of a system's output, sudden transitions between different states, or other phenomena that occur with very low probability but can have significant implications for the system's overall behavior.
Large deviation theory applies principles from probability theory and statistical mechanics to develop a rigorous mathematical description of these rare events. It uses the concept of a rate function, which measures the exponential decay rate of the probability of large deviations from the mean or typical behavior. This rate function plays a crucial role in quantifying the likelihood of rare events and understanding their impact on the system.
For example, in a system exhibiting chaotic behavior, LDT can help quantify the probability of sudden large shifts in the system's trajectory. Similarly, in a system with multiple stable states, it can provide insight into the likelihood and pathways of transitions between these states under fluctuations. In the context of the Minimum Action Method (MAM) and the Geometric Minimum Action Method (gMAM), Large Deviation Theory is used to handle the large deviations action functional on the space of curves. This is a key part of how these methods analyze dynamical systems.
The Maier-Stein model is a typical benchmark to test such LDT techniques. Let us try to reproduce the following figure from Tobias Grafke's blog post:
Let us first make an initial path:
xx = range(-1.0, 1.0, length=100)
+fig
In the context of nonlinear dynamics, Large Deviation Theory provides tools to quantify the probability of rare events that deviate significantly from the system's typical behavior. These rare events might be extreme values of a system's output, sudden transitions between different states, or other phenomena that occur with very low probability but can have significant implications for the system's overall behavior.
Large deviation theory applies principles from probability theory and statistical mechanics to develop a rigorous mathematical description of these rare events. It uses the concept of a rate function, which measures the exponential decay rate of the probability of large deviations from the mean or typical behavior. This rate function plays a crucial role in quantifying the likelihood of rare events and understanding their impact on the system.
For example, in a system exhibiting chaotic behavior, LDT can help quantify the probability of sudden large shifts in the system's trajectory. Similarly, in a system with multiple stable states, it can provide insight into the likelihood and pathways of transitions between these states under fluctuations. In the context of the Minimum Action Method (MAM) and the Geometric Minimum Action Method (gMAM), Large Deviation Theory is used to handle the large deviations action functional on the space of curves. This is a key part of how these methods analyze dynamical systems.
The Maier-Stein model is a typical benchmark to test such LDT techniques. Let us try to reproduce the following figure from Tobias Grafke's blog post:
Let us first make an initial path:
xx = range(-1.0, 1.0, length=100)
yy = 0.3 .* (-xx .^ 2 .+ 1)
init = Matrix([xx yy]')
2×100 Matrix{Float64}:
-1.0 -0.979798 -0.959596 -0.939394 … 0.959596 0.979798 1.0
@@ -195,4 +195,4 @@
lines!(ax, init, linewidth=3, color=:black, linestyle=:dash)
lines!(ax, MLP, linewidth=3, color=:orange)
-fig
Author: Orjan Ameye (orjan.ameye@hotmail.com) Date: 13 Feb 2024
Settings
This document was generated with Documenter.jl version 1.8.0 on Tuesday 31 December 2024. Using Julia version 1.10.7.