MIT License

项目介绍

gboeing/pynamical 是一个托管在 GitHub 上的开源项目,主要使用 Python 编写,采用 MIT License 许可证,目前获得 678 个 Star、116 次 Fork。

仓库全名
gboeing/pynamical
开源许可证
MIT License
Star 数
678
Fork 数
116

README 摘要

pynamical Python package for modeling, simulating, visualizing, and animating discrete nonlinear dynamical systems and chaos Pynamical uses pandas, numpy, and numba for fast simulation, and matplotlib for visualizations and animations to explore system behavior. Pynamical comes packaged with the logistic map, the Singer map, and the cubic map predefined. The models may be run with a range of parameter values over a…

完整内容见 GitHub 原始 README 或本页 。

常见问题

pynamical 用什么语言开发?

主要使用 Python 编写,采用 MIT License 许可证,目前有 678 个 Star。

pynamical 可以免费商用吗?

仓库采用 MIT License 许可证,可免费使用与修改,商业使用请遵守许可证条款(例如保留版权声明与许可声明)。

如何获取 pynamical 的源码?

可以直接克隆仓库:git clone https://github.com/gboeing/pynamical.git,默认分支为 main;安装与运行步骤见仓库 README。

pynamical 最近还在维护吗?

仓库最近一次更新为 2025年4月19日,当前没有未关闭的 Issue;Star 数为 678,可作为社区活跃度的参考。

关于

Model, simulate, and visualize discrete nonlinear dynamical systems, chaos, and fractals

描述取自 GitHub 官方 API,中文内容由 GitRead 中文社区 编辑团队整理。

语言占比

Dockerfile
Python
Shell

Release

贡献者

README

PyPI Version Anaconda Downloads Documentation Tests Coverage

pynamical

Python package for modeling, simulating, visualizing, and animating discrete nonlinear dynamical systems and chaos

Pynamical uses pandas, numpy, and numba for fast simulation, and matplotlib for visualizations and animations to explore system behavior.

Pynamical comes packaged with the logistic map, the Singer map, and the cubic map predefined. The models may be run with a range of parameter values over a set of time steps, and the resulting numerical output is returned as a pandas DataFrame. Pynamical can then visualize this output in various ways, including with bifurcation diagrams, two-dimensional phase diagrams, three-dimensional phase diagrams, and cobweb plots.

Citation info: Boeing, G. 2016. “Visual Analysis of Nonlinear Dynamical Systems: Chaos, Fractals, Self-Similarity and the Limits of Prediction.” Systems, 4 (4), 37. doi:10.3390/systems4040037.

Install:

You can install pynamical with conda:

conda config --prepend channels conda-forge
conda create -n pynamical --strict-channel-priority jupyterlab pynamical

Alternatively, you can run pynamical + Jupyter directly from its Docker container, or you can install it with pip.

Documentation:

Available on readthedocs.

Demos/tutorial:

  1. Pynamical: quick overview
  2. Pynamical: the logistic model and bifurcation diagrams
  3. Pynamical: 2D and 3D phase diagrams
  4. Pynamical: static and animated cobweb plots
  5. Pynamical: animated 3D phase diagrams
  6. Pynamical: demonstrating other models

Quick walkthrough:

First import pynamical. Then simulate some model and visualize its bifurcation diagram in just 2 lines of code:

from pynamical import logistic_map, simulate, bifurcation_plot
pops = simulate(model=logistic_map, num_gens=100, rate_min=0, rate_max=4, num_rates=1000, num_discard=100)
bifurcation_plot(pops)

Zoom into a slice of this bifurcation diagram to see its fractal structure:

pops = simulate(model=logistic_map, num_gens=100, rate_min=3.7, rate_max=3.9, num_rates=1000, num_discard=100)
bifurcation_plot(pops, xmin=3.7, xmax=3.9)

Plot a two-dimensional phase diagram of the logistic map:

from pynamical import phase_diagram
pops = simulate(model=logistic_map, num_gens=4000, rate_min=3.6, rate_max=4.0, num_rates=50, num_discard=100)
phase_diagram(pops, xmin=0.25, xmax=0.75, ymin=0.8, ymax=1.01, size=7, color='viridis')

Or a three-dimensional phase diagram of the cubic map:

from pynamical import cubic_map, phase_diagram_3d
pops = simulate(model=cubic_map, num_gens=3000, rate_min=3.5, num_rates=30, num_discard=100)
phase_diagram_3d(pops, xmin=-1, xmax=1, ymin=-1, ymax=1, zmin=-1, zmax=1, alpha=0.2, color='viridis', azim=330)

Animate the 3D phase diagram of the logistic map to reveal the strange attractor’s structure:

Animate a cobweb plot of the logistic map’s parameter space to explore sensitivity and behavior:

Or define your own model and simulate it with pynamical.

评论

暂无评论