第7章 常微分方程

Tip

微分方程是解决实际问题的重要数学工具. 现实世界中的很多问题, 如天体运动, 空气和水的流动, 疾病的传播等现象都可以用微分方程来描述, 本章的任务是介绍几个典型的微分方程及其求解方法.

7.1 什么是微分方程

Important

顾名思义, 微分方程就是含有微分的等式. 例如

y=dydx=2xy

Caution

微分方程的阶数

微分方程中还可能含有高阶导数, 如 y,y,,y(n), 方程中所包含的最高阶的导数为几阶, 那么我们就称该微分方程为几阶的.

Caution

微分方程的解

满足微分方程的函数 y(x) 称为微分方程的解. 给定 y(x) 很容易判断它是不是一个微分方程的解, 但是反过来却不容易: 事实上, 大部分的微分方程我们是解不出来的. 接下来我们要介绍几类比较简单的能够求解的微分方程.

Note

自由落体的小球

考虑一个自由落体的小球, 忽略空气阻力, 根据牛顿第二定律, 小球在垂直方向上下落的距离 y 随时间 t 变化的函数 y(t) 满足

(1)y(t)=g

方程的右边是一个常数 (重力加速度), 左边是一个二阶导数, 所以这是一个二阶微分方程.

下面我们来求解这个微分方程:

Step 1.

v(t)=y(t), 则原方程可化为:

(2)y(t)=v(t)=g

这是一个关于函数 v(t) 的一阶微分方程. 对该方程两边对自变量 t 做不定积分, 得到

v(t)=gt+C1

容易验证, 这个 v(t) 确实满足上述微分方程, 所以这样我们就求解了该方程.

但有同学可能注意到了, 这个解中含有一个常数 C1, 那我们该拿这个 C1 怎么办呢? 单从微分方程本身我们是没有办法确定 C1 的值的, 但是我们可以根据物理条件来确定 C1 的值, 这样的条件也被称为定解条件.

定解条件1: 小球的初速度为 2m/s, 即 t=0 时, v(0)=2.

带入方程得 C1=2, 于是我们得到

(3)v(t)=gt+2

为满足定解条件1的微分方程 (2) 的解.

Step 2.

接下来我们在 (3) 式的基础上继续求解微分方程 (1). 此时

y(t)=v(t)=gt+2

对等式两边积分得到

y(t)=12gt2+2t+C2

为了确定 C2 的具体数值, 我们需要第二个定解条件.

定解条件2: 小球的初始位置在1米处, 即 t=0 时有 y(0)=1

定解条件1一样, 定解条件2也是来自于物理而非方程本身.

根据定解条件2容易确定, C2=1, 从而微分方程 (1) 的解为

y(t)=12gt2+2t+1.

此时, 方程的解中已经不含有未知数, 也就是说它是微分方程 (1) 和定解条件1&2所确定的唯一解.

Warning

可能有同学已经注意到了, 上个例子中我们所谓的解微分方程不就是在做不定积分吗? 这是对的. 后面我们会体会到, 很多时候求解微分方程都要归结到积分运算.

Note

简谐振动

一维弹簧振子 假设一个质量为 m 的物体连接在弹簧的一端,弹簧另一端固定. 当物体受到弹簧的恢复力作用时,它会在平衡位置附近做简谐振动. 根据胡克定律,弹簧的恢复力与位移 x(t) 成正比,方向与位移相反,其表达式为:

F=kx(t)

其中,k 为弹簧常数,x(t) 为物体相对于平衡位置的位移. 根据牛顿第二定律,力等于质量乘加速度,因此:

F=ma=md2x(t)dt2

将两者代入得到弹簧振子的运动方程:

md2x(t)dt2=kx(t)

整理得:

d2x(t)dt2+kmx(t)=0

ω2=km,方程化为:

d2x(t)dt2+ω2x(t)=0

这就是简谐振动的微分方程.

方程的解

