上一章里,我们尝试把一个陌生的一阶方程变成熟悉的样子:有时寻找势函数,有时换一个未知量,再用分离变量或积分因子继续算。可是,方程没有落进这些类型时,难道就什么也不知道了吗?
想象我们正在观察一个培养皿,已经知道此刻的种群数量,也提出了一条增长规律。即使暂时算不出数量随时间变化的公式,我们仍然想知道:这个规律能不能从当前状态开始运行?同样的起点,会不会给出两个不同的未来?数量最后会稳定下来,还是一直增加?这些问题都不必等到显式解出现后才回答。
本章就沿着这条思路走。先确认初值问题有没有解、解是不是唯一,再把一类方程的方向场压缩成一条简单的相线。我们会看到,有时只判断几个因子的正负,就能读出一个模型的长期走向。不过,判断之前需要把条件说清楚;一幅看起来很平滑的曲线,还不能替我们证明未来只有一种。
先拿一杯放在恒温房间里的热水来想。若温度变化率只取决于当前温度与室温的差,初始温度也已经给定,我们通常期待它往后有一条确定的温度曲线。这种期待落在数学上,就是一个初值问题:
这里 给出“在时刻 、状态为 时,变化率是多少”。解则是一段时间上的可微函数,它在每个时刻都得满足这个规定,并且经过初始点 。只在初始时刻把等式对上不够,画出一条穿过初始点的曲线也不够。
存在性问的是“这样的函数至少有一个吗”。唯一性接着问“满足同一初值的函数,在共同讨论的时间区间上是否必定相同”。这两件事要分开。一个题目可以有解但不唯一;也可以有唯一解,却无法把解写成常见初等函数的组合。
我们先看一个连启动都做不到的例子。假设有人提出
在 代回原方程,左边必定是 ,右边却是 。所以不存在一条在 附近可微、并满足这个初值问题的函数。若先除以 再积分,得到 ,也只能在不含 的区间讨论,不能用积分常数把初始点“补”进去。
这个例子提醒我们:求解之前先看方程在哪里有定义,初值放在哪里。上一章把方程整理成标准形时,除掉的系数如果会变成零,那些位置需要单独检查。
在初始点附近画一个小矩形,让时间和状态各有一点活动余地:
只要 在这个矩形上连续,初值问题就在 附近的某个时间区间上至少有一个解。这里可以明确说“保证局部存在”,不用含糊地说“大概有解”。但要检查的是初始点周围的一个区域,只有 在初始点上有一个有限的值,还不够。
要再保证唯一,一个常用的充分条件是: 连续,并且在这样的邻域内对 满足 Lipschitz 条件。名字先放一边,它说的是存在一个有限常数 ,使同一时刻的任意两个允许状态满足
右边量的是两个状态相差多少,左边量的是它们对应的变化率相差多少。这个不等式要求:状态只有一点点差别时,变化率的差别也得受到一个统一倍数的控制。 可以因我们选择的邻域而变,但在这个邻域里不能随着 越靠近而无限增大。
如果只想快速检查,可以用一个更方便的条件: 和 在初始点附近连续。那么先把矩形缩小一些,连续的 在这个小闭矩形上就有上界 。固定 ,对状态变量用中值定理,便有
其中 夹在 之间。取绝对值,就得到刚才的 Lipschitz 不等式。也就是说,“偏导数连续”这条便于操作的检查规则,是通过控制状态方向上的斜率来保证唯一的。
在初始点附近,右端连续保证局部至少有一个解;右端连续并对状态变量局部 Lipschitz,则保证局部解唯一。右端及其对状态变量的偏导数连续,是检查后一条件的一种方便办法。这些都是充分条件,检查失败时,不能直接宣布无解或不唯一。
考虑
我们不急着寻找解法,先计算
在 、 的矩形里,分母不会为零, 和 都连续。因此,这个初值问题在 附近存在唯一解。这已经是一条确定结论,即使我们没有算出解的公式。
若初始状态改成 ,右端在初始点根本没有定义,刚才的定理就不能使用。若原方程写作 ,代入 还会得到 ,所以这个初值确实不可能。这一次“无解”来自直接检查原方程,并非来自“定理没有通过”。这两个理由不能混为一谈。
要看清连续性为什么不够,我们研究一个无量纲的数学例子:状态已经是零,方程还会不会允许它自行离开零?规定变化率为当前状态绝对值的平方根:
右端处处连续,因此局部有解。最容易找到的是 。它的导数是零,右端也是零,初值当然满足。
现在只在 的一段上尝试分离变量:
左边非负,所以这一段要求 。平方后得到 。我们把它与零解连接起来:
它像是在零位置停留到时刻 ,随后才开始上升。但“像一条解”还不算,我们得检查连接点。
当 时,两边都是零。当 时,
在 处,函数左右都趋于零;左导数为零,右导数也趋于零。更直接地看,右侧差商是 ,左侧差商为零,因此连接点处可微,而且导数为零,仍满足方程。最后,因为 ,每条曲线都经过 。
于是,永远停着、马上起步、等两单位时间再起步,都是同一初值问题允许的解。尤其是 的解与零解在任意包含 的开区间内都不同,所以这里连局部唯一性也没有。
为什么唯一性条件没挡住它?取 、,对应的变化率差与状态差之比为
无论给多大的有限 ,只要 足够小,Lipschitz 不等式都会失败。不过,真正证明不唯一的是我们已经构造出不同的解;条件失败只是说明那条保证唯一的定理不能替我们作答。
观察演示时,可以特别看不同曲线的起步位置。连接点处不是画了一个折角;正因为两段的斜率都为零,才可能拼成真正可微的解。
把规律换成 ,初值仍取 。绝对值函数在零处不可导,但三角不等式告诉我们
这正是 的 Lipschitz 条件。所以初值问题解唯一,又因为零解已经满足它,唯一解就是 。它不能像刚才那样自行起步。
即使 Lipschitz 条件本身失败,也未必不唯一。例如 的右端在零附近不满足该条件,但始终为正。令
沿任意满足 的解,链式法则给出 ,因而 。由于 严格递增,它在零附近有唯一反函数,所以解被唯一确定。这一小段推导再次说明:充分条件没有通过以后,要继续研究方程,不能把定理倒过来使用。
假设某个简化的正反馈规律说:状态越大,增长越快,而且增长率与状态的平方成正比。把量纲吸收到变量里,我们得到
右端与偏导数 处处连续,所以局部解存在且唯一。利用前面学过的分离变量,
导数是 ,恰好等于 ,初值也对。但当 时,状态趋于正无穷。包含初始时刻的最大解区间是 ,向前只能讨论 。
同一个有理式在 也能代入方程,不代表解穿过了无穷大又回来。解的时间定义域是一个区间,延伸必须在中间每个时刻保持有限且可微;这里跨不过 。
局部唯一性还有另一个边界:我们在初始点附近检查过条件,并不代表以后经过的每个状态都检查过。若解后来到达右端不再满足唯一性条件的位置,就要重新判断能否唯一延伸。只有在所讨论区域中处处保证局部唯一,才可以沿着解把唯一性持续传下去。
“每个有限状态附近都能继续走一小段”与“可以一直走到任意大的时间”并不等价。解可能在有限时间内无界,也可能撞上方程没有定义的边界。讨论长期极限之前,先确认解在所有向前时间上存在。
再回到热水。如果室温保持不变,同一杯水处在同一个温度时,无论计时器显示一分钟还是三分钟,我们的模型都会给出相同的降温速率。这样的规律只看当前状态,写成
它叫一阶自治方程。“自治”指右端不显含时间,绝不是说解不随时间变化。如果室温随昼夜变化,冷却规律中出现 ,方程通常就不再自治。
在时间—状态平面上,自治方程的方向场有一个便利之处:同一水平高度的短线段斜率相同。于是,没有必要一列一列重复画,我们可以把所有信息收在一条状态轴上。
先找那些到了以后可以一直不动的状态。若
那么 的导数与右端都为零,这就是平衡解;状态 叫平衡点。回想分离变量时需要单独补回的常数解,它们正是这里首先要找的对象。
画一条竖直的 轴,标出全部平衡点。对于没有零点、也没有定义域断裂的区间,若 连续,它就不能突然变号:要从正变负,中间总得经过零。因此在每段取一个测试值,就可以判断整段符号。 时,状态随时间增加,箭头向上; 时,状态随时间减小,箭头向下。这条带箭头的状态轴,就是相线。
这里有三幅图容易混淆。 的函数图像用横轴表示状态、纵轴表示变化率;相线只有状态轴; 的解曲线才是横轴表示时间、纵轴表示状态。相线上“向上”的意思是状态增加,不能把它读成 的图像正在上升。
接下来讨论相线时,我们假设 在研究区间内连续且局部 Lipschitz。设一条非平衡解在有限时刻 到达 。那么它与恒等于 的平衡解,都经过 。局部唯一性要求两条解在这个时刻附近相同,再沿共同区间延伸,便不能有一条原先从别处赶来的非平衡解。这就与假设矛盾了。
因此,在这些唯一性条件下,非平衡解不能在有限时间碰到并穿过平衡解。两条不同初值的解也不能在同一时刻相交:若它们相交,相交点就成了共同初值,唯一性会迫使它们重合。这里比较的是同一个方程,而且相交处必须满足唯一性条件;前面的平方根例子说明,漏掉条件就会出错。
这还解释了一个常见现象:如果状态在两个平衡点之间一直增加,它会被上面的平衡点挡住,不能越过。只要这段状态范围位于 定义域内部,解又始终有界,就能继续到所有向前时间。单调且有界的函数必有极限,设极限为 。若 ,连续性会使靠近 后的增长率仍至少为某个正数,状态就会继续走出一段固定距离,不可能停在这个极限; 也与趋近的方向不符。所以必有 。
相线判断“最后趋向哪个平衡点”,背后用到的正是这些理由:不穿越、向前存在、单调有界、极限必须是零点。至于没有平衡点挡住、一路向无穷走的情形,仅凭箭头还不知道它是在无限长时间里增长,还是有限时间就发散。
把热水温度稍微改动一点,它还会靠近室温;把某个种群放在临界数量附近,稍微少一点却可能走向另一种结局。稳定性研究的就是这种对小扰动的反应。
先把“附近”说清楚。平衡点 稳定,意思是:无论你指定多小的允许误差 ,总能选一个足够小的初始误差 ,使
这里也要求这些解向前存在。它保证的是一开始足够近,以后就一直近,尚未要求误差消失。
若平衡点稳定,而且从某个邻域出发的解都满足
它才叫渐近稳定。前一个词管“别走远”,后一个词再加上“最终走回来”。例如方程 的所有解都是常数。对于平衡点 ,从 出发会永远停在 :距离没有扩大,所以 稳定;但它不会回到 ,所以不渐近稳定。

