RigorousInvariantMeasures

Package for the Rigorous Computation of Invariant Measures

https://github.com/juliadynamics/rigorousinvariantmeasures.jl

Science Score: 57.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.8%) to scientific vocabulary

Keywords

dynamical-systems julia
Last synced: 6 months ago · JSON representation ·

Repository

Package for the Rigorous Computation of Invariant Measures

Basic Info
  • Host: GitHub
  • Owner: JuliaDynamics
  • License: mit
  • Language: Julia
  • Default Branch: main
  • Homepage:
  • Size: 2.5 MB
Statistics
  • Stars: 12
  • Watchers: 5
  • Forks: 3
  • Open Issues: 15
  • Releases: 7
Topics
dynamical-systems julia
Created over 5 years ago · Last pushed 7 months ago
Metadata Files
Readme License Citation

README.md

RigorousInvariantMeasures

Stable Dev Build Status Coverage

This Package provides methods for the rigorous approximation of Absolutely Continuous Invariant Measures for one dimensional dynamical systems, using the results in [2] and subsequent [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]

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] 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]

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

Owner

  • Name: JuliaDynamics
  • Login: JuliaDynamics
  • Kind: organization

A Julia-based software organization for dynamical systems, nonlinear dynamics, complex systems and the complexities of the scientific life

Citation (CITATION.bib)

@misc{RigorousInvariantMeasures2.jl,
	author  = {Isaia Nisoli <nisoli@im.ufrj.br> and contributors},
	title   = {RigorousInvariantMeasures.jl},
	url     = {https://github.com/JuliaDynamics/RigorousInvariantMeasures.jl},
	version = {v1.0.0-DEV},
	year    = {2024},
	month   = {1}
}

GitHub Events

Total
  • Create event: 5
  • Commit comment event: 2
  • Release event: 1
  • Watch event: 2
  • Delete event: 1
  • Issue comment event: 4
  • Push event: 14
  • Pull request review event: 1
  • Pull request review comment event: 12
  • Pull request event: 6
Last Year
  • Create event: 5
  • Commit comment event: 2
  • Release event: 1
  • Watch event: 2
  • Delete event: 1
  • Issue comment event: 4
  • Push event: 14
  • Pull request review event: 1
  • Pull request review comment event: 12
  • Pull request event: 6

Issues and Pull Requests

Last synced: 7 months ago

All Time
  • Total issues: 16
  • Total pull requests: 118
  • Average time to close issues: 8 days
  • Average time to close pull requests: 4 months
  • Total issue authors: 4
  • Total pull request authors: 4
  • Average comments per issue: 2.69
  • Average comments per pull request: 0.19
  • Merged pull requests: 67
  • Bot issues: 0
  • Bot pull requests: 81
Past Year
  • Issues: 0
  • Pull requests: 8
  • Average time to close issues: N/A
  • Average time to close pull requests: 11 minutes
  • Issue authors: 0
  • Pull request authors: 3
  • Average comments per issue: 0
  • Average comments per pull request: 0.38
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 7
Top Authors
Issue Authors
  • fph (8)
  • orkolorko (5)
  • Grotex (1)
  • dependabot[bot] (1)
  • JuliaTagBot (1)
Pull Request Authors
  • github-actions[bot] (88)
  • orkolorko (39)
  • fph (10)
  • dependabot[bot] (8)
Top Labels
Issue Labels
dependencies (1)
Pull Request Labels
dependencies (8)

Packages

  • Total packages: 1
  • Total downloads:
    • julia 22 total
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 4
juliahub.com: RigorousInvariantMeasures

Package for the Rigorous Computation of Invariant Measures

  • Versions: 4
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 22 Total
Rankings
Dependent repos count: 9.9%
Average: 32.3%
Dependent packages count: 38.9%
Stargazers count: 39.8%
Forks count: 40.4%
Last synced: 6 months ago

Dependencies

.github/workflows/CI.yml actions
  • actions/checkout v2 composite
  • codecov/codecov-action v2 composite
  • julia-actions/cache v1 composite
  • julia-actions/julia-buildpkg v1 composite
  • julia-actions/julia-docdeploy v1 composite
  • julia-actions/julia-processcoverage v1 composite
  • julia-actions/julia-runtest v1 composite
  • julia-actions/setup-julia v1 composite
.github/workflows/TagBot.yml actions
  • JuliaRegistries/TagBot v1 composite
.github/workflows/register.yml actions
  • julia-actions/RegisterAction latest composite