接下来我们来"蒙"一个微分方程的解. 你没有听错, 因为微分方程太难解了, 以至于"蒙"也成了一个合理的办法, 总之不管用什么方法, 只要能找到解就行.

该二阶线性齐次微分方程的通解为:

x(t)=Acos(ωt)+Bsin(ωt)

其中,AB 是由初始条件决定的常数.

定解条件
如果初始时刻 t=0 时,物体的位移为 x(0)=x0,速度为 v(0)=v0,我们可以通过代入初始条件求解 AB

  1. 初始位移条件

x(0)=A=x0
  1. 初始速度条件

v(0)=x(0)=Aωsin(0)+Bωcos(0)=Bω=v0

代入初始条件得到:

x(t)=x0cos(ωt)+v0ωsin(ωt)

这个解描述了弹簧振子在简谐运动中的位移随时间的变化情况.

Note
单摆

单摆的描述 单摆由长度为 L 的细绳和质量为 m 的小球组成,小球在重力作用下绕固定点摆动. 假设摆角为 θ(t),即小球偏离竖直方向的角度,我们将推导其运动方程.

受力分析 小球所受的力主要包括:

  1. 重力 mg,方向竖直向下;

  2. 绳子的张力 T,方向沿绳子向内.

将重力分解为两个方向:

  • 沿绳方向的分力 mgcosθ,被张力抵消;

  • 垂直于绳方向的分力 mgsinθ,产生恢复力矩.

力矩分析 恢复力矩 τ 关于固定点 O 为:

τ=mgLsinθ

根据牛顿第二定律的角度形式,力矩等于转动惯量 I 乘角加速度α

τ=Iα

对于单摆,转动惯量 I=mL2,角加速度α=d2θdt2,因此:

mgLsinθ=mL2d2θdt2

消去 mL 后,得到:

d2θdt2+gLsinθ=0

小角近似 θ 较小时,sinθθ(弧度制),方程简化为:

d2θdt2+gLθ=0

这就是单摆在小角度近似下的简谐运动方程.

方程的解
该方程的解跟简谐振动完全一样.

Note

LC电路
一个理想的LC电路由电感 L 和电容 C 组成. 假设电路中无电阻,电感与电容串联. 电容的电荷量 q(t) 随时间变化,导致电路中的电流 i(t) 也随时间变化. 我们来推导该系统的运动方程.

基本方程

  1. 电容的关系 电容两端的电压 uC(t) 与电荷量 q(t) 的关系为:

uC(t)=q(t)C
  1. 电感的关系 电感两端的电压 uL(t) 与电流变化率 di(t)dt 的关系为:

uL(t)=Ldi(t)dt

由于电流 i(t) 是电荷 q(t) 的时间导数:

i(t)=dq(t)dt

回路方程(基尔霍夫电压定律) 在LC电路中,总电压为零,即:

uL(t)+uC(t)=0

代入电感和电容的表达式:

Ld2q(t)dt2+q(t)C=0

LC震荡方程 将上式整理为标准形式:

d2q(t)dt2+1LCq(t)=0

这就是LC电路的微分方程,描述了电容器电荷随时间的简谐振荡过程.

特征频率 LC电路的特征角频率 ω0 为:

ω0=1LC

这表明LC电路的振荡频率只由电感和电容决定,与初始电荷或电流无关.

Note

地心电梯

牛顿壳层定理 假设一个半径为 R、质量为 M 的均匀球壳,质点 m 位于球壳内部或外部,球壳对质点的引力为

  • rR 时,球壳对质点的引力为:

F=GMmr2
  • r<R 时,球壳对质点的引力为:

F=0

这表明在球壳内部,质点所受引力为零,而在外部,引力遵循经典的万有引力公式,等效于将球壳质量集中于球心.

牛顿壳层定理的微积分推导

  1. 外部质点的引力 取球壳上一个面积元 dA=R2sinθdθdϕ,其中 θ 是极角,ϕ 是方位角. 球壳的面密度 σ=M4πR2,因此面积元的质量:

dm=σdA=M4πR2R2sinθdθdϕ

质点 P 与面积元 dm 之间的距离为:

s=r2+R22rRcosθ

微元 dm 对质点 P 产生的引力:

dF=Gdmms2

由于球壳的对称性,垂直于径向的引力分量会相互抵消,仅剩下沿径向的分量:

dF=dFrRcosθs

dF 对整个球壳积分:

F=02π0πGMm4πR2R2sinθ(rRcosθ)(r2+R22rRcosθ)3/2dθdϕ

计算结果表明,球壳外部的引力等效于质量集中于球心:

F=GMmr2
  1. 外层球壳的引力为零 (也可以用积分计算, 但比较繁琐) 考虑距球心距离为 r 的质点 P,外层的壳质量不影响 P. 引力微元在 P 点的径向和垂直方向上完全抵消,因此外层壳对 P 的引力为:

F=0

穿过地心的电梯在重力作用下的运动方程推导

假设一部电梯沿直线穿过地球中心,从地球表面一端移动到另一端,忽略空气阻力和其他阻力,仅考虑重力作用. 我们将推导电梯在这种情况下的运动方程.

假设地球是一个半径为 R 的均匀密度球体,总质量为 M,密度为 ρ=M43πR3.

在距离地心 r 处,电梯所受引力只来自半径为 r 的球体部分,质量为:

M(r)=ρ43πr3=Mr3R3

根据牛顿引力定律,电梯在距离地心 r 处的引力为:

F(r)=GM(r)mr2=GMmrR3

因此,重力加速度为:

g(r)=GMR3r

电梯在重力作用下的加速度为 g(r),即:

d2rdt2=GMR3r

这就是一个简谐振动方程,其形式为:

d2rdt2+ω2r=0

其中,角频率 ω 为:

ω=GMR3

7.2 可分离变量方程

Tip

这一节我们介绍一类比较简单的微分方程的解法.

Note

速率方程

在这个例子中我们考虑一阶微分方程

(4)dydt=ky

其中 k 为常数. 方程 (4) 是一类非常重要的微分方程, 方程左边是 y 随时间的变化率, 整个方程则表示 y 的瞬时变化率与 y 在当前时刻的值成正比. 这类方程在实际问题中十分常见, 下面我们看两个实例.

情景1: 传染病

考虑一个传染病爆发的场景, 我们用 y(t) 表示 t 时刻感染者的数目. 由于疾病的传播依赖于人和人的接触, 所以当前的感染者 y(t) 约多, 新增的感染人数就会越大. 我们用一个系数 k 来表示这个病的传播能力, 可以理解为在单位时间内一个感染者 (平均) 能够传染 k 个人. 因此在过了 Δt 的时间后, t0+Δt 时刻的感染者人数等于 t0 时刻的感染者人数加上 Δt 这段时间内新增的感染者人数, 即

(5)y(t0+Δt)y(t0)+ky(t0)Δt

注意这里时约等于, 因为在 Δ 这段时间内, 感染者的人数并总是不严格等于 y(t0) 的, 但是如果 Δt 取得很小, 那么 y 的变化也非常小 (y(t) 的连续性), 从而可以近似看成常数 y(t0).

通过对公式 (5) 进行变换可以得到

y(t0+Δt)y(t0)Δtky(t0)

根据上面的分析, 当我们让 Δt 区域 0 时, 左边趋近于 y(t0), 而约等号也会"趋近于"等号, 因此我们得到

y(t0)=ky(t0)

上式中把 t0 换成 t, 就得到微分方程 (4).

情景2: 化学反应

考虑一个放射性元素的衰变过程,我们用 y(t) 表示 t 时刻剩余的放射性原子数. 放射性元素的衰变是一个随机过程,每个原子都有一定的概率在单位时间内发生衰变,因此衰变的速率与当前剩余的原子数成正比。我们用一个常数 k 来表示这种衰变率,称为衰变常数,即单位时间内一个原子发生衰变的概率.

