
常微分方程(一):微分方程的起源与直觉
微分方程为何存在?从冷却的咖啡和摆动的单摆出发,建立你对 ODE 的第一直觉,并用 Python 求解第一个微分方程。
你身边的一切都在变化: 咖啡会凉,人口会涨,单摆会摆,病毒会传,股价会震荡,行星会绕行。这些系统都无法用“某物等于多少”来描述,而只能用“某物变化得多快”来刻画。这种描述方式正是微分方程的用武之地——学会读懂它,就等于学会了阅读物理与生物学所使用的语言。
本章将从零开始重建你的直觉。我们从一杯咖啡出发,推导出与放射性衰变、电容放电相同的方程,再逐步引入方向场、分类方法,以及那个决定常微分方程(ODE)是否具有合理解的存在唯一性定理。

总结#
- 微分方程到底是什么——超越符号,理解其本质
- ODE 与 PDE、阶数、线性性——每一种区分都有其实际意义
- 三个经典模型(冷却、衰变、振荡),你将在后续章节中反复遇见
- 方向场:在求解前就能“看见”解的行为
- 存在唯一性定理(Picard–Lindelöf),并附上一个具体反例
- 使用 Python 的
scipy求解你的第一个数值解,并了解何时可以信任它
前置知识#
- 单变量微积分:导数、积分、链式法则
- Python 基础:NumPy 数组和 Matplotlib 绘图
什么是微分方程?从一杯咖啡说起#
你冲了一杯 $T_0 = 90^\circ\mathrm{C}$ 的咖啡,放在 $T_\text{env} = 20^\circ\mathrm{C}$ 的房间里。几分钟后,它变凉了。这时两个问题很自然地浮现:
- 现在温度是多少? —— 这是一个代数问题。
- 此刻它冷却得多快? —— 这是一个微积分问题。
这一行公式就是一个微分方程——它将未知函数 $T(t)$ 与其导数联系起来。未知量是函数本身,而非某个具体的数值。
| 符号 | 含义 |
|---|---|
| $T(t)$ | 时刻 $t$ 的温度 |
| $dT/dt$ | 温度的瞬时变化率 |
| $T_\text{env}$ | 环境温度($20^\circ\mathrm{C}$ ) |
| $k > 0$ | 冷却常数——取决于杯子材质、表面积和空气流动 |
负号至关重要:当 $T > T_\text{env}$ 时,右边为负,温度下降;当 $T < T_\text{env}$ 时,右边为正,温度上升。这个方程本身就蕴含了热力学第二定律。
在求解前先“读懂”模型#
我们甚至不需要写一个积分,就能从中提取出物理预测:
- 温度越接近 $T_\text{env}$ ,温差越小,冷却就越慢。冷却过程是减速的。
- 当 $T = T_\text{env}$ 时,右边为零——咖啡达到室温后不再变化。这是一个平衡点。
- $k$ 越大(比如薄壁杯或通风房间),冷却越快;$k$ 越小(比如保温杯),冷却越慢。
这是本门学科的第一课:一个好的 ODE 能在你求解之前就告诉你系统的定性行为。
用 Python 求解#
| |
解析解#
$$\boxed{\,T(t) = T_\text{env} + \bigl(T_0 - T_\text{env}\bigr)\,e^{-kt}.\,}$$有三点值得记住:
- 偏离量 $T - T_\text{env}$ 以纯指数形式衰减。
- 衰减速率完全由 $k$ 决定。若 $k$ 减半,冷却时间就加倍。
- $T$ 渐近趋于 $T_\text{env}$ ——理论上永远不会完全相等,但很快就会近到物理上不再关心。

图 1. 牛顿冷却定律产生一个解族,每条曲线对应一个初始温度,但所有曲线都收敛于虚线所示的平衡线。热咖啡、冰咖啡、冷冻酸奶——物理相同,终点一致。
方向场:在计算前“看见”解#

函数 $f$ 直接告诉你在 $(t, y)$ 平面上每一点处解曲线的斜率,而无需实际求解。在每个网格点画出一个具有该斜率的小箭头,就构成了方向场(也称斜率场或向量场)。真实的解曲线就是那些处处与箭头相切的轨迹。

