二维系统与相图
两个变量的系统,解已经很难写成公式了,但相图几乎不用算。把每一点的速度向量画出来,轨线就是顺着向量走的路径;平衡点在哪、往哪儿转、会不会绕回来,全都是几何问题。相图是整个动力系统里性价比最高的一张图。
本页实验台
LAB 01
线性系统分类
调雅可比矩阵的迹与行列式,在 tr–det 平面上看结点、鞍点、焦点、中心的分界
迹 tr—
行列式 det—
判别式 tr² − 4det—
类型—
右下那张 tr–det 平面是二维线性系统的完整分类图,一张图就够了。det < 0(横轴下方)一定是鞍点;det > 0 时再看迹:迹 < 0 是稳定、迹 > 0 是不稳定;抛物线 tr² = 4det 把结点和焦点分开——抛物线内侧特征值是复数,轨线会转圈;外侧是实数,轨线直着进出。整条纵轴(tr = 0, det > 0)是中心,闭轨。但请注意一件重要的事:中心是结构不稳定的——把迹调成 0.01 或 −0.01,闭轨立刻变成向外或向内的螺旋。这意味着现实中"完美的周期振荡"几乎不可能来自这种机制,因为任何微小扰动都会破坏它。真实系统里的持久振荡通常来自极限环(本页最后一个实验台),那是结构稳定的。非线性系统在平衡点附近的行为,由雅可比矩阵的这张图决定——这就是线性化方法的全部内容,也是它在 tr = 0 附近失效的原因。
LAB 02
Lotka–Volterra
参数一变,周期轨道的形状与周期跟着变;加上密度制约后闭轨变成螺旋
内部平衡点—
周期(数值估计)—
猎物数量的波动范围—
轨线类型—
经典 Lotka–Volterra 的内部平衡点是个中心,所有轨线都是闭轨。这看起来很像现实中的种群周期波动,但它有个致命的性质:轨道的大小完全由初值决定。也就是说,系统"记住"了它从哪出发,扰动一次就永久换一条轨道。真实的捕食-被捕食系统显然不是这样——受到一次干扰之后它们会回到原来的波动幅度。把"密度制约"从 0 往上调一点,闭轨立刻变成向内的螺旋。这个小小的修正(猎物自身也有容量上限)把中心变成了稳定焦点,系统从"结构不稳定的永久振荡"变成了"扰动后会回到平衡"。这两种定性行为对应着完全不同的生态学结论,而它们的差别只是模型里多了一项。这一页最值得记住的一句话:中心这种结构在建模里几乎总是一个警告信号,说明你的模型太干净了。
LAB 03
SIR 传染病
调 β 与 γ,看 R₀ 跨过 1 时疫情曲线的质变
基本再生数 R₀ = β/γ—
有效再生数 R = R₀·S₀—
峰值感染比例 / 出现时间—
最终感染总比例—
R₀ 跨过 1 的时候,SIR 的行为发生质变。R₀ < 1 时感染曲线单调下降,从一开始就没起来;R₀ > 1 时先涨后落,出现一个峰。这个分界完全由 β/γ 决定,跟初始感染者有多少无关——初值只影响峰来得早晚,不影响峰会不会出现。再看"已免疫比例"这个控制。把它调到 1 − 1/R₀ 以上,有效再生数就掉到 1 以下,疫情起不来——这就是群体免疫阈值的全部推导。R₀ = 2.67(默认参数)时这个阈值是 62.5%,你可以把滑杆推到 63% 验证一下。最后注意"最终感染总比例"这个读数:它不等于 1。即使 R₀ 很大,疫情也会在还有一部分易感者时自己停下来,因为感染者的减少速度超过了新感染的产生速度。这个数值满足一个超越方程(最终规模方程),没有初等解析解,但它是流行病学里最常被引用的量之一。
LAB 04
极限环
范德波尔振子:不管从哪出发都被吸到同一条闭轨上
周期(数值估计)—
极限环的振幅—
从环内外出发是否收敛到同一条环—
波形—
范德波尔方程 x″ − μ(1 − x²)x′ + x = 0 的关键在那个 (1 − x²)。|x| < 1 时阻尼项是负的(往系统里注入能量),|x| > 1 时是正的(耗散能量)。于是小振幅被推大、大振幅被压小,最后停在一个"刚刚好"的幅度上——这就是极限环。把起点分别放到环内和环外,两条轨线最后会贴到同一条闭曲线上。这和上一个实验台里的中心形成鲜明对比:中心的轨道由初值决定,极限环的轨道由方程本身决定。后者才是现实中持久振荡的常见来源——心跳、萤火虫齐闪、电子振荡电路、经济周期模型,都是极限环而不是中心。再把 μ 从 0.1 拉到 5:μ = 0.1 时波形接近正弦、周期 6.29(几乎正好是 2π);μ = 5 时变成"慢慢充电、突然放电"的弛豫振荡,周期拉长到 11.6。(常引用的渐近公式 (3 − 2ln2)μ ≈ 1.61μ 要到 μ 更大时才准,在 μ = 5 处还差得比较远——渐近公式要看它的适用范围。)同一个方程,换个参数就换了一种物理图景。
这一页想说的
二维系统的分析套路基本固定:找平衡点 → 在每个平衡点算雅可比矩阵 → 用 tr–det 判类型 → 画零斜线把平面分块 → 补上全局信息(闭轨、极限环、无穷远行为)。前四步是机械的,第五步才是真正需要判断的地方。另外提醒一句:线性化只告诉你平衡点附近的事,而且在中心(tr = 0)这种临界情形下会给出错误结论——这时必须回到非线性方程本身。