在时间 Δt 之后,剩余的放射性原子数 y(t0+Δt) 可以表示为 t0 时刻的原子数减去这段时间内衰变的原子数:

y(t0+Δt)y(t0)ky(t0)Δt

注意这里的负号表示原子数目在减小, 而约等于号表示在 Δt 时间内,衰变速率近似保持恒定,因为当 Δt 很小时,y(t) 变化非常小,y(t0) 可以被近似看作常数.

对上式整理并移项得到:

y(t0+Δt)y(t0)Δtky(t0)

当我们令 Δt0 时,左边趋近于 y(t0),约等号也趋近于等号,因此得到:

y(t0)=ky(t0)

t0 换成一般的 t,同样得到微分方程 (4), 只是系数变成了负数.

下面我们来"蒙"方程(4)的解. 我们知道, et 的导数等于它自己, 因此 et 是满足微分方程 y=y 的一个解. 对 ex 进行适当边形, 可以构造出 (4) 的解为

y(t)=Cekt

其中 C 为一个参数, 依赖于定解条件.

情景1中, 假设初始时刻 t=0 时感染者的人数 y(0)=100, 可以得到 C=100. 于是 t 时刻的感染者等于

y(t)=100ekt

我们经常听到传染病人数"指数型增长"的可怕说法, 背后对应的就是这个数学公式. 当然, 实际情况下指数增长只是在传染病爆发的初期出现, 随着时间的增长, 未感染的群体数目会减小, 还有一部分感染者将被治愈, 这时微分方程 (4) 就不再成立了, 需要用一个新的微分方程来描述.

情景2中,假设初始时刻 t=0 时放射性原子的数目 y(0)=N0,因此微分方程

y=ky

的解为:

y(t)=N0ekt

这个公式描述了放射性原子数目随时间的指数型衰减. 与传染病的"指数型增长"相反,放射性衰变是一种指数型减少的过程.

在实际情况中,放射性衰变是一个非常稳定的过程,不受外界环境的影响,因此微分方程 y(t)=ky(t) 可以长期成立,直至几乎所有原子都完成衰变. 我们常用半衰期 T12 来描述这个衰变过程,即原子数目减少到初始值一半所需的时间. 通过解方程 y(T12)=N02,可以得到:

T12=ln2k

半衰期是一个重要的物理量,它使得我们可以通过简单的实验观测来确定衰变常数 k,从而了解放射性物质的衰变特性.

Important

可分离变量方程的求解

方程 (4) 的求解其实可以不通过"蒙", 而是通过一种叫做 "separation of variables" 的技巧求解. 注意到 (4) 可以变形为

dyy=kdx

注意到上式有这么一个特点: 左边只含有变量 y, 右边只含有变量 x, 具有这个性质的微分方程就是可分离变量的微分方程. 这类方程的求解方法为分别对等式左右两边积分, 对上式而言, 可以得到

lny=kx+C~

从而

y=ekx+C~=Cekx

这正是我们刚才猜到的解的形式.

Note

求解方程 y=y2x2

: 方程可转换为变量分离的形式:

dyy2=dxx2

对等式两边积分得到

1y=1x+C

y=x1+kx

其中 k 为常数.

7.3 常系数一阶线性微分方程

Tip

本节我们在上一节所介绍的速率方程的基础上进一步扩充, 考虑形如 y=ky+b 的方程. 这类方程在实际应用中也经常出现, 属于一阶线性微分方程, 它比速率方程多了一个右端项 b, 这一节我们首先考虑系数 k, b 都是常数的情形. 下一节我们将考虑更加复杂的 k(x), b(x)x 变化的情形.

Note

例: 恒定速率的降温过程(牛顿冷却定律)

模型描述
牛顿冷却定律描述了物体与周围环境之间的温度变化过程,其微分方程模型为:

dTdt=k(TTenv)

