前言为什么要学习动力系统在自然科学和工程技术中我们经常会遇到这样一类问题一个系统现在处于某种状态那么随着时间推移它未来会怎样变化例如一个小球从高处落下它的位置和速度如何随时间变化一个弹簧振子被拉开后为什么会来回振动一个种群数量会稳定增长、周期振荡还是最终灭绝天气系统为什么看起来难以预测为什么一个简单的数学迭代公式也可能产生复杂的混沌现象这些问题背后都隐藏着同一个核心主题动力系统研究的是系统状态随时间演化的规律。本系列博客将从零开始带你入门动力系统的基本概念、数学方法、经典模型以及 Python 数值模拟。0.1 什么是动力系统简单来说动力系统就是描述“状态如何随时间变化”的数学模型。如果我们用一个变量x(t)x(t)x(t)表示系统在时刻ttt的状态那么动力系统关心的问题就是x(t)如何随着t变化 x(t) \quad \text{如何随着} \quad t \quad \text{变化}x(t)如何随着t变化更一般地一个系统可能不止一个状态变量。例如一个运动的小球可以用位置和速度描述x(t),v(t) x(t), \quad v(t)x(t),v(t)一个生态系统可能需要用猎物数量和捕食者数量描述x(t),y(t) x(t), \quad y(t)x(t),y(t)一个复杂系统甚至可能需要很多变量共同描述x1(t),x2(t),⋯ ,xn(t) x_1(t), x_2(t), \cdots, x_n(t)x1​(t),x2​(t),⋯,xn​(t)动力系统的目标就是研究这些变量随时间变化时表现出的各种行为。0.2 动力系统研究什么动力系统并不只是求解微分方程它更关心系统的整体行为。比如我们可能会问系统最终会趋于稳定吗系统会不会一直振荡系统是否会对初始条件极其敏感参数改变时系统行为会不会突然发生变化一个看似简单的系统为什么会产生复杂甚至混沌的运动这些问题对应动力系统中的一些核心概念平衡点稳定性相空间极限环分岔吸引子混沌Lyapunov 指数本系列博客会逐步介绍这些概念并尽量用直观图像和 Python 代码辅助理解。0.3 动力系统的两个基本类型动力系统通常可以分为两大类1. 连续时间动力系统连续时间动力系统通常由微分方程描述。例如dxdtf(x) \frac{dx}{dt} f(x)dtdx​f(x)这里的xxx是系统状态f(x)f(x)f(x)决定了状态变化的速度。一个简单例子是指数增长模型dxdtrx \frac{dx}{dt} rxdtdx​rx其中rrr是增长率。这类系统中的时间ttt是连续变化的例如t0,0.1,0.2,0.3,⋯ t 0, 0.1, 0.2, 0.3, \cdotst0,0.1,0.2,0.3,⋯连续时间动力系统常见于经典力学电路系统流体力学生物种群模型化学反应系统2. 离散时间动力系统离散时间动力系统通常由迭代映射描述。例如xn1f(xn) x_{n1} f(x_n)xn1​f(xn​)这表示系统从第nnn步状态xnx_nxn​演化到下一步状态xn1x_{n1}xn1​。一个经典例子是 Logistic 映射xn1rxn(1−xn) x_{n1} rx_n(1 - x_n)xn1​rxn​(1−xn​)这里的时间不是连续的而是一代一代、一轮一轮地变化n0,1,2,3,⋯ n 0, 1, 2, 3, \cdotsn0,1,2,3,⋯离散动力系统常见于种群代际模型数值迭代经济周期模型计算机模拟混沌理论入门模型0.4 为什么动力系统重要动力系统的重要性在于它提供了一种统一的语言用来描述自然界和社会系统中的演化现象。无论是物理中的振动、生态中的种群变化还是经济中的周期波动都可以用动力系统的思想来分析。例如领域动力系统中的问题物理学振子、单摆、天体运动、混沌系统生物学种群增长、捕食者—猎物模型、神经振荡工程学控制系统、电路振荡、机器人运动化学化学反应动力学、反应扩散系统经济学经济周期、市场波动、演化博弈机器学习梯度下降、优化过程、神经网络动力学动力系统的魅力在于很多复杂现象并不一定来自复杂模型简单的方程也可能产生极其丰富的行为。0.5 本系列博客适合谁本系列主要面向动力系统初学者尤其适合想入门非线性动力学的同学正在学习微分方程但缺少几何直觉的同学对混沌、分岔、吸引子感兴趣的读者想用 Python 做动力系统仿真的学习者学物理、数学、自动化、生物、计算机等相关专业的学生阅读本系列不要求你一开始就掌握很深的数学知识。如果你了解以下基础内容会更容易上手导数的基本概念简单的一阶微分方程矩阵和特征值的初步知识Python 基础语法NumPy 和 Matplotlib 的简单使用即使这些内容还不熟悉也没有关系。后续文章会在需要时进行简单补充。0.6 本系列博客的学习路线本系列将按照“从直观到理论从简单到复杂”的路线展开。大致结构如下基本概念 ↓ 微分方程与相空间 ↓ 平衡点与稳定性 ↓ 经典动力系统模型 ↓ 分岔理论入门 ↓ 离散动力系统 ↓ 混沌现象 ↓ Python 数值模拟