微分方程(Ordinary Differential Equation,ODE)是含 未知函数及其导数 的方程。求解就是反向地从「变化率」还原出 函数本身。
现实中我们常常先知道一个量「怎么变」(变化率所满足的规律),而不知道它「是什么」。比如「人口增长率正比于当前人口」「物体降温速度正比于温差」——这些都是关于变化率的陈述,写成方程就是微分方程。解方程,就是把这些「局部规律」积分成「全局函数」。
- 阶:方程中出现的最高阶导数的阶数。
- 通解:含 n 个相互独立任意常数的解(n 为方程阶数)。这些常数对应「积分时丢失的信息」,每积一次分多出一个。
- 特解:通解中常数被初始条件确定后的具体解。
- 初值问题(Cauchy 问题):方程 + 初始条件,恰好定出唯一特解。
直观理解:通解是 一整族曲线(积分曲线),初始条件相当于「钉一颗钉子」,从这族曲线里挑出穿过该点的那一条。n 阶方程需要 n 个条件才能完全钉死。
一阶方程是基本功,关键是 识别类型、套对方法。下面按「优先尝试的顺序」排列。
dxdy=f(x)g(y)⇒∫g(y)dy=∫f(x)dx+C
这是最理想的情形:把 x 和 y 各自「分家」到等号两边,然后两边分别积分。所有一阶方程的求解,本质上都是想方设法 化归到可分离变量。
例:解 dxdy=2xy。分离变量 ydy=2xdx,两边积分得 ln∣y∣=x2+C1,即
y=Cex2(C=±eC1∈R)
注意分离时除以了 y,y≡0 也是解,恰好被 C=0 涵盖。积分常数尽早合并、并回头检查被除掉的解是否被通解覆盖。
形如 dxdy=φ(xy),右端只依赖比值 xy。令 u=xy(即 y=ux),则 y′=u+xdxdu,代入后变量恰好可分离。换元的着眼点是「右端只认比例」,所以引进比例当新变量。
例:解 dxdy=xy+tanxy。令 u=xy,y′=u+xu′,代入:
u+xdxdu=u+tanu⇒tanudu=xdx
左边 ∫cotudu=ln∣sinu∣,积分得 ln∣sinu∣=ln∣x∣+C1,即 sinu=Cx。回代 u=xy 得通解 sinxy=Cx。齐次方程换元后那个 u 总能消去、剩下可分离的 u 与 x。
dxdy+P(x)y=Q(x)
「线性」指 y 和 y′ 都只出现 一次方、不相乘。Q(x)≡0 时叫 齐次(可分离变量),否则叫 非齐次。
通解公式:
y=e−∫Pdx(∫Q(x)e∫Pdxdx+C)
这个公式可由 常数变易法(Variation of Constants)推出:先解齐次方程得 y=Ce−∫Pdx,再把常数 C 「变」成待定函数 C(x) 代回原方程,解出 C(x)。「变易常数」的思想——拿齐次解当骨架、让常数随 x 浮动以吸收非齐次项——在后面高阶方程里还会重现。
例:解 dxdy+x1y=xsinx(x>0)。这里 P=x1、Q=xsinx。积分因子 μ=e∫x1dx=x,方程两边乘 x 后左边凑成 (xy)′:
(xy)′=sinx⇒xy=−cosx+C⇒y=xC−cosx
用积分因子时,乘 μ 后立刻把左边认成 (μy)′,比硬套通解公式更快、更不易错。
记忆方式:「乘积求导」反推。把 μ(x)=e∫Pdx 视为 积分因子,乘到方程两边后左侧恰是 (y⋅μ)′,于是方程变成 (yμ)′=Qμ,两边直接积分即可。积分因子的作用,就是把杂乱的左边「凑成一个导数」。
dxdy+P(x)y=Q(x)yn(n=0,1)
右端多了个 yn,破坏了线性。令 z=y1−n 作换元,方程化为关于 z 的一阶线性方程,再套上面的公式。这是「换元把非线性掰回线性」的典型。
例:解 dxdy+y=y2(n=2)。令 z=y1−2=y−1,则 z′=−y−2y′。原方程两边除以 y2 得 y−2y′+y−1=1,即
−z′+z=1⇒z′−z=−1
这是关于 z 的一阶线性方程,积分因子 e−x,解得 z=1+Cex,回代 z=y1 得通解 y=1+Cex1。
M(x,y)dx+N(x,y)dy=0,若满足 恰当条件
∂y∂M=∂x∂N
则左端恰是某个二元函数 u(x,y) 的全微分 du,原方程即 du=0,通解为 u(x,y)=C。直觉上,这说明该方程的积分曲线是某个「势函数」u 的等高线。求 u 的方法是把 M 对 x 积分、再用 N 定出关于 y 的待定部分。
例:解 (2xy+1)dx+(x2+4y)dy=0。验恰当:∂y∂M=2x=∂x∂N,成立。把 M 对 x 积分(y 暂当常数):
u=∫(2xy+1)dx=x2y+x+ϕ(y)
再用 ∂y∂u=x2+ϕ′(y)=N=x2+4y 定出 ϕ′(y)=4y,即 ϕ(y)=2y2。故通解 x2y+x+2y2=C。
高阶方程一般更难,但若缺了某些项,可以 换元降阶,化成会解的低阶方程。
| 形式 | 处理 |
|---|
| y(n)=f(x) | 直接 n 次积分 |
| y′′=f(x,y′)(不显含 y) | 令 p=y′,化为关于 p 的一阶方程 |
| y′′=f(y,y′)(不显含 x) | 令 p=y′,y′′=pdydp |
两种换元的区别在于「方程里没有谁」:不显含 y 时把 p=y′ 当成 x 的函数;不显含 x 时改把 p 当成 y 的函数(用链式法则把 y′′ 改写成 pdydp),从而消掉缺席的自变量。
例(不显含 y):解 y′′=y′+x。令 p=y′,得一阶线性方程 p′−p=x。积分因子 e−x,解得 p=Cex−x−1。再积分一次:
y=∫pdx=C1ex−2x2−x+C2
例(不显含 x):解 yy′′=(y′)2。令 p=y′、y′′=pdydp,代入得 ypdydp=p2。约去 p(p=0)后分离变量 pdp=ydy,得 p=C1y,即 y′=C1y,再解得 y=C2eC1x。
n 阶线性方程的解有一套漂亮的「叠加」结构,根源是 线性(解可以线性组合)。
二阶齐次线性方程 y′′+p(x)y′+q(x)y=0:
- 若 y1,y2 是两个 线性无关 解(即不成比例),则通解 y=C1y1+C2y2 覆盖了全部解。两个独立解张成一个二维「解空间」。
二阶非齐次方程 y′′+py′+qy=f(x):
y=齐次通解 yˉC1y1+C2y2+一个特解y∗
即 通解 = 对应齐次方程通解 + 任一特解。直觉:齐次通解负责「满足左端结构、含自由常数」,特解负责「顶住右端的 f(x)」,两者相加既匹配输入又保留自由度。
叠加原理:若右端 f=f1+f2,可分别求 f1、f2 对应的特解 y1∗、y2∗,则 y1∗+y2∗ 是 f 的特解。复杂的非齐次项可以「拆开各个击破」。
系数为常数时,方程可以彻底求解——这是工程中最常用的一类(振动、电路、控制)。
y′′+py′+qy=0
由于 erx 求导只是自乘 r,猜 y=erx 代入,得到 特征方程:r2+pr+q=0。它把微分方程的求解 降格成一道二次方程,根据判别式 Δ=p2−4q 分三种情形:
| Δ | 根 | 通解 |
|---|
| >0 | r1=r2 相异实根 | y=C1er1x+C2er2x |
| =0 | r1=r2 二重根 | y=(C1+C2x)erx |
| <0 | α±βi 共轭复根 | y=eαx(C1cosβx+C2sinβx) |
三种情形对应三类物理行为:相异实根是 过阻尼(不振荡地衰减),重根是 临界阻尼(恰好不振荡),复根是 欠阻尼(衰减振荡,实部 α 管衰减、虚部 β 管振荡频率)。复根情形用欧拉公式 eiθ=cosθ+isinθ 把复指数解拆成实的正余弦。
例(相异实根):y′′−5y′+6y=0,特征方程 r2−5r+6=(r−2)(r−3)=0,根 r=2,3,通解 y=C1e2x+C2e3x。
例(重根):y′′−4y′+4y=0,特征方程 (r−2)2=0,二重根 r=2,通解 y=(C1+C2x)e2x。重根时第二个解要 多乘一个 x,否则两个解线性相关。
例(共轭复根):y′′+2y′+5y=0,特征方程 r2+2r+5=0,根 r=−1±2i,即 α=−1,β=2,通解 y=e−x(C1cos2x+C2sin2x)——衰减振荡。
当右端 f(x) 是几类「好」函数时,特解形式可直接 照猫画虎地猜——因为这些函数求导后形态不变。
设 f(x)=eλxPm(x)(Pm 为 m 次多项式),特解形式:
y∗=xkeλxQm(x)
其中 Qm 是 同次 待定多项式,k 是 λ 作为特征根的重数(不是根则 k=0)。
若 f(x)=eλx[Pl(x)cosωx+Qn(x)sinωx],设 m=max(l,n):
y∗=xkeλx[Rm(x)cosωx+Sm(x)sinωx]
k 是 λ+ωi 作为特征根的重数。
自由项类型对应表(最常见情形):
| 右端 f(x) | 特解 y∗ 的待定形式 |
|---|
| Pm(x)(多项式) | xkQm(x) |
| aeλx | xkbeλx |
| acosωx+bsinωx | xk(Acosωx+Bsinωx) |
那个因子 xk 是关键、也最易漏。当猜测的指数 / 频率 恰好撞上特征根(发生「共振」),原始形式会被齐次解吸收、无法平衡右端,必须乘上 xk 把它「抬」出齐次解空间。k 取撞上的重数:单根乘 x,重根乘 x2。
例(不共振):解 y′′−3y′+2y=2x。齐次特征根 r=1,2,故齐次通解 yˉ=C1ex+C2e2x。右端是一次多项式、λ=0 不是特征根(k=0),设 y∗=ax+b,则 y∗′=a、y∗′′=0,代入:
−3a+2(ax+b)=2x⇒2a=2, −3a+2b=0⇒a=1, b=23
故 y∗=x+23,通解 y=C1ex+C2e2x+x+23。
例(共振):解 y′′−3y′+2y=ex。右端 λ=1 恰是特征单根,故 k=1,设 y∗=axex。求导代入(利用 r=1 使一阶项归并)解得 a=−1,故 y∗=−xex,通解 y=C1ex+C2e2x−xex。漏掉那个 x 会导致代入后恒等式两边对不上、解不出系数——这正是共振的信号。
xny(n)+a1xn−1y(n−1)+⋯+any=f(x)
特点是 每一项里导数的阶数与 x 的幂次相等。令 x=et(即 t=lnx),可把它化为常系数线性 ODE,再用上面的方法求解。
例:解 x2y′′−xy′+y=0(x>0)。直接试解 y=xr:y′=rxr−1、y′′=r(r−1)xr−2,代入约去 xr 得 特征方程
r(r−1)−r+1=r2−2r+1=(r−1)2=0
二重根 r=1。重根时第二个解补乘 lnx(对应换元后 t 域里的 x 因子),故通解 y=(C1+C2lnx)x。欧拉方程可直接代 y=xr 求特征方程,重根 / 复根的处理与常系数情形平行,只是把 x、lnx 当作对应的「指数 / 一次因子」。
微分方程真正的价值在于 从现实规律列方程。两个原型几乎涵盖所有入门模型:
- 指数增长 / 衰减:变化率正比于现有量,dtdy=ky,解为 y=y0ekt。k>0 是增长(人口、复利),k<0 是衰减(放射性衰变、冷却、药物代谢)。「越多增得越快 / 越多减得越快」的现象都归此型。
- 简谐振动:恢复力正比于位移且方向相反,dt2d2y+ω2y=0,解为 y=Acos(ωt+φ)。弹簧振子、单摆小角度、LC 电路都是它。加上阻尼项 2βy′ 就回到上面三种判别情形——阻尼大小决定振是不振。
例(放射性衰变 / 半衰期):衰变率正比于现有量 dtdN=−λN,解 N=N0e−λt。半衰期 T 满足 2N0=N0e−λT,取对数得 T=λln2——半衰期只由衰变常数决定,与初始量无关。
例(RC 电路充电):电源 E 经电阻 R 给电容 C 充电,由基尔霍夫电压定律 RCdtdu+u=E(u 为电容电压),初值 u(0)=0。这是一阶线性方程,齐次解 ∝e−t/(RC)、特解 u∗=E,故
u(t)=E(1−e−t/(RC))
电压从 0 按指数曲线逼近电源电压 E,时间常数 τ=RC 决定快慢(约 5τ 后基本充满)。放电过程把 E 换成 0,得 u=u0e−t/(RC) 的指数衰减。
例(简谐振动定振幅):弹簧振子 y′′+ω2y=0,初条件 y(0)=A0、y′(0)=0。通解 y=C1cosωt+C2sinωt,代入得 C1=A0、C2=0,故 y=A0cosωt——从最大位移静止释放,做振幅 A0、角频率 ω 的纯余弦振动。