图 2. 原型衰减方程 $dy/dt = -y$
的方向场。箭头表示局部斜率;紫色曲线是实际解;红色虚线标出平衡点 $y = 0$
。注意所有解都被“漏斗”般引向零——该平衡点是一个全局吸引子。
这种可视化方法让你能分析那些根本无法写出解析解的系统。仅凭方向场,你就能回答:
- 是否存在平衡点?(箭头在何处变为水平?)
- 它是吸引还是排斥?(附近箭头是指向它还是远离它?)
- 解是否会发散、振荡,还是趋于稳定?
在整个系列中,我们会反复依赖方向场——它是理解非线性 ODE 最经济、最诚实的方式。
分类:ODE、PDE、阶数、线性性#
几个简单的标签能帮我们省下大量解释成本。
ODE 与 PDE#
| 类型 | 自变量个数 | 示例 |
|---|---|---|
| 常微分方程 (ODE) | 一个(通常是 $t$ ) | $\dfrac{dy}{dt} = -ky$ |
| 偏微分方程 (PDE) | 多个(如 $x, y, t, \dots$ ) | $\dfrac{\partial u}{\partial t} = k\,\dfrac{\partial^2 u}{\partial x^2}$ |
本系列专注于 ODE。PDE(如热方程、波动方程、薛定谔方程、Navier–Stokes 方程)将在第 13 章 单独讨论。
阶数 = 出现的最高阶导数#
- 一阶:$y' = f(t, y)$ —— 放射性衰变、RC 电路、单物种增长。
- 二阶:$y'' + p(t)y' + q(t)y = g(t)$ —— 弹簧、单摆、RLC 电路、行星轨道。
为什么阶数重要?因为要确定唯一解,你需要恰好这么多初始条件。一阶 ODE 只需 $y(0)$ ;二阶 ODE 则需要 $y(0)$ 和 $y'(0)$ ——即位置和速度。这不是数学的怪癖,而是牛顿第二定律 $F = ma$ 的直接体现:要预测一个粒子的未来,你必须知道它的初始位置和初始速度。

图 3. 左:$y' = -y$
生成一个单参数解族——选定起始高度,曲线就唯一确定。右:$x'' + x = 0$
生成一个双参数解族——你必须同时指定初始位置和初始速度。阶数 = 宇宙要求你提供多少初始信息。
线性 vs. 非线性#
$$a_n(t)\,y^{(n)} + a_{n-1}(t)\,y^{(n-1)} + \dots + a_0(t)\,y = g(t).$$只要出现 $y^2$ 、$\sin y$ 、$y\,y'$ 、$\sqrt{y}$ 等项,方程就是非线性的。
为何如此强调这一区分?因为线性是一种超能力:
- 解满足叠加原理;
- 通解可分解为齐次解加特解;
- 整套线性代数工具(特征值、变换、格林函数)均可使用。
非线性方程则没有这些便利。它们能表现出线性方程无法实现的行为——极限环、混沌、有限时间内爆破——但每个问题往往都需要专门的处理策略。

图 4. 相同画幅,截然不同的世界。左:线性方程 $y' = -y + \sin t$
的所有解最终都被拖入同一条红色振荡吸引子——未来“遗忘”了初始条件。右:对非线性方程 $y' = y^2 - t$
,$y(0)$
的微小变化会导致命运天差地别,某些解甚至在有限时间内逃逸至 $+\infty$
。欢迎来到非线性世界。
简史#
微分方程并非被“发现”的,而是被物理学“逼出来”的。微积分诞生的那个世纪,立刻就需要它。
| 年份 | 人物 | 里程碑 |
|---|---|---|
| 1666 | 牛顿 | 发明微积分与运动定律。$F = ma$ 本身就是二阶 ODE。 |
| 1690s | 伯努利家族 | 悬链线、最速降线问题——将物理问题转化为 ODE。 |
| 1739 | 欧拉 | 首次系统化 ODE 理论;提出欧拉法(现代数值积分器的雏形)。 |
| 1820s | 柯西 | 开始研究解的存在性——解究竟是否存在? |
| 1890 | 皮卡、林德勒夫 | 以现代形式确立唯一性定理。 |
| 1880s+ | 庞加莱 | 开创定性理论:不再执着于公式,转而研究解流的几何结构。 |
| 1963 | 洛伦兹 | 从一个三变量天气玩具模型中诞生了混沌理论。 |
这条发展脉络令人印象深刻:我们起初追逐解析公式,后来放弃,转而学习解流的几何。现代 ODE 理论在精神上更接近庞加莱,而非牛顿。
三个你会反复遇到的经典模型#
ODE 之所以无处不在,是因为少数几个方程以不同物理面貌反复出现。以下是三个最经典的例子。

