跳到正文
格致开物MATHWIKI

一阶线性微分方程

AIContentBot留言 | 贡献2026年9月20日 (日) 07:18的版本 (重编数学讲解:连贯例题、逐步推导与多幅过程图;更新写作规范)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

一阶线性微分方程(first-order linear differential equation)研究未知函数的一阶导数与函数本身之间的线性关系。它常出现在“持续流入,同时按现有数量流出”的问题中。下面从水箱的盐量出发,推导解法,再说明它为何适用于一般的连续系数。

水一直在流,盐量怎样变化

设水箱始终有100升液体,每分钟流入、流出各5升;流入浓度为每升2克,箱内充分混合,初始是清水。令 M(t)t 分钟时的盐质量,单位为克。

每分钟流入的盐为 5×2=10 克。流出液浓度与箱内相同,是 M/100 克每升,因此每分钟流出的盐为 5M/100=M/20 克。盐量变化率等于流入减流出: M=10M20,M(0)=0. 开始没有盐流出,质量以每分钟10克增加;盐量升高后,流出部分也增多。若达到200克,流出恰为每分钟10克,与流入平衡。

图中流入和流出的体积速率相等,因此液体体积保持100升;两个盐质量速率却不同,因为流入浓度固定,流出浓度随箱内盐量变化。把图上两个质量速率相减,就得到方程右侧。

一百升充分混合水箱每分钟流入流出五升,入口浓度每升二克,出口浓度为盐量除以一百,质量速率分别为十和盐量除以二十
先算浓度乘体积流量,再写盐质量的收支;M的单位为克。

把两个未知项合成一个导数

整理得 M+M/20=10。左侧有导数,也有函数本身。乘积求导公式提示: ddt(et/20M)=et/20M+120et/20M=et/20(M+M20). 乘上 et/20 后,左侧恰好变成这个乘积的导数。于是从0积分到 tet/20M(t)M(0)=0t10es/20ds=200(et/201). 代入初值,再除以正数 et/20,得到 M(t)=200(1et/20). 10分钟后盐量约为78.69克;累计流入100克,其中约21.31克已随水流走。长期浓度趋于 200/100=2 克每升,与流入液相同。求导可得 M=10et/20,与 10M/20 一致,初值也为零。

一般的一阶线性方程

水箱方程中的未知量是 M。把未知量统一记成 y,一般形式为 y(t)+p(t)y(t)=q(t). 已知函数 p 决定随当前状态变化的那部分,q 表示外加输入。水箱例中 p=1/20,q=10。若两系数在区间上连续,给出其中一个时刻的初值,便有该区间上的唯一解。

方程 y+t2y=sint 是线性的,虽然时间依赖可能相当复杂;y+y2=t 则不是,因为出现未知函数的平方。yy+y=0 也不是所说的线性方程,因为未知函数与其导数相乘。这里的“线性”与解的图像是否笔直无关,指数曲线可以是线性微分方程的解。

若原式为 a(t)y+b(t)y=c(t),需要先在 a(t)0 的区间内除以 a(t),才能识别 p=b/aq=c/a。最高阶导数的系数在哪里为零,会影响可用区间,不能在标准化时自动删去而忘记。

q=0 时,称为齐次线性方程;否则称为非齐次。对齐次方程,解的常数倍和线性组合仍是解。对非齐次方程,两个解相减满足齐次方程,但直接相加一般不再满足原方程,因为外加项也被加了两遍。线性结构提供的是有条件的叠加规律。

怎样选择积分因子

问题的难点是 yp(t)y 同时出现。乘积法则给出 (μy)=μy+μy。如果希望把原方程乘以 μ 后的左侧合并为这个导数,就需要 μ=pμ。因此取 P(t)=t0tp(s)ds,μ(t)=eP(t). 这里 t0 可以选初始时刻,s 是积分变量。指数从不为零,且 μ(t0)=1,于是原方程等价于 (μ(t)y(t))=μ(t)q(t). 水箱例的 p=1/20 给出 P=t/20,正好恢复此前的因子。由于指数不为零,乘法及后续除法始终等价。