两侧都向内时是渐近稳定;两侧向外时不稳定;一侧向内、一侧向外时要单独说明哪一侧吸引。
对于孤立的平衡点,若左侧 、右侧 ,两边都朝它走,而且不会穿过它,便是渐近稳定。若左侧 、右侧 ,附近的状态被向两边推开,它不稳定。
若两侧箭头同向,一侧靠近它、另一侧离开它,通常称为半稳定。这个名字不能理解成“也满足一半的稳定定义”:在允许双侧扰动的完整状态区间内,它仍然是不稳定的,因为排斥侧存在任意小的扰动,最终能走出某个固定邻域。只有限制在吸引的一侧,才有相应的单侧稳定和吸引性。
设 在平衡点附近连续可微。对很小的偏离 ,有
当 ,右侧小偏离 对应负的变化率,往回走;左侧偏离对应正的变化率,也往回走,所以渐近稳定。当 ,两个方向都推离平衡点,所以不稳定。我们也可以暂时把误差看成满足近似方程 ,它的指数解恰好显示衰减或增长。
若 ,这项线性近似消失了,不能再凭它判断。比如 在零的两侧都指向零,零渐近稳定; 的两侧都背离零,零不稳定; 的两侧都向上,零半稳定。三个导数都是零,行为却完全不同。
把最后一个例子算出来,更容易看懂“半稳定”。从 出发,
它从下方靠近零。可从任意小的正初值 出发,解是 ,先离开零,再在 发散。吸引的一侧再温和,也抵消不了另一侧的排斥。
一个培养皿里,个体少时食物充足,增长速度可能近似与数量成正比;数量大了,每个个体能分到的资源减少,相对增长率就下降。先假设环境保持不变,没有迁入迁出,用连续量 近似种群数量,再让相对增长率随数量线性下降,就得到 Logistic 模型:
若时间按天计, 的单位是“每天”, 与 的数量单位相同,括号中的比例没有单位。 表示模型中的环境容量,它是净增长率变为零的数量,不是一个永远不允许超过的硬上限。

