https://github.com/juliadynamics/rigorousinvariantmeasures.jl
Package for the Rigorous Computation of Invariant Measures
https://github.com/juliadynamics/rigorousinvariantmeasures.jl
dynamical-systems julia
Last synced: about 1 year ago
JSON representation
Package for the Rigorous Computation of Invariant Measures
- Host: GitHub
- URL: https://github.com/juliadynamics/rigorousinvariantmeasures.jl
- Owner: JuliaDynamics
- License: mit
- Created: 2020-06-16T16:59:33.000Z (almost 6 years ago)
- Default Branch: main
- Last Pushed: 2025-01-10T01:26:35.000Z (over 1 year ago)
- Last Synced: 2025-04-22T08:48:38.101Z (about 1 year ago)
- Topics: dynamical-systems, julia
- Language: Julia
- Homepage:
- Size: 2.3 MB
- Stars: 12
- Watchers: 5
- Forks: 3
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Citation: CITATION.bib
Awesome Lists containing this project
README
# RigorousInvariantMeasures
[](https://juliadynamics.github.io/RigorousInvariantMeasures.jl/stable/)
[](https://juliadynamics.github.io/RigorousInvariantMeasures.jl/dev/)
[](https://github.com/JuliaDynamics/RigorousInvariantMeasures.jl/actions/workflows/CI.yml?query=branch%3Amain)
[](https://codecov.io/gh/JuliaDynamics/RigorousInvariantMeasures.jl)
This Package provides methods for the rigorous approximation of Absolutely Continuous Invariant Measures for one dimensional dynamical systems,
using the results in [[2]](#2) and subsequent [[1]](#1).
## Mathematical background
By Birkhoff Ergodic Theorem we know that if a dynamical system T admits an ergodic invariant measure μ, for μ-almost every point x the frequence of the visits to a set E corresponds to the measure of the set with respect to μ.
Therefore, being able to approximate invariant measures with a large basin is interesting to investigate the statistical properties of the dynamical system T. [[5]](#4)
The existence of absolutely continuous invariant measures for one dimensional maps is a delicate topic; with this package we present approximation schemes for the invariant measures of system that satisfy a Lasota-Yorke inequality through the use of a coarse-fine scheme and a posteriori estimates on the mixing time, i.e., this means that the mixing time is estimated by our algorithm and we do not need an a priori estimate, which is usually difficult to obtain.
The Ulam approximation schemes works under relatively weak hypothesis on the dynamics and was used in [[4]](#4) to approximate the invariant measure for the geometric Lorenz 1-dimensional map.
We are currently working on the implementation of the Ulam scheme for system with additive uniform noise, as the one used in
[[2]](#2)
## Basic Usage
Examples of usage are present in the directory examples.
```julia
using InvariantMeasures
D = Mod1Dynamic(x -> 4x + 0.01InvariantMeasures.sinpi(8x))
B = Ulam(1024)
Q = DiscretizedOperator(B, D)
```
The code snippet above defines a dynamic obtained by reducing f(x) = 4x+0.01 sin(8πx) modulo 1, a basis B associated to the Ulam discretization on a partition of 1024 homogenous intervals, and computes the discretized operator Q, a Markov chain whose entries are P[T(x)∈ Iᵢ | x ∈ Iⱼ].
Note the usage of `InvariantMeasures.sinpi(8*x)` rather than `Base.sinpi` or `Base.sin(8\pi*x)`. This detail is required to ensure that f(1) == 4 exactly.
```julia
norms = powernormbounds(B, D; Q=Q)
```
This function computes the L¹ norm of Q^k, for k = 1,2,...,k_max (up to a sufficiently large number of powers to observe decay) when restricted to the space U of average-0 vectors. This gives us the a posteriori estimate for the mixing time of the Markov chain and is used in our rigorous estimate.
```julia
w = invariant_vector(B, Q)
distance_from_invariant(B, D, Q, w, norms)
```
This computes a (non-rigorous) approximation of the invariant measure of D; then `distance_from_invariant` computes an upper bound for the L¹ distance between w and the density of the absolutely continuous invariant measure of the system.
Inside the examples it is showed how to use the coarse-fine scheme to obtain better L¹ bounds and reduce the computational time.
### Caveat
The function `sinpi` in the interval arithmetic package that we are using relies on the `CRlibm.jl` package, which currently works only under Linux. So the examples that use trigonometric functions only work on this OS.
## References
[1] Galatolo S., Monge M., Nisoli I., Poloni F. A general framework for the rigorous computation of invariant densities and the coarse-fine strategy
https://doi.org/10.48550/arXiv.2212.05017
[2]
Galatolo S., Monge M., Nisoli I., Existence of noise induced order, a computer aided proof Nonlinearity 33 (9), 4237 (2020)
[3]
Galatolo S., Nisoli I., An elementary approach to rigorous approximation of invariant
measures SIAM J. Appl Dyn Sys.13 pp. 958-985 (2014)
[4] Galatolo S., Nisoli I. Rigorous computation of invariant measures and fractal dimension for maps with contracting fibers: 2D Lorenz-like maps
Ergodic Theory and Dynamical Systems 36 (6), 1865-1891 (2016)
[5] Viana M., Olivera K. Foundations of Ergodic Theory
Cambridge studies in advanced mathematics, Cambridge University Press 2016