其中:

  • T(t):物体在时间 t 的温度.

  • Tenv:环境温度(常数).

  • k:冷却系数,k>0.

求解过程(分离变量法)

  1. 将方程整理为:

dTTTenv=kdt
  1. 对两边积分:

dTTTenv=kdt
  1. 积分结果为:

ln|TTenv|=kt+C
  1. 通过指数函数解出 T

TTenv=C1ekt

其中 C1=eC 为任意常数.

  1. 利用初始条件 T(0)=T0,求出 C1

T0Tenv=C1
  1. 最终解为:

T(t)=Tenv+(T0Tenv)ekt

解释 物体的温度逐渐趋近于环境温度 Tenv,冷却速度由系数 k 控制.

Note

例: 简单贷款偿还模型

模型描述 贷款偿还模型描述了借款人以恒定利率和固定还款额偿还贷款的过程,其微分方程为:

dBdt=rBP

其中:

  • B(t):时间 t 时剩余的贷款余额.

  • r:年利率(常数).

  • P:每年固定还款额.

求解过程(分离变量法)

  1. 将方程整理为:

dBrBP=dt
  1. 对两边积分:

dBrBP=dt
  1. 积分结果为:

1rln|rBP|=t+C
  1. 解出 B

rBP=C1ert

其中 C1=erC.

  1. 利用初始条件 B(0)=B0,求出 C1

rB0P=C1
  1. 最终解为:

B(t)=Pr+(B0Pr)ert

解释 如果 P>rB0,余额 B(t) 随时间逐渐减少,最终贷款将被还清;反之,如果 PrB0,贷款余额将持续增长.

7.4 变系数一阶线性微分方程

Tip

本节考虑更加复杂的 k(x), b(x)x 变化的一阶线性微分方程: y=k(x)y+b(x).

Note

例: 城市热岛效应模型讲义

模型描述

城市热岛效应是指由于人类活动和城市结构导致城市温度显著高于周边郊区的现象. 为了描述这种现象,可以使用以下一阶线性微分方程模型:

dTdt=α(t)T+Q(t)

其中:

  • T(t):城市的平均温度(随时间变化).

  • α(t):时间相关的散热系数,表示城市向外部环境散热的效率. 白天,建筑材料吸热,散热效率降低,α(t) 较小. 夜晚,城市散热效率提高,α(t) 较大.

  • Q(t):时间相关的外部热源,包括: 太阳辐射:随时间变化呈现周期性. 人类活动:如车辆排放、工业生产、空调使用等。通常在白天达到高峰.

模型扩展(通常用在数学建模中)

  • 加入风速影响: 散热系数 α(t) 可以扩展为 α(t,vw),其中 vw 为风速. 风速较大时,散热效果增强.

    dTdt=α(t,vw)T+Q(t)
  • 考虑湿度和绿化率: 可以通过引入湿度和绿化率来模拟更复杂的热交换过程:

    dTdt=(α(t)+βH+γG)T+Q(t)

    其中 H 为湿度,G 为绿化率,βγ 为对应的影响系数.

Important

常数变异法

求解变系数的一阶线性微分方程可以使用常数变异法. 过程如下:

step 1 将方程的非齐次项 b(x) 去掉,得到齐次方程:

y=k(x)y

这个方程是可分离变量的,解法为:

dyy=k(x)dx

积分得到:

ln|y|=k(x)dx+C

进一步简化:

yh=Cek(x)dx

这是齐次方程的一般解.

step 2 假设非齐次方程的特解形式为:

yp=u(x)ek(x)dx

其中 u(x) 是待定函数.

step 3 yp=u(x)ek(x)dx 代入原方程 y=k(x)y+b(x),利用链式法则:

yp=u(x)ek(x)dx+u(x)k(x)ek(x)dx

ypyp 代入原方程:

u(x)ek(x)dx+u(x)k(x)ek(x)dx=k(x)u(x)ek(x)dx+b(x)

化简后得:

u(x)ek(x)dx=b(x)

