前几章已经处理了两类最常见的一阶方程:可分离变量方程和一阶线性方程。它们像两把常用工具,遇到增长、衰减、冷却、电路、混合问题时很顺手。可是一个方程摆在面前时,它往往不会主动告诉你“我可以分离”或“我已经是线性标准形”。
本章做两件事。第一件事是学习精确方程,它把一阶方程和多变量微积分中的势函数连起来。第二件事是学习几种替换法,把不熟悉的方程变回可分离或线性方程。最后我们把这些方法整理成一个判断流程,帮助你在新题面前先判断类型,再动手计算。
本章不是技巧清单。真正要练的是识别:先看方程是否已经属于熟悉类型,再看是否能通过一个有理由的替换回到熟悉类型。没有识别,公式越多越容易乱。
一阶方程常写成
但许多题更自然地写成微分形式:
如果 ,它等价于
所以它仍然是一阶常微分方程。微分形式的好处是它把 和 放在更对称的位置,也让我们看见一个新的可能:也许左边其实是某个二元函数 的全微分。
如果存在函数 ,使得
那么方程就是
沿着解曲线走, 的值不变,因此解曲线落在某条等值线上:
图:精确方程把一阶微分方程转化为寻找势函数。沿解曲线有 ,所以 保持常数。
这就是精确方程的直观来源。它不是凭空多出一种解法,而是在问:这个方程是不是某个隐藏函数的“总变化为零”?
精确方程的答案通常先是隐式解 。不必急着把 解成 的显式函数;很多时候隐式形式更干净,也更贴近几何意义。
怎样判断
是否精确?如果 且 ,那么在偏导连续的区域内,混合偏导应相等:
这给出精确方程的判别条件。实际做题时通常先检查 ,成立后再找势函数 。
判别条件默认在一个没有断裂的区域内使用。若 或 含有 、、 等表达式,要先看定义域;积分常数和解的有效区间也会受到定义域影响。
例题:求解
先识别 和 。这里 ,。计算偏导得 ,,所以方程是精确方程。
图:拼装势函数时,先得到主体,再用另一条偏导关系补上遗漏的单变量函数。
这个例题里最容易出错的地方不是积分本身,而是把 漏掉。对 积分时,任何只含 的项都会被 消掉,所以它必须保留到下一步再确定。
常见错误是写出 后立刻令它等于 。这样会丢掉 中的 信息,得到的曲线一般不满足原方程。
下面的交互可以用几个小例子反复练“判别”和“拼装”。你可以先猜从 积分还是从 积分更省事,再展开步骤核对。
有些方程一开始不精确,但乘上一个非零函数后会变精确。这个函数叫积分因子。上一章一阶线性方程里的积分因子,其实就是这里的一个特例。
对一般微分形式
若尝试只依赖 的积分因子 ,需要
只含 。此时可取
若尝试只依赖 的积分因子 ,需要
只含 。此时可取
图:简单积分因子不是随便猜出来的;它来自乘上 后重新满足精确条件。
例题:求解
这里先取 ,避免分母和对数的区间问题。
设 ,。计算得
积分因子方法很有用,但不要把它当成万能钥匙。若上面两个比值都同时含 和 ,只说明简单的 或 路线不通;更复杂的积分因子可能存在,但通常不属于第一门 ODE 课程的主线。
这里的“齐次型”容易和上一章的一阶线性齐次方程混淆。现在说的是另一件事:方程能写成
也就是斜率只依赖比值 。在几何上,同一条从原点出发的射线上, 保持不变,所以方程给出的斜率规则沿射线相同。
图:齐次型方程的核心变量不是 或 单独一个,而是比值 。
令
其中 是 的函数。由乘积求导,
代回 后得到
于是
这通常是可分离变量方程。
例题:求解
其中 。
右边只依赖 ,所以令 。此时 。
不要把 当常数。写 以后,,所以 。漏掉 是替换法中最常见的错误。
下面的交互用同一个方程展示 、射线和替换后的方程之间的关系。拖动初始点时,注意同一射线上 如何保持不变。
Bernoulli 方程的标准形式是
当 或 时,它已经是一阶线性方程。真正需要新方法的是 的情况。若先除以 ,得到
令
则
于是方程化为线性方程
图:Bernoulli 方程看起来非线性,但合适的幂替换会把它送回一阶线性方程。
例题:求解
这是 Bernoulli 方程,,,。先单独检查 ,它满足原方程,所以 是一个解。
Riccati 方程一般写成
它比 Bernoulli 更宽,也更难。若 ,它会退化为 Bernoulli 型;若 ,它会退化为线性方程。一般 Riccati 方程不能靠一个固定套路轻松解决,但有一个入门结论值得记住:如果已知一个特解 ,令
就能把剩下的 方程化为 Bernoulli 方程,再用 化为线性方程。
比如
有特解 。令 ,则
这是 Bernoulli 型,也可以直接分离。用这个例子不是为了把简单题做复杂,而是为了看见 Riccati 的结构:一旦找到一个特解,原本的二次非线性会降到熟悉的一阶线性路线。
本课只把 Riccati 当作“工具箱边界”的入口。遇到 Riccati 方程时,先看它是否退化为线性或 Bernoulli,再看题目是否给出或暗示一个特解;没有这些线索时,不要硬套公式。
一阶方程解法很多,但判断顺序可以很朴素。先把方程整理清楚,再从低成本检查开始:
图:判断流程的目的不是限制思路,而是减少无意义试错。每一步都先问“形式是否匹配”。
下面的交互把这张表变成一个小型决策器。先选方程,再按问题一步步判断;它不会替你求完整答案,但会训练“先分类”的习惯。
下面几道题不急着算完整解,先判断该用哪种工具。
它已经是微分形式。计算 ,,所以优先用精确方程,找势函数。
右边可写成 ,所以是齐次型。令 后会变成可分离方程。
这是 Bernoulli 方程,。先检查 ,再对非零解令 。
它是 Riccati 型,但没有明显退化,也没有给出特解。第一门课程中不应把时间花在盲猜特解上;可以先画方向场、做数值近似,或等待后续章节的定性工具。
一个成熟的解题过程往往从“不做什么”开始。发现某条路不匹配,就尽早换工具;这比在错误类型上多算三页更有价值。
练习一:判断并求解
这是精确方程,因为 ,。由 得
练习二:判断并求解
其中 。
右边可化为
练习三:判断并求解非零解,同时说明是否有零解。
其中 。
这是 Bernoulli 方程,。先检查 ,它满足原方程,所以零解存在。对非零解,除以 得
练习四:下面的方程该优先用哪种方法?先说明判断理由。
先检查精确性:,,不精确。再看 和 都是二次齐次函数,所以可用齐次型替换。把方程写成
精确方程把一阶 ODE 看成势函数的等值线问题,核心检查是 ,核心计算是拼装 。简单积分因子把一部分非精确方程拉回精确方程,但它有清楚的适用边界。
替换法的共同目标是降级:齐次型用 降到可分离,Bernoulli 用 降到线性,Riccati 在已知特解时也能降到 Bernoulli 或线性。做题时先判断类型,再选择工具。遇到不匹配的方程,方向场、数值近似和定性分析不是退路,而是 ODE 的另一条主线。
从 出发,对 积分。积分时把 暂时看作常数:
这里的 不是普通常数,而是“对 来说为常数”的未知函数。
用 确定 。由
应等于 ,所以 ,从而 。常数可并入最后的 。
写出隐式通解:
若再给初值,例如 ,就有 ,特解为 。
因此方程不是精确方程。
检查是否有只依赖 的积分因子:
结果只含 ,所以可以取
乘上积分因子后得到
现在 ,,方程变成精确方程。
找势函数。由 ,
再令 ,得到 ,所以 。
写出隐式解:
原方程的解在选定区间内由这个隐式关系给出。
代入原方程:
消去两边的 ,得到
分离变量并积分:
所以
回代 ,得到
这个解只能在不跨过 的区间上使用。
对非零解,除以 :
令 ,则 。
代入得到
即
这是线性方程。
积分因子为 ,所以
积分得
因此
回代 ,非零解为
连同前面单独检查出的 ,构成本题的解族。
| 找积分因子 |
| 标准形中 系数是否为 |
| 精确方程 | 且 | 找势函数 | 定义域是否连通 |
| 简单积分因子 | 非精确但比值只含一个变量 | 乘 或 | 不要随意猜复杂因子 |
| 齐次型替换 | 令 | 附近要分区间 |
| Bernoulli | 令 | 先检查 是否是解 |
| Riccati | 右边含 | 找退化情形或特解 | 没有特解时不要硬算 |
再由 得 ,所以 。通解为
它是 的函数,因为令 后有 。设 ,则 ,代入得
所以 。分离变量:
积分得
回代 :
令 ,则 ,代入得
也就是
积分因子为 ,所以
积分得
因此
非零解为
右边只依赖 ,令 即可。