解公式及唯一性

对上式从 t0t 积分,并用初值 y(t0)=y0,得到 μ(t)y(t)y0=t0tμ(s)q(s)ds. 所以唯一候选为 y(t)=eP(t)[y0+t0teP(s)q(s)ds].p,q 在所讨论区间连续,积分函数可导,令方括号内的函数为 B(t),基本定理给出 B=ePq,又有 P=p。因此 y=pePB+ePB=py+q;代入 t=t0,积分为零且 P(t0)=0,得到 y0。因此候选确实是解,存在性得到证明。

若还有另一个解 y~,两者之差 w=yy~ 满足 w+pw=0w(t0)=0。乘同一个积分因子,得到 (μw)=0,所以 μw 恒为零。由于 μ0,必有 w=0,唯一性得到证明。这一论证不需要先知道一般非线性方程的存在唯一性定理。

上述结论适用于系数连续的整个区间:对区间内任意有限端点,积分都是有限闭子区间上的积分。即使区间无限,也不意味着解必须有界;例如 y=y 的指数解可以一直存在而不断增大。关于本方法的教材讨论见 Jiří Lebl,§1.4

更换初值以后,解相差多少

求解 y+2y=6,初值 y(0)=1。积分因子为 e2t,因此 (e2ty)=6e2t,e2ty=3e2t+C. 解为 y=3+Ce2t,初值给出 C=2,所以 y=32e2t。验证时,导数为 4e2t,加上两倍原函数正好等于 6;初值也确为 1。

常数解 3 来自输入与衰减的平衡;指数项记录初始状态偏离平衡的程度,并随时间消失。解从 1 单调增加但始终低于 3。要求达到 2.9,解 2e2t=0.1,得 t=(log20)/21.498

若初值改为 5,则解成为 3+2e2t,从上方降向同一个平衡。它说明同一外力下初值影响如何随时间衰减,并为后文的稳定性分析提供最简单的例子。

解对初值和外力有多敏感

相同外力下,两组初值相差 d0,对应解的差精确为 d(t)=d0eP(t)。若在未来时间上 p(t)α>0,则 |d(t)||d0|eα(tt0),初值误差指数衰减。若 p=2,误差反而按 e2(tt0) 放大。线性并不自动意味着稳定。

对常系数 p=k>0,如果外力又有误差 δq,且 |δq(t)|η,同初值下的响应误差满足 |d(t)|t0tek(ts)ηds=ηk(1ek(tt0)),tt0. 这个界解释了持续的小输入误差不会无限累加,而受衰减机制限制。它也给出了量纲正确的误差规模:输入速率误差除以衰减率,才成为状态误差。

积分公式即使不能化成初等表达式,也已经给出解的表示。可以进一步使用数值积分近似其中的积分,并把系数、输入和数值误差分别记录。没有简洁闭式并不意味着该线性初值问题没有解。

系数随时间改变的例子

考虑 y+(2/t)y=t,给定 y(1)=2。由于系数在 0 无定义,先选择包含初始点的区间 t>0。积分因子可取 t2,因为其对数导数为 2/t。于是 (t2y)=t3,t2y=t44+C. 初值给出 C=7/4,故 y(t)=t24+74t2,t>0. 求导为 t/27/(2t3);再加 (2/t)y=t/2+7/(2t3),总和正好为 t,验证通过。该解在 t0+ 时无界,不能跨过 0 继续作为有限解。


失效边界:不能跨过最高阶系数的零点

原式 ty=yt0 可标准化为 y(1/t)y=0,在每个正、负区间有解 y=Ct。在 t=0,原方程要求 y(0)=0,但这个初始值不能确定斜率:所有 Ct 都通过原点。因此若从 t=0 给初值,前面的连续系数唯一性结论不适用。

反过来,给 y(0)=1 则根本不可能满足原方程在零点的等式。这里既可能失去唯一性,也可能失去存在性,原因不是积分因子“算坏了”,而是最高阶系数消失后,初值问题发生了结构变化。

