一阶微分方程常被写成
这个式子看起来只是在给曲线规定斜率,但它背后问的是一个更直接的问题:如果现在的状态是 ,变化规律是 ,那么从这一刻往后,系统会不会只有一个可能的未来?
前几章我们已经学过不少求解方法。可分离变量、积分因子、精确方程和替换法都在回答“怎样把解算出来”。本章换一个角度:即使暂时算不出显式公式,我们也要判断解是否存在、是否唯一,以及它会向哪里走。

同一个初值如果能走出多条曲线,模型就没有给出唯一未来;存在唯一性定理正是在排除这种分叉。
初值问题有两个层次。
第一层是存在性:是否至少有一条函数 满足方程和初始条件。若没有解,模型在给定初值处就不能启动。
第二层是唯一性:满足同一个初值问题的解是否只有一条。若不唯一,方程没有告诉我们系统应选择哪一条未来。对物理、工程和建模来说,这比“算不出漂亮公式”更严重。
一个典型的非唯一例子是
恒等于零的函数当然是一个解。可是对任意 ,下面这个函数也是解:
它先在 上“等待”到 ,再沿着抛物线离开。不同的等待时间给出不同的解。所有这些解都从同一个初值 出发。
连续性只说明右端没有跳崖式断裂,通常能保证局部有解;它本身并不保证唯一。唯一性还需要控制 对 的变化速度,常见的充分条件是对 局部 Lipschitz,或者更容易检查的条件: 在初始点附近连续。
这里的 在 附近太尖。它连续,却不能在 附近用一个固定斜率上界控制 的变化,所以解可以“贴着平衡解停一段时间再离开”。
为了把这个现象看得更清楚,可以动一动下面的演示。把方程换成 时,同一个初值只产生一条曲线;换成 且初值为 时,会出现多条从同一点出发的曲线。
第一门常微分方程课中常用的存在唯一性结论可以这样读:
如果 和 在初始点 附近的某个矩形区域内连续,那么初值问题 、 在 附近有且只有一个解。
更一般地说, 连续不是唯一性最根本的条件;它只是一个好检查的充分条件。真正起作用的是 对 的局部 Lipschitz 控制。为了本课程的使用,记住下面三句话就够了。

定理只要求在初始点附近的小区域检查条件,结论也先保证一个局部区间上的解。
若 在 附近连续,方向场在初始点附近没有突然断开,通常可以从初始点出发画出至少一条解曲线。它回答的是“有路可走吗”。
若 对 的变化被适当控制,两条从同一个点出发的解曲线不能先重合又分开。它回答的是“路是否唯一”。
定理说的是在 附近存在唯一解,不是说解一定能延伸到所有 。
例如
满足常见的存在唯一性条件,解也确实唯一。它的显式解是
这个解在 处爆掉,所以不能延伸成全实轴上的普通函数。唯一性没有失败,失败的是“全局存在”。
不要把“存在唯一性定理适用”读成“解一定有简单公式”或“解一定永远存在”。定理关心的是局部有没有一条唯一的解曲线,显式求解和长期延伸是另外两个问题。
自治方程是一类右端不显含自变量的方程:
这里变化率只由当前状态 决定,而不直接由时间 决定。若把自变量理解为时间 ,自治方程说的是:同一个状态在任何时刻都会有同样的瞬时变化率。
这类方程的几何图像很特别。普通方程 的方向场可能随着 改变;自治方程的方向场在水平方向上重复。也就是说,只要两点有同样的 值,它们的斜率就一样。
平衡解来自
如果 ,那么 ,曲线一直停在同一高度。这样的常数解就是平衡解。

对自治方程来说,先看 在各区间的符号,就能画出相线并判断解的运动方向。
以自治方程 为例,画相线时不需要先求出 的公式。
先解方程 ,找出所有平衡点。它们会成为相线上的分界点。
用这些平衡点把 轴分成若干区间。在每个区间里选一个测试值,判断 的正负。
下面的交互可以把这个步骤连起来看。选择不同的 ,零点、符号区间、相线箭头和稳定性判断会同步变化。
相线把二维的解曲线问题压缩到一条 轴上。它丢掉了“什么时候到达”的精细信息,却保留了“向上还是向下、靠近谁、远离谁”的定性信息。
平衡点的稳定性描述的是:初值稍微偏离平衡点后,解会不会回到它附近。

稳定性看的是平衡点两侧箭头的组合,而不是只看平衡点本身。
若平衡点两侧箭头都指向它,附近解会被吸过去,这样的平衡点是渐近稳定的。若两侧箭头都背离它,附近解会被推开,这样的平衡点是不稳定的。若一侧吸引、一侧排斥,就称为半稳定。
对于
如果 在平衡点 附近可导,并且 ,可以用导数快速判断:
这个规则来自 穿过横轴时的斜率。若 ,左侧通常 、右侧通常 ,箭头都指向平衡点。若 ,箭头都远离平衡点。
但当 时,导数测试不给结论。必须回到符号表和相线。
例如
在 处有平衡解,且 。因为 在 两侧都为正,相线两侧箭头都向上:左侧箭头指向 ,右侧箭头远离 。所以 是半稳定平衡点。
看到 时,不要说“稳定性为零”或“无法移动”。 只说明线性近似在这里太弱,真正的方向要由 在两侧的符号决定。
logistic 模型把增长和资源限制放在同一个一阶自治方程里:
其中 是种群数量, 是低密度时的相对增长率, 是环境容量。
平衡点由
给出,所以 和 是两个平衡解。

