直观理解微分方程(斜率场)

普通方程要你找一个数。它给出 2x + 3 = 11 这样的等式,再问哪个数值能让等式成立。微分方程要你找一条曲线。它给出一条局部变化规则,再问哪些完整曲线能处处遵循这条规则。
正是这种转换,让微分方程在初学时显得陌生。未知量是一个函数,答案里常有任意常数,而曲线上的一个点还不足以决定一切。方程描述的是曲线在整个区间里必须怎样运动。
要读懂显式一阶微分方程,最直观的画面是一片由短小斜线组成的场。对写成 y' = F(x, y) 的方程,只要 F 在某一点有定义,就在该点画一小段线,告诉曲线在这里应该向哪个方向倾斜。解就是沿着这些方向前进的路径。看见这个斜率场以后,解族、初始条件和指数增长就不再像几套互不相干的技巧。
微分方程是一条变化规则
导数告诉你某个量变化得有多快。微分方程把这个思路反过来:它给出一个包含导数的关系,要你找回原来的量。
来看这个方程:
撇号表示 y 对 x 的导数。这个方程说,变化率始终等于当前值的两倍。y 等于 1 时,斜率必须是 2;y 等于 3 时,斜率必须是 6;y 为负时,斜率也必须为负。这条规则并不直接告诉你曲线在某个 x 处有多高,而是规定曲线的高度和斜率必须怎样一起变化。
核心的反转就在这里:
- 在微积分中,你知道函数,再计算它的变化率。
- 在微分方程中,你知道变化率应遵循的规则,再重建函数。
y' = 2y 是一阶方程,因为其中最高阶的导数是一阶导数。含有 y'' 的方程是二阶方程。“阶”表示规则深入到了第几层变化,而不是方程看起来有多难。
它还是一个常微分方程,简称 ODE,因为 y 只依赖一个自变量。如果温度同时依赖位置和时间,模型就要使用偏导数,成为偏微分方程,简称 PDE。背后的大思路没有改变,但本文只讨论 ODE:一个输入,一条不断演化的路径。
解是函数,不是一个数
要求解 y' = 2y,你需要找到一个函数,它的导数恰好等于自身的两倍。指数函数正有这种性质。试取:
其中 C 是任意常数。对它求导:
而 y 本身就是 ,所以这里确实有 y' = 2y。这个函数在每一个 x 处都满足方程,因此它是一个解。
注意验证方式的变化。对代数方程,你代入一个数;对微分方程,你先对一个函数求导,再把结果代入。在所讨论的整个区间内,正确的解都必须遵守变化规则,而不是只经过某个方便检查的点。
常数 C 并不代表解题还没完成,它本来就是答案的一部分。这个方程描述了一族曲线:
- 时,。
- 时,。
- 时,。
- C = 0 时,得到平直的解 y = 0。
每一条曲线都遵循同样的增长规则,只是起始高度不同。变化规律无法告诉你故事从哪里开始,缺失的起点信息正是由这个常数保存的。
这也解释了为什么积分会带出一个加法常数。求导会抹掉常数造成的竖直平移,因为常数的导数为零,所以逆转这个过程时必须保留所有可能的平移。后面的代数运算可能改变参数的外观。在本例中,取指数会把 变成 前面的乘法常数。
斜率场把规则变成一片地形
即使还不会用符号求解,你也能先读懂显式一阶方程 y' = F(x, y)。在 F 有定义的区域取一组网格点,逐点计算规定的斜率,再画一小段具有该斜率的线。所得图形叫斜率场,也叫方向场。
对 y' = 2y 来说,斜率只由高度决定:
- 沿着 y = 0,每一小段都是水平的。
- 沿着 y = 1,每一小段的斜率都是 2。
- 沿着 y = -1,每一小段的斜率都是 -2。
- 越高的正数行,线段向上倾斜得越陡。
- 越低的负数行,线段向下倾斜得越陡。
整个斜率场看起来像一条条倾角相同的水平带。解曲线可以从任一点出发,但一旦出发,就必须跟随附近线段的方向。正解向上弯曲并不断增长,负解向下远离零,零解则保持水平,因为这条线上的每个方向都水平。
这幅图把微分方程本身和某个具体解区分开来。微分方程生成整个场,每个解只是穿过其中的一根线。
斜率场还让你不必先求出公式,就能预测解的行为。如果某一区域的线段向上,解在那里就会增加。如果沿 y = c 的相关位置,所有线段都水平,那么 y = c 就是一个常数平衡解。如果附近的线段都朝向这条线,附近的解会被拉回去;如果都背离它,微小扰动就会放大。应用微分方程常常要做这种定性分析:先判断路径可能怎样运动,再推导精确公式。
对 y' = 2y 来说,右端关于 y 平滑变化,因此标准的存在唯一性条件保证每一点都恰好有一条解曲线通过。斜率场能直观展示这个结果,却不能代替证明。仅仅经过同一点并具有相同斜率,并不足以保证所有方程的解都唯一:规则不够正则时,不同解可能相遇,之后又再次分开。
初始条件选定一条路径
现在给同一个方程加上条件 y(0) = 3。这是一个初始条件:当 x = 0 时,曲线经过高度 3。先写出解族:
再代入已知点:
于是特解为:
微分方程给出整个解族的形状,初始条件从中选出一员。在斜率场的画面中,初始条件相当于把手指放到点 (0, 3),于是只剩经过该点的那条路径。
对于正则的初值问题,通常需要多少个条件,取决于方程的阶数。一阶速度定律 y' = v(x, y) 已经规定了速度,通常只需要一个初始位置。二阶加速度定律通常既需要初始位置,也需要初始速度。
例如,归一化的无阻尼弹簧方程是:
它表示加速度总是指向平衡位置。物理形式为 m y'' + k y = 0;选取使 k/m = 1 的单位,就得到上面的归一化方程。它的解由正弦和余弦组合而成。只知道起始位置,你无法判断弹簧是从静止状态释放,还是一开始就在运动。再给出起始速度,运动才被确定下来。
分离变量,就是解开两边的联系
y' = 2y 不只可以靠猜,还可以用系统方法求解。先把导数写成 :
把含 y 的部分移到 dy 一边,把含 x 的部分移到 dx 一边:
然后对两边积分:
取指数后得到:
在这一步,A 暂时不能为零,因为此前除以 y 时排除了 y = 0。把被排除的函数代回原方程检验,发现 y = 0 确实成立。因此,完整解族可以写成 y = ,其中 A 可以是任意实常数,也包括零。
这个方法叫变量分离法,因为它在积分前把所有含 y 的项和所有含 x 的项分别放到两边。它适用于能整理成以下形式的方程:
但代数变形里藏着一个陷阱。除以 g(y) 可能会丢掉满足 g(y) = 0 的解。在本例中,除以 y 就暂时排除了平衡解 y = 0。
对入门阶段用变量分离法处理的光滑方程,补回被排除的平衡解,通常就能得到完整解族。但对不够正则的方程,还可能出现分段解:它们会在平衡点停留一段时间,之后才离开。因此,变量分离法并不是在任何情况下都能保证解的完整性。每次除法或变形之后,都要把推导出的解族和所有被排除的值代回原方程检验。
增长、衰减和振荡来自不同规则
微分方程中的细小变化,会产生完全不同的运动。
模型:
对正的量而言,k 为正时描述指数增长,k 为负时描述向零靠近的指数衰减。更一般地说,k 为正时,任意非零解的绝对值会增长;k 为负时,绝对值会缩小。只要变化率与当前数量成正比,就会出现这个模型,理想化的人口增长、连续复利和放射性衰变都是常见例子。同一个公式并不意味着真实人口或投资会永远呈指数变化。它只说明,只要“比例变化率不变”这个假设持续成立,系统就会呈现指数行为。
弹簧方程 y'' + y = 0 产生的则是振荡。它的解由正弦和余弦构成,因为这些函数求两次导数后会变号。把它与下面的方程比较:
后一个方程的解由指数函数构成,也可以用双曲函数表示。符号决定了系统是被拉回去形成重复运动,还是被推向增长和衰减。
真实模型还会加入外力、摩擦、有限资源,或多个量之间的相互作用。逻辑斯蒂人口模型会在接近环境承载力时减慢增长;阻尼弹簧的振幅会随时间减小;微分方程组则能同时追踪多个共同变化的量。每增加一项,局部变化规则都会改变,系统能够遵循的路径也随之改变。
常见错误从哪里来
第一个错误是仍在寻找一个数。微分方程中的未知量通常是函数。如果题目没有指定求某点的函数值,而你的答案却只有一个 y 值,那很可能是停得太早了。
第二个错误是只检查初始条件。经过 (0, 3) 并不能让一条曲线成为 y' = 2y 的解。经过该点的曲线有无穷多条,它还必须在整个区间内满足导数规则。
第三个错误是漏掉任意常数。没有足够条件的微分方程通常描述一族解。把其中一员写成全部答案,会丢失其他有效过程。
第四个错误是在除法中丢掉平衡解。如果你要除以 y、y - 1 或任何包含未知函数的表达式,先停一下,把这个表达式等于零时的值代回原方程检验。
第五个错误是把模型当成事物本身。y' = ky 产生指数增长或衰减,是因为它假设比例变化率恒定。真实系统只有在这个假设足够合理时,才会沿着相应曲线变化。方程解得正确,并不能证明一开始选的模型就正确。
Math Zen 如何帮助你练习
微分方程会把几个通常分散在不同章节里的技能组合起来。你需要把导数理解为变化率,需要做代数变形而不丢失特殊情形,需要识别指数函数求导后仍与自身成比例,需要对两边积分,还需要用初始条件确定余下的常数。其中任何一项不熟练,整个方法都会显得神秘。
Math Zen 提供变量可分离方程、一阶线性方程、二阶方程、齐次方程、恰当微分方程、伯努利方程以及常微分方程组等题型的练习。开始计算前,先问本文中的三个问题:方程要求怎样的变化,哪一族路径可能遵守它,又是什么条件选出了你需要的那一条?
有效的练习循环很简单:先判断一个方程的类型,预测解的大致方向,求解或验证,再检查初始条件和所有被排除的平衡解。隔一段时间后回到混合题中,沿用 Math Zen 其他内容采用的间隔重复方法。目标不是记住一整柜子的解题配方,而是看清眼前究竟是哪一条变化规则。
核心结论
微分方程描述一个量与其变化方式之间的关系。它的解是一个完整函数,而且往往属于某个解族。任意常数记录路径可能从哪里开始,初始条件则选出符合实际起点的那条路径。
对显式一阶方程来说,斜率场把整门课的核心串在了一起。局部规则用允许的方向填满定义域,解则顺着这些方向前进。变量分离、初值问题、增长、衰减和振荡,都是阅读或描绘这片地形的不同方式。微分方程把局部变化规则延伸成一条全局曲线。
常见问题
- 用大白话说,微分方程是什么?
- 微分方程是一条把未知函数与它的一个或多个导数联系起来的规则。它不直接告诉你某个量的数值,而是告诉你这个量怎样变化。解方程,就是找出所有变化率都遵守这条规则的函数。例如,y' = 2y 表示某个量的导数始终等于当前值的两倍,它的解是 y = Ce^(2x) 这类指数函数。
- 为什么微分方程的解是函数?
- 普通方程要找的是一个能让等式成立的数。微分方程要找的是一个完整函数,使它的导数在某个区间的每一点都满足等式。在 y' = 2y 中,未知量不是 y 的某一个值,而是整条曲线 y(x)。验证候选解时,需要先对它求导,再检查得到的导数是否满足原方程。
- 常微分方程和偏微分方程有什么区别?
- 常微分方程(ODE)描述只有一个自变量的函数,使用普通导数。偏微分方程(PDE)描述有两个或更多自变量的函数,使用偏导数。只随时间变化的运动常可用 ODE 建模;热量随位置和时间扩散时,温度取决于多个输入,因此需要 PDE。
- 为什么微分方程的解里会有任意常数?
- 关于变化的规则通常描述的是一族可能的过程。无论常数 C 取什么值,每个 y = Ce^(2x) 都满足 y' = 2y。像 y(0) = 3 这样的初始条件会强制 C = 3,从这族解中选出一个。任意常数记录了求导时丢失的信息,初始条件则把这部分信息补回来。
- 学习微分方程前需要掌握什么?
- 你应该熟悉函数、导数、基本积分、指数、对数和代数变形。开始学习前不必掌握所有高级积分技巧。最初真正有用的方法,主要是识别变化率、通过求导检验解、分离变量,以及用初始条件确定常数。


