差分方程
差分方程处理的是"一步一步"的世界:年份、季度、代际、迭代轮次。它和微分方程看起来只差一个"离散 vs 连续",实际行为却可以天差地别——同一个逻辑斯蒂模型,连续版永远单调,离散版能混沌。这一页专门讲这些差别。
LAB 01
线性递推与特征根
调系数,看特征根在复平面上的位置怎么决定增长、衰减或振荡
特征根—
模长 |λ|—
长期行为—
最后一个值—
线性递推的长期行为完全由特征根的模长决定,一个数就够了。特征方程是 λ² = aλ + b。两个根都在单位圆内(|λ| < 1)就衰减到 0;有根在圆外就发散;根是复数时会出现振荡,振荡的周期由根的辐角决定。右下那张复平面图把这件事画了出来:单位圆内 = 稳定。注意这和微分方程的判据不同:微分方程看特征根的实部是否小于 0,差分方程看特征根的模长是否小于 1。两者的"稳定区域"分别是左半平面和单位圆盘,这是离散与连续最基本的一处差别。试试 a = 1、b = −1:两个根的模长恰好是 1,解是一条等幅振荡(周期 6),既不衰减也不发散——这是差分方程里的"中心",同样是结构不稳定的临界情形。另外把 b 调成负得很厉害,会看到振荡发散:负反馈太强不是稳定,而是振荡失控,这在控制系统里是常见故障模式。
LAB 02
蛛网图
一阶非线性递推的收敛与发散,一张图看完
不动点—
不动点处的斜率 f′(x*)—
收敛方式—
最后的值—
蛛网图是一维递推的"相图",它一次把所有信息都摆出来。不动点是 y = f(x) 与 y = x 的交点;收敛与否看交点处曲线的斜率:|f′(x*)| < 1 收敛,> 1 发散;斜率为正时单调逼近,为负时来回跳着逼近。这四个候选里 Beverton–Holt 的斜率永远在 0 到 1 之间,所以它永远单调收敛,绝不会混沌;Ricker 和逻辑斯蒂在 r 大的时候斜率会跌破 −1,于是先振荡、再倍周期、再混沌。这说明"离散模型会混沌"并不是离散本身造成的,而是取决于映射在不动点处有多陡。建模时这条判据非常实用:拿到一个递推式,先算 f′(x*),就知道它会不会闹。
LAB 03
离散 vs 连续
同一个逻辑斯蒂模型,离散版会混沌、连续版永远单调
连续解的终值—
离散解的终值—
乘积 r·Δt—
离散解的行为—
连续的逻辑斯蒂方程 x′ = rx(1 − x) 永远单调收敛到 1,不管 r 多大。这一点可以直接从相线看出来:0 到 1 之间 f > 0,所以 x 只能一路往右爬,没有别的可能。但它的欧拉离散化 xₙ₊₁ = xₙ + Δt·r·xₙ(1 − xₙ) 完全不是这样。决定一切的是乘积 r·Δt:小于 2 时单调收敛,2 到 2.449 之间振荡收敛,超过 2.449 出现周期 2,再往上倍周期直至混沌(把 r·Δt 换元就会发现它其实等价于参数 1 + r·Δt 的逻辑斯蒂映射)。这意味着两件事,都很重要:第一,离散化不是无害的近似——步长取大了,你解出来的动力学可能是求解器造出来的,而不是方程的。第二,如果你的系统本来就是按代繁殖的(昆虫、一年生植物),那么离散模型才是对的,那个混沌是真的。"用哪一种"取决于现实里事情是不是一步一步发生的,而不是哪个更好算。
LAB 04
莱斯利矩阵
按年龄分组的种群预测,主特征值就是长期增长率
主特征值 λ₁(长期增长率)—
种群趋势—
稳定年龄结构(占比)—
大约几代之后结构稳定下来—
莱斯利矩阵把"按年龄分组的种群"写成一次矩阵乘法:n(t+1) = L·n(t)。于是长期行为就是矩阵幂的问题,答案由主特征值 λ₁ 给出:λ₁ > 1 增长,λ₁ < 1 衰退,λ₁ = 1 持平。更有意思的是右下那张图:不管初始年龄结构怎么设,各组的占比都会收敛到同一个分布——主特征向量。这叫稳定年龄结构,是种群生态学和人口学里最基本的结论之一,也是"人口惯性"的数学来源:即使生育率立刻降到更替水平,人口还会继续增长几十年,因为年龄结构本身要花很久才调整过来。再试一件事:把两个生育率都调小,让 λ₁ 略小于 1。种群在衰退,但前几代未必看得出来——这正是"趋势判断不能只看头几年"的一个干净例子。
这一页想说的
差分与微分的选择,本质上是在问"这个系统的变化是连续发生的,还是一步一步发生的"。答案来自现实,不来自数学方便。而一旦选了离散,就要额外小心两件事:一是稳定性判据换成了"特征根模长小于 1";二是离散系统可以有连续系统绝不可能有的行为(一维混沌)。反过来,如果你是为了求解而离散化一个连续方程,那么步长必须小到让这些"额外的行为"不出现——这正是下一页数值解法要处理的问题。