一阶方程与方向场
一阶微分方程的全部信息都在"每一点该往哪个方向走"里。把这个方向画成一片小箭头,解曲线就是顺着箭头走出来的路径——不用求解公式也能把长期行为看个八九不离十。这一页想先建立这种"看图"的直觉,再谈解析解。
LAB 01
方向场
输入 dy/dx=f(x,y),画箭头场,点击任意点画出过该点的解曲线
起点处的斜率—
解在右端的值—
长期行为—
水平的平衡解—
先选 y′ = y(1 − y/3),把起点 y₀ 在 0 上下来回拖。y₀ > 0 时解都爬向 3,y₀ < 0 时解一路掉下去,而 y = 0 和 y = 3 这两条水平线本身就是解——它们是平衡解。这些结论完全是从箭头的方向读出来的,一个积分都没算。再换 y′ = 1 + y²。这个方程的解是 tan(x + c),它会在有限的 x 处直接冲到无穷——注意箭头在上方越来越陡。这提醒一件事:微分方程的解不一定对所有 x 都存在。存在唯一性定理只保证"局部"有解,很多数值求解器不报错地算出一堆垃圾,正是因为它跑过了解的存在区间。最后看 y′ = sin(x) − 0.3y:这不是自治方程(右边含 x),所以箭头随 x 变化,解最终被拖成一条振荡曲线。自治与非自治的区别,在方向场上是"箭头随不随 x 变"。
LAB 02
平衡点与相线
一维自治系统的相线,稳定与不稳定平衡点自动标注
平衡点个数—
各平衡点与稳定性—
从当前 y₀ 出发最终去哪—
当前 y₀ 附近最近平衡点的 f′(y*)—
一维自治系统的全部长期行为,就藏在 f(y) 这条曲线的零点里。f(y) > 0 的地方 y 往右走,f(y) < 0 的地方往左走,所以从上往下穿过零点的平衡点是稳定的(两边都指向它),从下往上穿的是不稳定的。判据就是 f′(y*):小于零稳定,大于零不稳定。选"Allee 效应"看一个有现实意义的例子。它有三个平衡点:0(稳定)、a(不稳定)、1(稳定)。a 是一个阈值——种群数量低于 a 就会灭绝,高于 a 才能恢复。这跟逻辑斯蒂模型给出的结论完全不同:逻辑斯蒂说"再少也能恢复",Allee 说"少到一定程度就回不来了"。在保护生物学里这个差别直接决定政策——这也是"模型选错了比参数估错了严重得多"的一个典型例子。最后选"半稳定":y = 0 这个点一边吸引一边排斥,f′(0) = 0,一阶判据在这里失效,必须看更高阶的项。
LAB 03
指数与逻辑斯蒂增长
同一份初始数据,两个模型的长期预测差多少
指数模型在预测末端的值—
逻辑斯蒂模型在预测末端的值—
真实值—
两个模型的相对误差—
把拟合窗口调到 8 以内,两个模型在数据上几乎完全重合。看拟合区间里的曲线,你没有任何办法凭数据区分它们——R² 都很高,残差都没有结构。但把预测拖到 t = 30:指数模型给出 49708,逻辑斯蒂给出 181,真值是 199.5——指数模型高估了 250 倍。这就是外推的危险:模型在数据覆盖的区间里彼此难辨,在数据之外却给出完全不同的世界。把拟合窗口慢慢拉大,指数模型的误差才开始暴露出来——因为这时数据里终于出现了"增长变慢"的信息。现实中这件事一再发生:疫情早期的指数外推、新产品前几个月的用户增长曲线、任何"按现在的速度,五年后将达到……"的推算。能救你的通常不是更好的拟合,而是机制上的先验:你知不知道这个系统有没有上限、上限大概在哪。
LAB 04
牛顿冷却
实测降温数据拟合,参数估计与预测区间
冷却系数 k 的估计 / 真值—
环境温度的估计 / 真值—
半冷却时间 ln2/k—
预测末端的区间宽度—
牛顿冷却律 T′ = −k(T − Tₐ) 的解是一条指数衰减到环境温度的曲线。对它做参数估计有个很实用的技巧:如果环境温度已知,取 ln(T − Tₐ) 就把问题变成了线性回归;这里两个参数都未知,所以用的是直接的非线性最小二乘。把测量区间从 25 缩到 8 再看:k 还能估个大概,但环境温度 Tₐ 的估计会开始乱跳。原因很直观——只测了前面陡的那一段,曲线还没开始贴近渐近线,数据里根本没有"最终会停在哪"的信息。参数可不可辨识,取决于你的数据覆盖了动力学的哪一段,而不取决于你用了多好的优化器。这也是为什么预测区间在末端会张开:模型对远处的事,本来就知道得更少。把噪声从 0.2 调到 0.6 再到 1.5,区间宽度是 1.10 → 3.22 → 7.44,大致与噪声成正比;但注意它比噪声本身大了五倍左右。预测区间里装的是两样东西:观测噪声,和被外推放大的参数不确定性。只报一个点估计而不报区间,等于把后面这一样悄悄扔掉了。
这一页想说的
一阶方程这一页真正想留下的不是解法,而是三个判断习惯:一、先画方向场或 f(y) 曲线,把长期行为看出来,再考虑要不要求解析解;二、平衡点和它的稳定性,往往比精确的轨迹更重要——现实系统里你关心的通常是"最后会停在哪";三、任何外推都要交代模型假设,因为数据区间里拟合得一样好的模型,在区间外可以给出完全相反的结论。