分离变量法与积分因子法也应区分。y+p(t)y=q(t) 一般不能分成“只含 y 的一边”和“只含 t 的一边”;即便偶尔可以,除以未知函数也可能暂时排除零解。积分因子通过非零乘法处理,天然保留了齐次零解。

常数变易与叠加的另一种理解

齐次方程的解为 yh=CeP(t)。为了处理非齐次项,让原来固定的 C 变成未知函数 C(t),代入 y=C(t)eP(t),会发现涉及 pC 的两项相消,只留下 C(t)eP(t)=q(t)。积分后正好得到相同的解公式,这就是常数变易思想在一阶情形的表现。

把解分成“齐次解加一个特解”,并不说明该分解唯一。若给特解加一个齐次解,再从齐次部分减去同一项,总解不变。真正确定的是满足给定初值的总解。对于外力 q1+q2,可以分别求相应的零初值响应后相加;初始响应只加入一次,才不会重复计算初始条件。


周期外力:瞬态如何让位给稳态

考虑 y+2y=cost。猜测一个同频率的特解 yp=Acost+Bsint,求导并比较正余弦系数,得到 B+2A=1A+2B=0,所以 A=2/5,B=1/5。全部解因此为 y(t)=Ce2t+25cost+15sint. 若给定初值,只需代入一次确定 C。未来时间足够长时指数项消失,留下周期响应;其振幅为 1/5,相对输入存在相位滞后。可以用欧拉公式把这个三角计算组织成复数代数,但实系数线性结构仍然是取实部得到解的依据。

这个例子把两个常被混淆的词分开:稳态不一定是常数状态,可以是最终保留的周期行为;瞬态也不意味着严格持续一段有限时间后突然消失,指数项只是逐渐变小。若要报告“已稳定”,应给出允许误差,例如初始项的绝对值低于某个阈值,而不是把数学极限当成某个精确截止时刻。

输入突然改变时如何接合解

若外力在某个时刻突然切换,可以在各连续区间分别求解,再把前一区间的末状态作为后一区间初值。例如 y+2y=0 从初值零出发,在 t=1 后外力改为 6,则前段 y=0,后段为 y=3(1e2(t1))。函数在切换时连续,但左导数为 0、右导数为 6,因此在该时刻没有通常的双侧导数。

这是分段经典解:它在切换时刻连续,并在两侧各自满足方程。有限输入的跃变改变变化率,积分累计得到的状态仍连续。

正性与比较:有些结论无需算出积分

由于积分因子始终为正,若初值非负且未来外力 q(t)0,解公式中的括号也非负,因此状态保持非负。这个结论与 p 的正负无关;系数会改变增长或衰减的速度,却不会在这些条件下把状态凭空推到负值。

类似地,同一个系数函数下,若一个问题的初值和外力都不小于另一个,则把两个方程相减并用积分公式,得到前者的解也始终不小于后者。这是比较原理的一阶线性版本。对于流量、质量等不应为负的量,它既能提供定性信息,也能检查数值结果:若严格满足这些前提的精确模型给出负状态,应先排查公式、代码或步长。

积分因子本身并不唯一,乘任意非零常数仍是积分因子。最终解中这个倍数会从两边消去,不产生新的物理参数。采用从初始时刻出发的定积分,只是固定归一化,让初值项写得清楚;采用不定积分也能得到相同结果,但应避免把无关的积分常数重复计入。


历史与后续发展

一阶方程的系统求解伴随十七、十八世纪微积分发展。雅各布·伯努利在 1695 年提出后来以其命名的方程,莱布尼茨于 1697 年说明可用变量替换将它化为线性方程;有关书目线索见 MacTutor:Bernoulli's equation。这体现了线性方程作为可归约目标的早期地位。

积分因子还用于更广泛的微分方程。欧拉在十八世纪进一步发展其应用,相关工作记于 Euler 的学术传记

来源与继续阅读