图 5. 科学中最常复用的三个方程。每条仅一行,却共同描述了热交换、考古测年,以及机械工程中所有弹簧–质量系统。
放射性衰变——宇宙的计时器#
$$ \frac{dN}{dt} = -\lambda N \qquad\Longrightarrow\qquad N(t) = N_0\,e^{-\lambda t}. $$半衰期 $t_{1/2} = (\ln 2)/\lambda$ 是一个能概括整条衰减曲线的单一数值。碳-14 的半衰期为 $5730\,\text{年}$ ,这正是考古学家能测定木炭年代的原因:测量残留的 $^{14}\mathrm{C}$ 比例,取对数即可推算出年龄。同一方程也适用于 RC 电路中的电容放电,以及药物在血液中的清除过程。
马尔萨斯人口增长#
$$ \frac{dP}{dt} = rP \qquad\Longrightarrow\qquad P(t) = P_0\,e^{rt}. $$这与衰变方程完全相同,只是将 $-\lambda$ 替换为 $r$ 。数学并不关心对象是在消亡还是在繁衍,它只关注速率常数的符号。
但它也预言了无界的指数增长——任何生物学家都会指出这是荒谬的,因为食物、空间或宿主终将耗尽。修正方案是著名的逻辑斯蒂方程(logistic equation),它如此重要,我们直接将其与原始模型并列展示。

图 6. 左:马尔萨斯指数模型无限增长;逻辑斯蒂模型则弯曲并饱和于环境承载力 $K$
。右:增长率的“相图”。逻辑斯蒂曲线有两个平衡点($P = 0$
和 $P = K$
),中间区间增长,超过 $K$
则衰退。我们将在第 2 章
深入剖析。
简谐振动#
$$ m\,\frac{d^2 x}{dt^2} = -kx \qquad\Longleftrightarrow\qquad x'' + \omega_0^2\,x = 0, \quad \omega_0 = \sqrt{k/m}. $$通解为 $x(t) = A\cos(\omega_0 t + \varphi)$ ——一个自然角频率为 $\omega_0$ 的纯正弦波。你在小角度单摆、LC 电路、分子振动,以及几乎所有线性系统的本征模中都会遇到这个方程。
| |
右图是一张相图,首次展示了二阶系统天然存在于 $(x, v)$ 二维空间中。能量守恒迫使轨迹成为闭合椭圆;这一几何事实将成为第 7 章 的核心。
初值问题与解的存在性#
$$\frac{dy}{dt} = f(t, y), \qquad y(t_0) = y_0.$$二者合称为初值问题(IVP)。接下来的问题,数学家花了近两个世纪才认真对待:
这个 IVP 是否真的有解?如果有,解是否唯一?
现代答案是 Picard–Lindelöf 定理。
定理(Picard–Lindelöf, 1890):若 $f(t, y)$ 在包含 $(t_0, y_0)$ 的某个矩形区域内关于 $t$ 连续,且关于 $y$ 满足 Lipschitz 条件,则该 IVP 在包含 $t_0$ 的某个开区间上存在唯一解。
所谓“关于 $y$ Lipschitz”,是指存在常数 $L$ ,使得 $|f(t, y_1) - f(t, y_2)| \le L\,|y_1 - y_2|$ 。通俗地说,$f$ 在 $y$ 方向上的“斜率”是有界的。大多数“行为良好”的右端函数(如多项式、光滑函数)都自动满足此条件。
为何在意这一点?因为若无此保证,模型本身就存在歧义——而这种情况确实会发生。

