pynamicalsys 1.0.0__py3-none-any.whl → 1.2.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pynamicalsys/__init__.py +8 -1
- pynamicalsys/__version__.py +2 -2
- pynamicalsys/continuous_time/chaotic_indicators.py +347 -0
- pynamicalsys/continuous_time/models.py +240 -0
- pynamicalsys/continuous_time/numerical_integrators.py +337 -0
- pynamicalsys/continuous_time/trajectory_analysis.py +163 -0
- pynamicalsys/continuous_time/validators.py +114 -0
- pynamicalsys/core/continuous_dynamical_systems.py +777 -1
- pynamicalsys/core/discrete_dynamical_systems.py +44 -45
- pynamicalsys/discrete_time/trajectory_analysis.py +3 -2
- {pynamicalsys-1.0.0.dist-info → pynamicalsys-1.2.1.dist-info}/METADATA +15 -15
- {pynamicalsys-1.0.0.dist-info → pynamicalsys-1.2.1.dist-info}/RECORD +14 -9
- {pynamicalsys-1.0.0.dist-info → pynamicalsys-1.2.1.dist-info}/WHEEL +0 -0
- {pynamicalsys-1.0.0.dist-info → pynamicalsys-1.2.1.dist-info}/top_level.txt +0 -0
@@ -16,94 +16,93 @@
|
|
16
16
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
17
17
|
|
18
18
|
|
19
|
-
import numpy as np
|
20
19
|
from numbers import Integral, Real
|
21
|
-
from typing import
|
20
|
+
from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Union
|
21
|
+
|
22
|
+
import numpy as np
|
22
23
|
from numpy.typing import NDArray
|
23
24
|
|
24
25
|
from pynamicalsys.common.recurrence_quantification_analysis import RTEConfig
|
26
|
+
from pynamicalsys.common.utils import finite_difference_jacobian, householder_qr
|
25
27
|
from pynamicalsys.discrete_time.dynamical_indicators import (
|
26
|
-
|
27
|
-
lyapunov_qr,
|
28
|
-
finite_time_lyapunov,
|
29
|
-
lyapunov_1D,
|
28
|
+
RTE,
|
30
29
|
SALI,
|
31
30
|
LDI_k,
|
32
|
-
lagrangian_descriptors,
|
33
31
|
dig,
|
34
|
-
hurst_exponent,
|
35
32
|
finite_time_hurst_exponent,
|
36
|
-
|
33
|
+
finite_time_lyapunov,
|
37
34
|
finite_time_RTE,
|
35
|
+
hurst_exponent,
|
36
|
+
lagrangian_descriptors,
|
37
|
+
lyapunov_1D,
|
38
|
+
lyapunov_er,
|
39
|
+
lyapunov_qr,
|
38
40
|
)
|
39
41
|
from pynamicalsys.discrete_time.models import (
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
unbounded_standard_map,
|
42
|
+
extended_standard_nontwist_map,
|
43
|
+
extended_standard_nontwist_map_backwards,
|
44
|
+
extended_standard_nontwist_map_jacobian,
|
44
45
|
henon_map,
|
45
46
|
henon_map_jacobian,
|
47
|
+
leonel_map,
|
48
|
+
leonel_map_backwards,
|
49
|
+
leonel_map_jacobian,
|
46
50
|
logistic_map,
|
47
51
|
logistic_map_jacobian,
|
52
|
+
lozi_map,
|
53
|
+
lozi_map_jacobian,
|
54
|
+
rulkov_map,
|
55
|
+
rulkov_map_jacobian,
|
56
|
+
standard_map,
|
57
|
+
standard_map_backwards,
|
58
|
+
standard_map_jacobian,
|
48
59
|
standard_nontwist_map,
|
49
60
|
standard_nontwist_map_backwards,
|
50
61
|
standard_nontwist_map_jacobian,
|
51
|
-
extended_standard_nontwist_map,
|
52
|
-
extended_standard_nontwist_map_backwards,
|
53
|
-
extended_standard_nontwist_map_jacobian,
|
54
|
-
leonel_map,
|
55
|
-
leonel_map_jacobian,
|
56
|
-
leonel_map_backwards,
|
57
62
|
symplectic_map_4D,
|
58
63
|
symplectic_map_4D_backwards,
|
59
64
|
symplectic_map_4D_jacobian,
|
60
|
-
|
61
|
-
lozi_map_jacobian,
|
62
|
-
rulkov_map,
|
63
|
-
rulkov_map_jacobian,
|
65
|
+
unbounded_standard_map,
|
64
66
|
)
|
65
67
|
from pynamicalsys.discrete_time.trajectory_analysis import (
|
66
|
-
generate_trajectory,
|
67
|
-
ensemble_trajectories,
|
68
68
|
bifurcation_diagram,
|
69
|
-
|
69
|
+
calculate_manifolds,
|
70
|
+
classify_stability,
|
71
|
+
eigenvalues_and_eigenvectors,
|
72
|
+
ensemble_time_average,
|
73
|
+
ensemble_trajectories,
|
70
74
|
escape_basin_and_time_entering,
|
71
75
|
escape_time_exiting,
|
72
|
-
survival_probability,
|
73
76
|
find_periodic_orbit,
|
74
77
|
find_periodic_orbit_symmetry_line,
|
75
|
-
|
76
|
-
classify_stability,
|
77
|
-
calculate_manifolds,
|
78
|
-
rotation_number,
|
78
|
+
generate_trajectory,
|
79
79
|
iterate_mapping,
|
80
|
-
|
80
|
+
period_counter,
|
81
|
+
rotation_number,
|
82
|
+
survival_probability,
|
81
83
|
)
|
82
84
|
from pynamicalsys.discrete_time.transport import (
|
83
|
-
diffusion_coefficient,
|
84
85
|
average_vs_time,
|
85
|
-
|
86
|
+
cumulative_average_vs_time,
|
87
|
+
diffusion_coefficient,
|
86
88
|
mean_squared_displacement,
|
87
89
|
recurrence_times,
|
88
|
-
|
90
|
+
root_mean_squared,
|
89
91
|
)
|
90
|
-
|
91
|
-
from pynamicalsys.common.utils import finite_difference_jacobian, householder_qr
|
92
|
-
|
93
|
-
from .time_series_metrics import TimeSeriesMetrics as tsm
|
94
|
-
|
95
92
|
from pynamicalsys.discrete_time.validators import (
|
93
|
+
validate_and_convert_param_range,
|
94
|
+
validate_axis,
|
95
|
+
validate_finite_time,
|
96
96
|
validate_initial_conditions,
|
97
|
-
validate_parameters,
|
98
97
|
validate_non_negative,
|
99
|
-
|
100
|
-
validate_and_convert_param_range,
|
98
|
+
validate_parameters,
|
101
99
|
validate_positive,
|
102
100
|
validate_sample_times,
|
103
|
-
|
104
|
-
validate_finite_time,
|
101
|
+
validate_transient_time,
|
105
102
|
)
|
106
103
|
|
104
|
+
from .time_series_metrics import TimeSeriesMetrics as tsm
|
105
|
+
|
107
106
|
|
108
107
|
class DiscreteDynamicalSystem:
|
109
108
|
"""Class representing a discrete dynamical system with various models and methods for analysis.
|
@@ -15,10 +15,11 @@
|
|
15
15
|
# You should have received a copy of the GNU General Public License
|
16
16
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
17
17
|
|
18
|
-
from typing import
|
19
|
-
|
18
|
+
from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Union
|
19
|
+
|
20
20
|
import numpy as np
|
21
21
|
from numba import njit, prange
|
22
|
+
from numpy.typing import NDArray
|
22
23
|
|
23
24
|
|
24
25
|
@njit(cache=True)
|
@@ -1,7 +1,7 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: pynamicalsys
|
3
|
-
Version: 1.
|
4
|
-
Summary: A Python toolkit for
|
3
|
+
Version: 1.2.1
|
4
|
+
Summary: A Python toolkit for the analysis of dynamical systems
|
5
5
|
Author-email: Matheus Rolim Sales <rolim.sales.m@gmail.com>
|
6
6
|
License: GNU GENERAL PUBLIC LICENSE
|
7
7
|
Version 3, 29 June 2007
|
@@ -690,7 +690,7 @@ Requires-Dist: numpy>=1.21
|
|
690
690
|
Requires-Dist: matplotlib>=3.4
|
691
691
|
Requires-Dist: numba>=0.55
|
692
692
|
|
693
|
-
#
|
693
|
+
# pynamicalsys: A Python toolkit for the analysis of dynamical systems
|
694
694
|
|
695
695
|
[](https://pynamicalsys.readthedocs.io/en/latest/)
|
696
696
|
[](https://pypi.org/project/pynamicalsys/)
|
@@ -698,7 +698,7 @@ Requires-Dist: numba>=0.55
|
|
698
698
|
|
699
699
|
## Overview
|
700
700
|
|
701
|
-
**
|
701
|
+
**pynamicalsys** is designed to provide a fast, flexible, and user-friendly environment for analyzing **nonlinear dynamical systems**. It is designed for students, researchers, educators, and enthusiasts who want to explore the world of chaos and dynamical systems. Beyond standard tools like trajectory generation and Lyapunov exponents calculation, pynamicalsys includes advanced features such as
|
702
702
|
|
703
703
|
- **Linear dependence index** for chaos detection.
|
704
704
|
- **Recurrence plots** and recurrence time statistics.
|
@@ -708,7 +708,7 @@ Requires-Dist: numba>=0.55
|
|
708
708
|
- Basin metric for **quantifying** the structure of **basins of attraction**.
|
709
709
|
- **Plot styling** for consistent and customizable visualizations.
|
710
710
|
|
711
|
-
|
711
|
+
pynamicalsys is built on top of NumPy and Numba, ensuring high performance and efficiency. Thanks to Numba accelerated computation, pynamicalsys offers speedups up to **130x** compared to the original Python implementation of the algorithms. This makes it suitable for large-scale simulations and analyses.
|
712
712
|
|
713
713
|
## Installation
|
714
714
|
|
@@ -757,18 +757,18 @@ $ pip install --upgrade pip build
|
|
757
757
|
|
758
758
|
## Citation
|
759
759
|
|
760
|
-
|
760
|
+
Currently, our research paper is under review, but in the mean time, if you use **pynamicalsys** in your work, you can cite the [arXiv](https://arxiv.org/abs/2506.14044) version:
|
761
761
|
|
762
762
|
```bibtex
|
763
|
-
|
764
|
-
|
765
|
-
|
766
|
-
|
767
|
-
|
768
|
-
|
769
|
-
|
770
|
-
|
771
|
-
|
763
|
+
@misc{pynamicalsys,
|
764
|
+
title={pynamicalsys: A Python toolkit for the analysis of dynamical systems},
|
765
|
+
author={Matheus Rolim Sales and Leonardo Costa de Souza and Daniel Borin and Michele Mugnaine and José Danilo Szezech Jr. and Ricardo Luiz Viana and Iberê Luiz Caldas and Edson Denis Leonel and Chris G. Antonopoulos},
|
766
|
+
year={2025},
|
767
|
+
eprint={2506.14044},
|
768
|
+
archivePrefix={arXiv},
|
769
|
+
primaryClass={nlin.CD},
|
770
|
+
url={https://arxiv.org/abs/2506.14044},
|
771
|
+
}
|
772
772
|
```
|
773
773
|
|
774
774
|
## Contributing
|
@@ -1,23 +1,28 @@
|
|
1
|
-
pynamicalsys/__init__.py,sha256=
|
2
|
-
pynamicalsys/__version__.py,sha256=
|
1
|
+
pynamicalsys/__init__.py,sha256=IBHDcCD7wX8pULFXLk0yvF3uuNodvDKGirJektm1nR4,1215
|
2
|
+
pynamicalsys/__version__.py,sha256=o_HX9RG1Az6cNVO1yJqZGUGJ9beCOu4JDzG2rpuz-yQ,511
|
3
3
|
pynamicalsys/common/__init__.py,sha256=W4OESm7TA-EUTGUOtIgBgvSd1n80Mgl0KA2dCkw8yIw,721
|
4
4
|
pynamicalsys/common/basin_analysis.py,sha256=teGEOMPPOdzKNZsN0_OvkzBlcV-UOANRjcdFyI2-FLM,5473
|
5
5
|
pynamicalsys/common/recurrence_quantification_analysis.py,sha256=neBolgoWrGJYOQta71Jf2ZMwNK1RoaZb_wNHqb1mM7I,14356
|
6
6
|
pynamicalsys/common/utils.py,sha256=ezNMSGTDVjtHpAa95Dr0r09s5CR_h9AShLU_ZuLMM44,10189
|
7
7
|
pynamicalsys/continuous_time/__init__.py,sha256=W4OESm7TA-EUTGUOtIgBgvSd1n80Mgl0KA2dCkw8yIw,721
|
8
|
+
pynamicalsys/continuous_time/chaotic_indicators.py,sha256=rwstGDMx2ynT7woezVqaOQ10HJpblp0dJvheLjpCnBg,9891
|
9
|
+
pynamicalsys/continuous_time/models.py,sha256=YJtmsVZqSn3GDNqV0IKSQBHWZSCDY_EJ5Sgh4ulDc9I,5339
|
10
|
+
pynamicalsys/continuous_time/numerical_integrators.py,sha256=pSsDIlxhSntLxfHLRNduqjExdiUEY6yNpQRyvLBraqk,9667
|
11
|
+
pynamicalsys/continuous_time/trajectory_analysis.py,sha256=1Eh4WEIlLT_fFGfgEorSgN1qGZ9ym0kVEPbWcRRXNKQ,4406
|
12
|
+
pynamicalsys/continuous_time/validators.py,sha256=dvtlcWbn2w5_vNUB68f7ywFPyFrPKe3cUDqGCk52mhw,3834
|
8
13
|
pynamicalsys/core/__init__.py,sha256=W4OESm7TA-EUTGUOtIgBgvSd1n80Mgl0KA2dCkw8yIw,721
|
9
14
|
pynamicalsys/core/basin_metrics.py,sha256=sqSj-UCzBQdRaTvOBtzo8SCgJN90T3GiWy4nlLsbg5c,7604
|
10
|
-
pynamicalsys/core/continuous_dynamical_systems.py,sha256=
|
11
|
-
pynamicalsys/core/discrete_dynamical_systems.py,sha256=
|
15
|
+
pynamicalsys/core/continuous_dynamical_systems.py,sha256=nkESGfuxBT_UmoY_2tJv1fMY4hK1J0M74aQpLgNVEyI,30482
|
16
|
+
pynamicalsys/core/discrete_dynamical_systems.py,sha256=AhxyAOZFnkjf4KnJiaReN5ZRndkFFEG_GOT2_PeLpXs,135874
|
12
17
|
pynamicalsys/core/plot_styler.py,sha256=sVX_rb1HSt340U3zyPlXojylhma9cKCOgYirMIge18M,5647
|
13
18
|
pynamicalsys/core/time_series_metrics.py,sha256=7fwXO1I6lIjmv_MzYxBn-9k2gjjnhm_y_Tp3diE1z68,5102
|
14
19
|
pynamicalsys/discrete_time/__init__.py,sha256=W4OESm7TA-EUTGUOtIgBgvSd1n80Mgl0KA2dCkw8yIw,721
|
15
20
|
pynamicalsys/discrete_time/dynamical_indicators.py,sha256=Ck6orYxy09NHsVYnTSmkROq33csiyiePdsqzOAJCKcs,43057
|
16
21
|
pynamicalsys/discrete_time/models.py,sha256=u9MlaCzBzR_OomWRYbEC2sS2qpfDg7qzZjX8YDijVe0,10756
|
17
|
-
pynamicalsys/discrete_time/trajectory_analysis.py,sha256=
|
22
|
+
pynamicalsys/discrete_time/trajectory_analysis.py,sha256=W3nqLJgqJYMV9DbBbSSOpzNDQ7XlroP3lC0sgSoFztY,48669
|
18
23
|
pynamicalsys/discrete_time/transport.py,sha256=29leQue2ReRbFzT_riqWXTZDvf2O7jMsMOUnAQPBrBU,15972
|
19
24
|
pynamicalsys/discrete_time/validators.py,sha256=4eWQAlZgCzFsrmijzVF10CZuoIMiu-jvrrvRokBFTkY,10013
|
20
|
-
pynamicalsys-1.
|
21
|
-
pynamicalsys-1.
|
22
|
-
pynamicalsys-1.
|
23
|
-
pynamicalsys-1.
|
25
|
+
pynamicalsys-1.2.1.dist-info/METADATA,sha256=iQcE9Kfx8sUcLVpOJTeQHtRfFFl8hXKiulh7JSop7AU,45611
|
26
|
+
pynamicalsys-1.2.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
27
|
+
pynamicalsys-1.2.1.dist-info/top_level.txt,sha256=1AqoHXye_hGRkvqu4KY0SdEuNTgqf3xyTlV8xhiJJFU,13
|
28
|
+
pynamicalsys-1.2.1.dist-info/RECORD,,
|
File without changes
|
File without changes
|