正初值在容量下方时增加,在容量上方时减少;容量 是渐近稳定平衡点。
平衡点来自两个因子为零,所以是 、。在 内两个因子都正,数量增加;在 时资源限制因子为负,数量减少。 的两侧都指向它,因此它渐近稳定。对于非负状态空间中的 ,任意小的正初值都会远离零并趋向 ,所以零不稳定;判断边界平衡点时,只考虑模型允许的非负扰动就够了。
因为右端是多项式,局部唯一性处处成立。正初值的解不会穿过零或 ,并且始终夹在 与 之间。因此它向前有界、能够继续存在,且最终趋向 。这一步才把相线箭头变成了对所有正初值的长期结论。
设时间按天计,数量按某种统一的种群计数单位计,考虑
若 ,初始增长率为 个计数单位每天,数量向上趋近 。若 ,增长率为零,此后一直保持 。若 ,初始增长率为 ,数量向下趋近 。第三种初值完全允许,只是模型预言超出容量以后会下降。
要进一步算出时间,就把分离变量得到的解写成
取 ,有 ,于是
什么时候达到容量的一半,即 ?令分母等于 ,得到 ,所以
这个时刻还有一层意思。净增长率 是关于 的开口向下抛物线,最大值出现在 ,为 。本例就是每天 个计数单位。又因为 ,从容量下方增长的曲线在 时越来越陡,越过 后才逐渐变平。因此,只有初始数量足够小的那段才近似指数增长;不能说所有低于容量的初值都会先加速,若已经从 出发,增长从一开始就在减速。