两边同时除以 ek(x)dx

u(x)=b(x)ek(x)dx

积分求解 u(x)

u(x)=b(x)ek(x)dxdx+C

通解为齐次解与特解的叠加:

y=yh+yp=Cek(x)dx+(b(x)ek(x)dxdx)ek(x)dx

最后得到方程的解为:

y=Cek(x)dx+ek(x)dxb(x)ek(x)dxdx

其中 C 是任意常数.

7.5 二阶线性微分方程和微分方程组

Tip

实际问题中经常出现形如

y(x)+Q(x)y(x)+R(x)y(x)=f(x)

的微分方程. 这类方程属于二阶线性微分方程.

Note

带有阻尼和外力的振动方程

考虑一个质量为 m 的物体,固定在弹簧上,弹簧常数为 k,并且系统中存在阻力(或阻尼),阻力与速度成正比,比例常数为 c. 此外,系统受到一个外力 F(t) 的作用. 我们的目标是建立该系统的运动方程.

系统的受力分析为:

  • 弹簧力:根据胡克定律,弹簧的恢复力是与物体的位移 x(t) 成正比的,方向与位移相反,表达式为:

    Fspring=kx(t)
  • 阻尼力:阻尼力与物体的速度 dxdt 成正比,方向与速度相反,表达式为:

    Fdamping=cdxdt
  • 外力:外力 F(t) 是已知的外部作用力.

根据牛顿第二定律,物体的加速度 d2xdt2 与合力之比为物体的质量:

md2xdt2=Fspring+Fdamping+F(t)

将各个力代入:

md2xdt2=kx(t)cdxdt+F(t)

将上式整理得到标准形式的二阶线性微分方程:

d2xdt2+cmdxdt+kmx(t)=F(t)m

这就是有外力的阻尼震荡方程.

  • F(t)=0 时,方程为齐次方程,描述的是自由阻尼振动:

    d2xdt2+cmdxdt+kmx(t)=0
  • F(t)0 时,如 F(t)=hsin(ωt), 方程为非齐次方程,描述的是有外力作用下的阻尼振动.

    d2xdt2+cmdxdt+kmx(t)=hmsin(ωt)

Warning

前面我们考虑的简谐振动方程可以看成是二阶线性微分方程的特例, 但一般的二阶线性微分方程求解是非常困难的, 需要通过引入新变量的方法将高阶(二阶)线性微分方程转化为一阶线性线性微分方程组.

例如对方程

y+py+qy=0

我们可以令 v(t)=y(t), 则

{y=uu=puqy

求解这类一阶线性线性微分方程组需要在高维线性空间中进行, 需要一些线性代数的知识, 因此这部分内容我们将在下学期再介绍.

Tip

由多个微分方程联立得到微分方程组, 刚才的例子就是一个微分方程组. 实际问题中微分方程组也十分的常见.

Note

Lotka-Volterra 模型

Lotka-Volterra 模型是一个经典的捕食-猎物模型,用于描述捕食者与猎物之间的相互作用. 该模型由两个微分方程组成,分别描述猎物和捕食者的动态变化. 模型的标准形式为:

dxdt=αxβxy
dydt=δxyγy

其中:

  • x(t) 是猎物(兔子)的数量,

  • y(t) 是捕食者(狼)的数量,

  • α 是猎物的自然增长率(不受捕食者影响时),

  • β 是捕食者捕食猎物的效率,

  • δ 是捕食者的繁殖率(每捕食一只猎物,捕食者的种群数量增加的比例),

  • γ 是捕食者的死亡率(不受食物影响时).

这个模型是一个非线性方程组,常用于描述生态系统中捕食者和猎物的动态交互关系.

Note

行星运动方程

d2xdt2=GM(x2+y2+z2)3/2x
d2ydt2=GM(x2+y2+z2)3/2y
d2zdt2=GM(x2+y2+z2)3/2z

该方程组描述了行星在三维空间中的运动.