logistic 方程的相线说明:正初值会趋向环境容量 ,而不是无限指数增长。
看符号比套公式更快:
当 时,,种群上升;当 时,,种群下降。因此 两侧箭头都指向它,是稳定平衡点。对于 ,右侧箭头向上远离它,所以在非负种群语境下它是不稳定的。
如果初始种群 满足 ,增长会先像指数增长,随后因为 变小而放慢,最后靠近 。如果 ,种群会下降并靠近 。
相线让 logistic 模型的长期行为几乎不用计算就能看出: 是吸引正初值的容量, 是边界平衡。显式解能告诉我们靠近的速度和具体数值,但方向判断已经由相线给出。
设
判断初值 、、 时的长期趋势。
先找平衡点。令右端为零,得到 和 。
在区间 内取测试值,例如 。此时 ,所以 ,解向上走。
有些种群在数量太小时反而难以增长。原因可能是配偶寻找困难、合作防御不足、局部资源利用效率低,或者个体间互助机制无法形成。一个简单的阈值模型是
其中 。这里 是阈值, 仍是环境容量。
平衡点变成三个:

阈值 是分水岭:低于它会走向灭绝,高于它才会走向容量 。
相线给出的方向是:
所以 和 是稳定平衡点, 是不稳定平衡点。它不是一个会自动保持的目标数量,而是一个临界边界。初值略低于 会走向 ,初值略高于 会走向 。
下面的模拟器把 logistic 模型和阈值模型放在一起。调节 、、 和 ,观察相线和时间曲线怎样同时变化。
阈值模型里最容易犯的错误,是把 当成“另一个稳定容量”。相线两侧箭头都远离 ,所以它是不稳定平衡点。它的意义是分界,不是归宿。
考虑自治方程
找出平衡点,判断它们的稳定性,并说明 与 的长期趋势。
令右端为零,得到三个平衡点:、、。其中 是二重根,因为因子 不改变符号。
这个例子也说明了重根的作用。穿过横轴的零点通常会改变符号,不穿过横轴的偶重零点通常不改变符号。相线比单独记忆“根的重数规则”更可靠,因为它直接看方向。
下面几条是本章最常见的误区。
“右端连续”不等于“解唯一”。连续性常用于存在性,唯一性需要更强的条件,例如对 的局部 Lipschitz 条件。
“ 不存在”不等于“一定不唯一”。例如 在 处不可导,但它仍满足 Lipschitz 条件,初值问题 的解唯一。
相线箭头表示 随时间上升或下降,不是表示解曲线在平面中向左或向右走。自治方程的时间方向通常默认向右推进,箭头放在 轴上是为了记录状态的变化方向。
判断初值问题
是否唯一。
唯一。虽然 在 处不可导,但它满足全局 Lipschitz 条件:
判断初值问题
是否唯一。
不唯一。右端连续,所以有解;但它在 附近不满足局部 Lipschitz 条件。除了零解,还可以先停在 上一段时间,再沿着 离开,其中 可任选。
画出
的相线,并判断平衡点稳定性。
平衡点是 和 。当 时, 且 ,所以 ;当 时仍有 ;当 时 ,所以 。因此 左侧箭头向上、右侧箭头也向上,是半稳定平衡点; 左侧箭头向上、右侧箭头向下,是稳定平衡点。
存在唯一性定理告诉我们:在初始点附近,如果右端函数足够好,初值问题就给出一条局部唯一的解曲线。这个结论不负责给出显式公式,也不保证解永远存在,但它保证模型不会在同一个现在分出多个未来。
自治方程 把分析进一步简化。平衡点来自 ,区间方向来自 的符号,稳定性来自平衡点两侧箭头的组合。logistic 模型和阈值模型说明,相线不只是画图技巧,它能直接解释现实模型的长期趋势和临界现象。
如果某个区间上 ,则 ,解随时间上升,在相线上画向上的箭头。
如果某个区间上 ,则解随时间下降,在相线上画向下的箭头。
最后观察每个平衡点两侧箭头的方向。箭头指向它,说明附近解会靠近;箭头远离它,说明附近解会离开。
在区间 内取测试值,例如 。此时 ,所以 ,解向下走。
因此 两侧箭头都指向它。初值 会增加并趋向 ;初值 保持不变;初值 会减少并趋向 。
用三个平衡点把实轴分成四段:、、、。
判断符号。右端在 上为负,在 上为正,在 上为正,在 上为负。
画相线: 左侧箭头向下、右侧箭头向上,所以 不稳定; 两侧箭头都向上,所以它从左侧吸引、从右侧排斥,是半稳定; 左侧箭头向上、右侧箭头向下,所以 稳定。
初值 位于 ,解向上走并趋向 。初值 位于 ,解向上走并趋向 。
因此从 出发的解唯一。由于 是一个解,唯一解就是零解。