Are you sure you want to delete this task? Once this task is deleted, it cannot be recovered.
lujingze1650@outlook.com b89febc20c | 8 months ago | |
---|---|---|
benchmarks | 8 months ago | |
docs | 1 year ago | |
dysts | 8 months ago | |
tests | 1 year ago | |
.gitattributes | 1 year ago | |
.gitignore | 8 months ago | |
CONTRIBUTING.md | 1 year ago | |
LICENSE.md | 1 year ago | |
README.md | 11 months ago | |
demos.ipynb | 1 year ago | |
setup.cfg | 1 year ago | |
setup.py | 1 year ago |
Analyze more than a hundred chaotic systems.
Import a model and run a simulation with default initial conditions and parameter values
from dysts.flows import Lorenz
model = Lorenz()
sol = model.make_trajectory(1000)
# plt.plot(sol[:, 0], sol[:, 1])
Modify a model's parameter values and re-integrate
model = Lorenz()
model.gamma = 1
model.ic = [0.1, 0.0, 5]
sol = model.make_trajectory(1000)
# plt.plot(sol[:, 0], sol[:, 1])
Load a precomputed trajectory for the model
eq = Lorenz()
sol = eq.load_trajectory(subsets="test", noise=False, granularity="fine")
# plt.plot(sol[:, 0], sol[:, 1])
Integrate new trajectories from all 135 chaotic systems with a custom granularity
from dysts.base import make_trajectory_ensemble
all_out = make_trajectory_ensemble(100, resample=True, pts_per_period=75)
Load a precomputed collection of time series from all 135 chaotic systems
from dysts.datasets import load_dataset
data = load_dataset(subsets="train", data_format="numpy", standardize=True)
Additional functionality and examples can be found in the demonstrations notebook.
. The full API documentation can be found here.
For additional details, please see the preprint. If using this code for published work, please consider citing the paper.
William Gilpin. "Chaos as an interpretable benchmark for forecasting and data-driven modelling" Advances in Neural Information Processing Systems (NeurIPS) 2021 https://arxiv.org/abs/2110.05266
For the forecasting experiments, please refer to the preprint
William Gilpin. "Large-scale statistical forecasting models reassess the unpredictability of chaotic systems" 2023 https://arxiv.org/abs/2303.08011
We are very grateful for any suggestions or contributions. See CONTRIBUTING.md
Install from PyPI
pip install dysts
To obtain the latest version, including new features and bug fixes, download and install the project repository directly from GitHub
git clone https://github.com/williamgilpin/dysts
cd dysts
pip install -I .
Test that everything is working
python -m unittest
Alternatively, to use this as a regular package without downloading the full repository, install directly from GitHub
pip install git+https://github.com/williamgilpin/dysts
The key dependencies are
These additional optional dependencies are needed to reproduce some portions of this repository, such as benchmarking experiments and estimation of invariant properties of each dynamical system:
The benchmarks reported in our preprint can be found in benchmarks
. An overview of the contents of the directory can be found in BENCHMARKS.md
, while individual task areas are summarized in corresponding Jupyter Notebooks within the top level of the directory.
benchmarks
data
chaotic_attractors
. The Python implementations of differential equations can be found in the flows module
numba
, wherever possible. Ensembles of trajectories are vectorized where needed.dt
field. This integration timestep was chosen based on the highest significant frequency observed in the power spectrum, with significance being determined relative to random phase surrogates. The period
field contains the timescale associated with the dominant frequency in each system's power spectrum. When using the model.make_trajectory()
method with the optional setting resample=True
, integration is performed at the default dt
. The integrated trajectory is then resampled based on the period
. The resulting trajectories will have have consistant dominant timescales across models, despite having different integration timesteps.dysts
contains all systems from both collections.nolds
, please be sure to credit that library and heed its license. The Lyapunov exponent calculation is based on the QR factorization approach used by Wolf et al 1985 and Eckmann et al 1986, with implementation details adapted from conventions in the Julia library DynamicalSystems.jlDataset datasheets and metadata are reported using the dataset documentation guidelines described in Gebru et al 2018; please see our preprint for a full dataset datasheet and other information. We note that all datasets included here are mathematical in nature, and do not contain human or clinical observations. If any users become aware of unintended ethics or trademark issues that may arise due to the use of this data, we encourage reporting them by submitting an issue on this repository.
No Description
Jupyter Notebook Pickle Python other
Dear OpenI User
Thank you for your continuous support to the Openl Qizhi Community AI Collaboration Platform. In order to protect your usage rights and ensure network security, we updated the Openl Qizhi Community AI Collaboration Platform Usage Agreement in January 2024. The updated agreement specifies that users are prohibited from using intranet penetration tools. After you click "Agree and continue", you can continue to use our services. Thank you for your cooperation and understanding.
For more agreement content, please refer to the《Openl Qizhi Community AI Collaboration Platform Usage Agreement》