pynamicalsys 1.0.1__py3-none-any.whl → 1.2.2__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.
@@ -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 Optional, Tuple, Union, Callable, List, Dict, Sequence, Any
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
- lyapunov_er,
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
- RTE,
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
- standard_map,
41
- standard_map_backwards,
42
- standard_map_jacobian,
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
- lozi_map,
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
- period_counter,
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
- eigenvalues_and_eigenvectors,
76
- classify_stability,
77
- calculate_manifolds,
78
- rotation_number,
78
+ generate_trajectory,
79
79
  iterate_mapping,
80
- ensemble_time_average,
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
- root_mean_squared,
86
+ cumulative_average_vs_time,
87
+ diffusion_coefficient,
86
88
  mean_squared_displacement,
87
89
  recurrence_times,
88
- cumulative_average_vs_time,
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
- validate_transient_time,
100
- validate_and_convert_param_range,
98
+ validate_parameters,
101
99
  validate_positive,
102
100
  validate_sample_times,
103
- validate_axis,
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 Optional, Callable, Union, Tuple, Dict, List, Any, Sequence
19
- from numpy.typing import NDArray
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.0.1
4
- Summary: A Python toolkit for chaotic analysis and dynamical systems
3
+ Version: 1.2.2
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
@@ -689,6 +689,7 @@ Description-Content-Type: text/markdown
689
689
  Requires-Dist: numpy>=1.21
690
690
  Requires-Dist: matplotlib>=3.4
691
691
  Requires-Dist: numba>=0.55
692
+ Requires-Dist: scipy>=0.6
692
693
 
693
694
  # pynamicalsys: A Python toolkit for the analysis of dynamical systems
694
695
 
@@ -698,28 +699,28 @@ Requires-Dist: numba>=0.55
698
699
 
699
700
  ## Overview
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
+ **pynamicalsys** is designed to provide a fast, flexible, and user-friendly environment for analyzing **nonlinear dynamical systems**. It is intended 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
703
 
703
- - **Linear dependence index** for chaos detection.
704
- - **Recurrence plots** and recurrence time statistics.
705
- - Chaos indicators based on **weighted Birkhoff averages**.
706
- - Statistical measures of **diffusion and transport** in dynamical systems.
707
- - Computation of **periodic orbits**, their **stability** and their **manifolds**.
708
- - Basin metric for **quantifying** the structure of **basins of attraction**.
709
- - **Plot styling** for consistent and customizable visualizations.
704
+ - **Linear dependence index** for chaos detection.
705
+ - **Recurrence plots** and recurrence time statistics.
706
+ - Chaos indicators based on **weighted Birkhoff averages**.
707
+ - Statistical measures of **diffusion and transport** in dynamical systems.
708
+ - Computation of **periodic orbits**, their **stability** and their **manifolds**.
709
+ - Basin metric for **quantifying** the structure of **basins of attraction**.
710
+ - **Plot styling** for consistent and customizable visualizations.
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
+ **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
713
 
713
714
  ## Installation
714
715
 
715
716
  ### Prerequisites
716
717
 
717
- - Python 3.8 or higher
718
- - pip (Python package installer)
718
+ - Python 3.8 or higher
719
+ - pip (Python package installer)
719
720
 
720
721
  ### Install via PyPI
721
722
 
722
- To install the latest stable release, run:
723
+ To install the latest stable release, run in your command line:
723
724
 
724
725
  ```bash
725
726
  $ pip install pynamicalsys
@@ -727,6 +728,13 @@ $ pip install pynamicalsys
727
728
 
728
729
  > **Note:** On **Windows**, it is **strongly recommended** to use [Anaconda](https://www.anaconda.com). It simplifies dependency management and avoids potential issues with scientific libraries during installation. Be sure to run the command from the **Anaconda Prompt**, not from Command Prompt or PowerShell, to ensure the correct environment is activated.
729
730
 
731
+ ### Upgrade via PyPI
732
+
733
+ To upgrade your current version of **pynamicalsys** to the latest stable release, run in your command line:
734
+
735
+ ```bash
736
+ $ pip install **pynamicalsys** --upgrade
737
+ ```
730
738
 
731
739
  ### Install from source
732
740
 
@@ -757,7 +765,19 @@ $ pip install --upgrade pip build
757
765
 
758
766
  ## Citation
759
767
 
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 version:
768
+ 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:
769
+
770
+ ```bibtex
771
+ @misc{pynamicalsys,
772
+ title={pynamicalsys: A Python toolkit for the analysis of dynamical systems},
773
+ 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},
774
+ year={2025},
775
+ eprint={2506.14044},
776
+ archivePrefix={arXiv},
777
+ primaryClass={nlin.CD},
778
+ url={https://arxiv.org/abs/2506.14044},
779
+ }
780
+ ```
761
781
 
762
782
  ## Contributing
763
783
 
@@ -1,23 +1,28 @@
1
- pynamicalsys/__init__.py,sha256=YKyJciyZ94-ULnQWSGk8Us6yJsNX_2HSNi_Akvnc4tE,1078
2
- pynamicalsys/__version__.py,sha256=2Cl9kcQGg7NiH_eHRcv8wDYSW0X4uS5J0mGdZFO9-h0,511
1
+ pynamicalsys/__init__.py,sha256=IBHDcCD7wX8pULFXLk0yvF3uuNodvDKGirJektm1nR4,1215
2
+ pynamicalsys/__version__.py,sha256=o0zEAUXpMoJZCULVYplCdjcZuIQ-3sIIZKyfNu_loQE,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=V5VbnYoGe3rtCS3cUxTt_Qi2j9tNLOhABghdbO2zNkc,779
11
- pynamicalsys/core/discrete_dynamical_systems.py,sha256=54eZaEmu1-KccbkFmqDHtidVKRXR7OzX8-GBe7qY3-Q,135875
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=5m-cVQ5XZ2e-fmyNVWSGa1Nik2vGbNeU56qHvLSBMmQ,48668
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.0.1.dist-info/METADATA,sha256=opnr3I_CdkY8EArhayU--Aq-v3Piipx921gOy2sTtSc,45108
21
- pynamicalsys-1.0.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
22
- pynamicalsys-1.0.1.dist-info/top_level.txt,sha256=1AqoHXye_hGRkvqu4KY0SdEuNTgqf3xyTlV8xhiJJFU,13
23
- pynamicalsys-1.0.1.dist-info/RECORD,,
25
+ pynamicalsys-1.2.2.dist-info/METADATA,sha256=UQDElv3HVAqJDDUM0251dJVDbQZPhyLTMe-hnHfPK-E,45834
26
+ pynamicalsys-1.2.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
27
+ pynamicalsys-1.2.2.dist-info/top_level.txt,sha256=1AqoHXye_hGRkvqu4KY0SdEuNTgqf3xyTlV8xhiJJFU,13
28
+ pynamicalsys-1.2.2.dist-info/RECORD,,