有些种群稀少到一定程度后,寻找配偶或合作生存会更困难。此时“越少越容易增长”的 Logistic 假设就不合适。我们可以提出另一种简化规律:数量低于阈值时净增长为负,超过阈值但未达到容量时净增长为正,超过容量后又受资源限制。这就是一种强 Allee 效应的阈值模型:
其中 与 都是数量参数, 仍具有时间倒数的单位,但它在这个模型里是时间尺度参数,不能直接沿用 Logistic 中“低密度正相对增长率”的解释。事实上,当 很小时,右端近似为 ,预言的是衰减。
平衡点现在是 。在 时,最后一个因子为负,其余因子为正,所以数量下降;在 时所有因子为正,所以数量上升;在 时容量因子为负、阈值因子为正,所以数量下降。
我们于是得到: 在非负状态空间中渐近稳定, 渐近稳定,而 不稳定。初值恰好等于 时,当然会一直停在那里;不稳定说的是稍微偏离以后会怎样,并非说处在平衡点时自己也会移动。
取 、、,时间按月计。若初始数量为 ,
数量开始下降,始终留在 中,最终趋向零。若初始数量为 ,则
数量开始增加,最终趋向 。相同的环境参数,只是起点位于阈值两侧,长期结局就不同。
再看阈值附近偏离会增长得多快。记右端为 ,由于在 处阈值因子为零,求导后只有对该因子求导的那一项留下:
因此小误差 在仍然很小时近似满足 ,误差约按 放大。 个月是这个局部近似下的误差翻倍时间;离阈值远了以后,必须回到完整模型,不能一直沿用这条指数近似。
这里说“趋向灭绝”指 。在这个光滑的连续模型中,正初值不会在有限时间恰好到达零。现实种群则由离散个体组成,数量小到接近一个个体时,连续近似本身就需要重新考虑。相线给出的是模型在既定假设下的预言,不能把渐近趋零与某一时刻实际没有个体完全等同。
最后看一个无量纲的自治方程,把前面的判断连在一起:
右端是多项式,所以局部存在唯一性成立。零点为 ,其中平方因子 在 两侧都为正。我们可以直接做符号表:
两侧都背离它,所以不稳定。 从下方吸引、向上方排斥,所以半稳定,在双侧扰动的意义下仍不稳定。 两侧都指向它,所以渐近稳定。
从 出发,初始导数为 ,随后一直增加。虽然初始变化不慢,它仍无法穿过 ,因此向前有界且长期趋向 。从 出发,初始导数为 ,解增加并趋向 。从 出发,初始导数为 ,解下降并趋向 。
这个例子里, 的下方有整段初值趋向它,却不足以让它稳定。稳定性看的是所有足够小的允许扰动,而不是“能不能找到一些会回来的初值”。相线上的每一侧都得看。
分别判断 与 是否局部唯一。不能只写“偏导数不存在”。
求解 ,写出包含 的最大解区间,并判断向前的极限。
画出 的相线,分类平衡点,并判断初值 的长期去向。
种群满足 ,,时间按周计。求第一次达到 的时间,并判断是否会超过 。
在阈值模型中取 、、,时间按月计。分别判断初值 的长期结局,并计算初值为 时的初始变化率。
考虑 。说明零点的稳定性,并求初值 的向前解。再解释它与 的稳定性有何区别。
现在再遇到一条一阶方程,我们可以先检查它在初值附近是否给出唯一的解;若它自治,就继续找平衡点、看符号、判断允许的状态范围与长期趋势。下一章会把这些判断带回具体模型:盐水槽里流入和流出的究竟是哪一个量,变动的环境温度该放进方程哪里,阻力与外部驱动又该怎样组合。那时我们既要把方程列出来,也要用本章这些办法检查它给出的变化是否符合原来的故事。
| 负 | 正 | 正 | 负,向下 | |
| 正 | 正 | 正 | 正,向上 | |
| 正 | 正 | 正 | 正,向上 | |
| 正 | 正 | 负 | 负,向下 |
第二个右端连续,所以局部有解。除零解以外,取 ()和 ()拼接,连接点两侧导数都为零,而在正半轴 。这给出另一条满足初值的解,所以不唯一。局部 Lipschitz 条件失败与这个现象一致,但构造两条解才是这里的证明。
分母在 为零,因此包含 的最大区间为 。对所有 ,解为负且导数为正,故从下方增加并趋向 。同一方程的正初值解向前可能爆破,负初值解却向前全局存在;定义域必须结合初值判断。
初值 的解在 内增加并趋向 ;初值 的解在 内增加并趋向 ;初值 的解在 内减少并趋向 。右端光滑,每条轨道又都被有限区间限制,所以这些向前极限有意义。
对有限的 ,分母始终大于 ,所以 。相线也给出同样结论:解在 中增加,唯一性不允许它穿过平衡解 。
初值为 时,
单位为每月的种群计数单位。 虽然是平衡点,却不稳定,因为它两侧的微小偏离会走向不同的归宿。
解不能穿过零,所以保持初值的符号,得到
它始终满足 ,并且趋向零,因此零渐近稳定。虽然 ,符号与显式解都能给出判断。对于 ,解为 ,小偏离保持不变,因此零稳定却不渐近稳定。