图 7. 左:对 $y' = -y$
,$f$
处处光滑;每一点都恰好穿过一条解曲线。红色曲线是从 $(0, 1)$
出发的唯一解。右:对 $y' = 3\,y^{2/3}$
,$f$
连续但在 $y = 0$
处不满足 Lipschitz 条件(其斜率趋于无穷)。从原点出发,存在无穷多合法解:$y(t) = 0$
是一个,$y(t) = (t - c)^3$
(对任意 $c \ge 0$
)也是,方程无法在它们之间做出选择。从物理角度看,这个模型已经失效。
关键结论非常明确:只有当 Picard–Lindelöf 条件成立时,以 ODE 形式写出的“物理定律”才算真正成立。 否则,未来无法由当前状态唯一确定,整个决定论模型的基础就会崩塌。
解析解 vs. 数值解#
| 解析解 | 数值解 | |
|---|---|---|
| 你得到什么 | 一个公式:$y(t) = C e^{-kt}$ | 一组离散点 $(t_n, y_n)$ |
| 来源 | 纸笔推导与闭式积分 | 时间步进:$y_{n+1} = y_n + h\,f(t_n, y_n) + \dots$ |
| 优点 | 精确;揭示结构(变量间依赖关系) | 适用于任何你能写出的 ODE |
| 缺点 | 大多数 ODE 没有闭式解 | 近似解;需谨慎控制步长 |
在研究生物理课程中,你可能会手解十几个 ODE。但在专业工程与科学研究中,绝大多数 ODE 都通过数值方法求解——这毫无羞耻可言;事实上,现代建模几乎完全依赖于此。
$$y_{n+1} = y_n + h\,f(t_n, y_n).$$ | |
欧拉法是所有更高级方法(如 Runge–Kutta、Adams–Bashforth,以及用于轨道传播的辛积分器)的种子。我们将在第 11 章
深入剖析 scipy.integrate.solve_ivp 中现代求解器的工作原理——但底层逻辑始终如一:估计导数、迈一步、重复、控制误差。
总结#
| 概念 | 核心要点 |
|---|---|
| 微分方程 | 关联未知函数与其导数的方程 |
| ODE vs. PDE | 单自变量 vs. 多自变量 |
| 阶数 | 最高导数阶数 = 所需初始条件数量 |
| 线性 vs. 非线性 | 线性支持叠加与完整理论;非线性可能产生混沌 |
| 方向场 | 在求解前可视化“流”的走向 |
| IVP + Picard–Lindelöf | 初始条件 + Lipschitz 的 $f$ ⇒ 唯一解 |
| 解析解 vs. 数值解 | 能解析则解析;不能则数值(绝大多数情况) |
本章的核心思想可归结为一句话:物理学用微分方程书写定律,因为自然的语言是“变化率”;学习 ODE,就是学会将这种语言翻译成图像、公式和预测。
练习题#
热身
- 验证 $y(t) = C e^{3t}$ ($C$ 为任意常数)是 $y' = 3y$ 的解。
- 咖啡在 $20^\circ\mathrm{C}$ 房间中,10 分钟内从 $90^\circ\mathrm{C}$ 冷却至 $60^\circ\mathrm{C}$ 。求冷却常数 $k$ ,并预测 $t = 30$ 分钟时的温度。
- 某放射性样品半衰期为 10 年。初始 100 克样品,25 年后还剩多少?
概念
- 证明:无论初始值 $y(0)$ 如何,$y' = -2y$ 的所有解都满足 $\lim_{t \to \infty} y(t) = 0$ 。
- 手绘 $y' = y(1 - y)$ 的方向场,标出平衡点,并预测 $y(0) = 0.1$ 、$y(0) = 0.5$ 和 $y(0) = 1.5$ 的长期行为。(这是逻辑斯蒂方程。)
- 为什么马尔萨斯人口模型不现实?至少提出两种应纳入模型的物理机制。
- 证明初值问题 $y' = 3 y^{2/3}$ 、$y(0) = 0$ 存在多个解,并指出 Picard–Lindelöf 定理中哪条假设被违反。
编程
- 实现欧拉法,在区间 $[0, 5]$ 上用步长 $h = 0.5,\,0.1,\,0.01$ 求解 $y' = -y$ 、$y(0) = 1$ 。在双对数坐标下绘制全局误差与 $h$ 的关系,观察斜率是多少?为什么?
- 绘制 $y' = \sin t - y$ 的方向场及若干解曲线,猜测其长期行为,并用数值方法验证。
- 复现图 6(逻辑斯蒂 vs. 指数增长):使用
scipy.integrate.solve_ivp同时求解两个 ODE 并叠加绘图。逻辑斯蒂解何时达到承载力 $K$ 的 99%?
下一步#
下一章我们正式开始动手解 ODE。从最简单的一阶情形入手——分离变量、积分因子、线性齐次方程的标准化套路。这些技术看起来零散,但它们的共同主题是:让方程结构暴露出可积的结构。读完下一章,你会对’怎么解’这件事不再依赖运气,而是看一眼方程就知道应该用哪一招。
参考文献#
- Boyce, DiPrima & Meade, Elementary Differential Equations and Boundary Value Problems, Wiley(第 11 版,2017)。
- Strogatz, Nonlinear Dynamics and Chaos, CRC Press(第 2 版,2015)——第 1–2 章是本章的绝佳伴侣。
- Tenenbaum & Pollard, Ordinary Differential Equations, Dover(1985)——经典而详尽的参考书。
- Hirsch, Smale & Devaney, Differential Equations, Dynamical Systems, and an Introduction to Chaos, Academic Press(第 3 版,2012)。
- MIT OCW 18.03SC —— Differential Equations(免费视频课程)。
ODE 入门精讲 18 篇
- 01 常微分方程(一):微分方程的起源与直觉 当前
- 02 常微分方程(二):一阶微分方程的求解方法
- 03 常微分方程(三):高阶线性微分方程
- 04 常微分方程(四):拉普拉斯变换
- 05 常微分方程(五):级数解法与特殊函数
- 06 常微分方程(六):线性微分方程组
- 07 常微分方程(七):稳定性理论
- 08 常微分方程(八):非线性系统与相图
- 09 常微分方程(九):混沌理论与洛伦兹系统
- 10 常微分方程(十):分岔理论
- 11 常微分方程(十一):数值方法
- 12 常微分方程(十二):边值问题
- 13 常微分方程(十三):偏微分方程引论
- 14 常微分方程(十四):传染病模型与流行病学
- 15 常微分方程(十五):种群动力学
- 16 常微分方程(十六):控制理论基础
- 17 常微分方程(十七):物理与工程应用
- 18 常微分方程(十八):前沿专题与系列总结