前几章里,我们已经见过可分离方程、线性方程、精确方程、自治方程和相线。那些方法回答的是“方程给出来以后怎样分析”。本章换一个方向:如果题目给的是一杯热水、一只混合槽、一段电路、一个种群或一个追踪过程,方程从哪里来?
一阶模型通常从一句关于变化率的话开始。某个量在时间中变化,它的变化率由当前状态、外部输入、流入流出或阻力决定。只要把这句话写得足够精确,就有机会得到一个一阶微分方程。

从情境到方程,关键不是先猜公式,而是把变量、单位、假设和变化率逐一说清楚。
真实问题里的对象往往很多:温度、体积、浓度、速度、电压、时间、环境条件、测量误差。建模的第一步不是把所有东西都写进方程,而是决定哪一个量是我们要跟踪的状态变量。
如果用 表示状态变量,那么一阶模型的基本形状是
这里的 不是随便选出来的函数。它应该来自问题中的一句变化规律:水槽里的盐量等于流入盐量减去流出盐量;物体温度的变化率与它和环境的温差成正比;电容上的电荷变化率就是电流;种群的净增长率会被资源限制削弱。
建模时最有用的句式是“某量的变化率等于……”。它迫使我们把等号左边的对象和右边的机制对应起来。等号两边的单位也会立刻暴露许多错误。
下面是一套可以反复使用的建模步骤。不同模型的公式不一样,但这套检查顺序很稳定。
先选状态变量,并写出它的单位。不要急着用题目里最显眼的量。混合问题中常跟踪的是溶质量 ,而不是浓度;电路中常跟踪的是电荷 ,再由 得到电流。
不要把“会变化”直接翻译成“导数等于这个量”。比如浓度会变化,不代表一定要写 。如果体积也在变,先跟踪总溶质量往往更可靠。
最常见的一阶模型来自比例假设:变化率与当前量成正比。若 表示某个种群、细菌数量、放射性样品质量或账户余额,且单位时间内每个个体贡献相同的净增长,那么
这里 的单位是“每单位时间”。当 时,解是指数增长;当 时,解是指数衰减。若把衰减常数写成 ,常见写法是
这个模型的假设很强。它假设每一单位的量都独立地以同样比例增长或衰减,并且外部环境不会因为 变大而改变。早期细菌繁殖、短时间人口估计、放射性衰变都适合这个想法;资源有限的生态系统则通常不适合一直使用指数增长。

比例假设给出指数曲线;当资源限制开始明显时,logistic 模型会让增长逐渐变慢。
logistic 模型把“每个个体的净增长率”从常数改成随 减小的量:
等价地,
其中 称为环境容量。若 ,增长率为正;若 ,增长率为负,模型会把 拉回 附近。第 6 章用相线看过平衡点,这里可以把 logistic 看成“建模假设改变后得到的自治方程”。
不要把 理解成“任何情况下都不能超过的硬上限”。在 logistic 方程里, 是稳定平衡值。如果初值 ,解会从上方向 下降。
一杯热水放在室温空气中,温度下降得越来越慢。直观上,热水和环境温差大时散热快,温差小时散热慢。Newton 冷却定律把这句话写成
这里 是物体温度, 是环境温度, 是冷却常数。如果物体比环境热,,所以 ;如果物体比环境冷,,所以 。同一个方程既能描述冷却,也能描述升温。

Newton 冷却定律把“温差越大,变化越快”写成一阶线性方程。
若 ,方程的解是
它说明温度不是线性下降,而是以指数方式靠近环境温度。这个结论也给了参数估计的方法:只要有一次可靠测量,就能估计 。
例题:一杯咖啡初温 ,室温 。10 分钟后咖啡温度为 。用 Newton 冷却定律估计 ,并预测从开始计时起多久降到 。
先写变量和初值。令 为 分钟后的温度,单位是摄氏度。环境温度 ,初值 ,所以模型为 。
冷却模型最容易错的是符号。一个稳妥检查是:若 ,方程应该给出 ;若 ,方程应该给出 。
混合槽问题看起来在问浓度,但建模时常先跟踪溶质量。设 表示槽内溶质质量,单位 kg; 表示液体体积,单位 L。若流入浓度为 ,流入流量为 ,流出流量为 ,并假设槽内充分混合,那么流出液浓度就是槽内平均浓度 。
于是
也就是
体积本身满足
当 时,体积恒定,方程是一阶线性方程。当两者不相等时, 会改变,模型仍是一阶方程,但系数随时间变。

充分混合假设让流出浓度等于槽内平均浓度,从而把流出速率写成 。
例题:一个 100 L 的槽中起初有 10 kg 盐。浓度为 0.2 kg/L 的盐水以 5 L/min 流入,混合液也以 5 L/min 流出。求盐量模型并解释长期趋势。
选变量。令 表示 分钟后槽内盐量,单位 kg。由于流入流量等于流出流量,体积保持 L。
混合题中不能把流出盐速率写成“流出流量乘流入浓度”。流出液已经与槽内液体混合,它的浓度应由当前槽内状态决定。
速度模型的状态变量常是速度 ,而不是位置。以竖直下落为例,若把向下方向取为正,重力给出加速,空气阻力与速度成正比并方向向上,那么
等价地,
这里 是质量, 是阻力系数。平衡速度满足
因此
这个 叫终端速度。它不是一开始就达到的速度,而是模型预测长期会接近的速度。
追踪问题看起来像几何题,但变化率同样来自一句话:追踪者每一刻都朝目标的当前位置运动。设目标位置为 ,追踪者位置为 ,追踪者速率恒为 ,那么速度方向是从 指向 的单位向量:
若在平面中写成坐标,这其实是两个一阶方程组成的系统。虽然系统方法会在后面章节系统学习,但这里的建模思想已经出现:先把速度方向写对,再决定是否能求解。

追踪模型的关键是“指向目标当前的位置”,而不是指向目标将来的位置或最终终点。
很多现实模型不是为了马上得到显式公式。速度模型和追踪模型常先给出可计算、可模拟、可检查方向的方程;解析解只是后续可能出现的一种奖励。
一阶方程也会出现在电路中。考虑电源电压为 的串联 RC 电路。令 表示电容上的电荷,电流为
电阻上的电压降是 ,电容上的电压是 。根据电压平衡,
代入 ,得到
也就是

RC 电路中的电荷逐渐接近 ,接近速度由时间常数 控制。
如果电容起初不带电,,则
电流为
量 的单位是时间,称为时间常数。时间常数越大,充电越慢。这里的模型假设也很具体:电阻和电容参数固定,电源电压恒定,电路元件按理想元件处理。
一个模型写出来以后,还要回到问题本身检查。检查的重点不是“这个方程能不能用某个方法解”,而是“每一项是否有现实来源,每个参数是否能从实验、题目或合理估计中得到”。
一个好的初级 ODE 模型应该经得起三个问题:左边跟踪的量是什么,右边每一项从哪里来,解的单位和长期趋势是否符合情境。
常见错误可以集中到几类。第一类是变量选错,例如混合问题直接写浓度方程却忘了体积变化。第二类是单位不一致,例如把 L/min 直接和 kg 相加。第三类是符号没有检查,例如热物体冷却时却得到 。第四类是把模型参数当成纯数学常数,却没有说明它们如何测量或估计。
下面的练习不追求复杂计算,重点是把文字翻译成方程。
令 表示 小时后的数量,模型为 ,。由 得
令 为盐量,单位 kg。体积为
流入盐速率为 kg/min,流出盐速率为
仍可写
当金属温度低于室温时,,所以 ,于是 。这说明同一个方程在低于环境温度时给出升温。
的平衡解是什么?如果 ,解一开始增加还是减少?
平衡点满足右边为零,因此 和 都是平衡解。若 ,则
建模的熟练感来自反复检查这些小问题。变量选对,单位对齐,假设说清楚,方程通常就不会离现实太远。
| 初值 | 开始时状态是多少? |
| 解释 | 解函数回答什么现实问题? | 是 分钟后的浓度 |
写出时间单位和参数单位。若 用分钟,冷却常数 的单位就是 ;若流量用 L/min,流入盐速率的单位必须是 kg/min。
把现实简化成明确假设。假设不是装饰,它决定方程能不能成立。例如“充分混合”让流出液浓度等于槽内平均浓度;“环境温度恒定”让冷却方程里的 可以看作常数。
根据机制写变化率。增长和衰减常用比例关系;混合问题用流入减流出;电路用 Kirchhoff 电压定律;速度模型用“合力等于质量乘加速度”。
加上初值,再解释解的意义。一个没有初值的模型只是一族可能过程;一个有初值的模型才对应题目中的那一次实验、那一个水槽或那一段电路。
写出解并代入观测数据。由
以及 ,得到
解出冷却常数。上式给出
因此
这里 的单位是 。
再求达到 的时间。由
得
这表示从开始计时起约 19.4 分钟降到 ,不是再等 19.4 分钟。
写流入速率。流入浓度是 kg/L,流量是 L/min,所以流入盐速率为
单位是 kg/min。
写流出速率。充分混合后槽内浓度是 kg/L,流出流量是 L/min,所以流出盐速率为
合成方程并加初值。模型为
这是线性方程,也是自治方程。
解释长期趋势。平衡盐量满足 ,所以 kg。浓度趋向 kg/L,正好等于流入液浓度。
| 管道流量、流入液浓度、初始体积 |
| 速度模型 | 、、 | 质量、阻力实验、重力加速度 |
| RC 电路 | 、、 | 元件标称值、输入电源 |
| logistic 增长 | 、 | 早期增长数据、长期容量估计 |
所以
这里 的单位是 。
所以初值问题为
右边为负,所以 一开始减少,并向 靠近。