自在学

我们与你共同进步

  • 分类课程
  • 文章
  • 工作台
  • 订阅

  • 关于我们
  • 隐私政策
  • 使用条款

探索

  • 分类课程
  • 文章
  • 工作台
  • 订阅

网站信息

  • 关于我们
  • 隐私政策
  • 使用条款

加入社区

自在学学习社区微信二维码

微信扫码,交流学习

株洲市自在学教育科技有限公司© 2025 - 2026 版权所有

© 2025 - 2026 株洲市自在学教育科技有限公司 版权所有

湘公网安备43020302000292号|湘ICP备2025148919号-1
分类课程工作台文章订阅
分类课程工作台文章价格

常微分方程 I

  1. 01常微分方程研究什么
  2. 02建模、初值问题与解的几何图像
  3. 03可分离变量方程
  4. 04一阶线性方程与积分因子
  5. 05精确方程、替换法与一阶方程工具箱
  6. 06存在唯一性、自治方程与相线
  7. 07一阶模型:从真实情境到方程
  8. 08数值方法:沿着变化率,一步步算出解
  9. 09二阶线性方程的结构
  10. 10常系数齐次方程与自由振动
  11. 11非齐次方程、待定系数法与共振
  12. 12变参数法与解的构造思想
  13. 13Laplace 变换:把初值和输入一起带进代数方程
  14. 14Laplace 变换 II:阶跃、冲击与卷积
  15. 15幂级数解法:把未知函数一项一项算出来
  16. 16一阶线性系统与矩阵方法
  17. 17平面线性系统、相图与稳定性
  18. 18非线性系统入门与综合建模
正在加载课程章节内容
课程数学常微分方程 I建模、初值问题与解的几何图像

建模、初值问题与解的几何图像

上一章我们跨过了一道门槛:微分方程要找的未知数是一整个函数。知道 y′=2yy'=2yy′=2y,就知道这条函数曲线怎样配合自己的斜率;再给出 y(0)=5y(0)=5y(0)=5,才有机会从许多可能的曲线里选出我们关心的那条。

可是一杯咖啡放在桌上,题目并不会自己长成 y′=f(t,y)y'=f(t,y)y′=f(t,y) 的样子。我们得先决定观察什么、怎样计时,再把“凉得越来越慢”翻译成变化率。这一步做错了,后面的积分即使算得再漂亮,也只是在认真回答另一个问题。

这一章就从这里接着往下走:把具体现象写成初值问题,再把方程画成一张斜率地图。我们还不需要掌握新的求解技巧,就能判断曲线往哪里走,哪些图像绝不可能是答案。等下一章开始真正求函数时,这些判断会成为检查计算的依据。


先把我们观察的东西说清楚

想知道一杯热饮过多久适合饮用,我们最直接关心的是温度随时间怎样变化。于是约定:从热饮放到桌上的那一刻开始计时,ttt 表示经过的分钟数,T(t)T(t)T(t) 表示那时的温度,单位是摄氏度。

这一句看起来只是“设变量”,其实已经做了几项选择。我们用一个温度代表整杯液体,相当于忽略杯内各处的温度差;我们只研究放到桌上以后的过程,所以现实里的时间范围是 t≥0t\geq0t≥0;我们还默认在观察期间没有再倒热水、没有端去加热。假如这些情况发生了,原来的规律就需要调整。

接着看导数。T(5)T(5)T(5) 是放置 555 分钟时的温度,T′(5)T'(5)T′(5) 是那一刻温度变化的快慢。前者的单位是 ∘C^\circ\mathrm C∘C,后者是 ∘C/min^\circ\mathrm C/\mathrm{min}∘C/min。如果 T′(5)=−3T'(5)=-3T′(5)=−3,意思是在第 555 分钟附近,温度正以每分钟约下降 3∘C3^\circ\mathrm C3∘C 的瞬时速率变化;它并没有承诺此后每一分钟都下降 333 度。

“附近”和“瞬时”为什么不能省?因为再过一会儿,热饮已经没那么热,降温速度也会跟着变。导数描述的是当前这一刻,有限时间里的实际变化则要把整段时间的变化率累积起来。

存量与变化率不要写在同一个位置

换一个容易算清楚的场景。一个水箱原来有 353535 升水,水龙头每分钟流入 666 升,排水口每分钟流出 222 升。假设这两个流量保持不变,且水箱还没装满。令 V(t)V(t)V(t) 表示水量,单位是升。

每分钟净增加的水是 6−2=46-2=46−2=4 升,因此模型是

V′(t)=6−2=4,V(0)=35.V'(t)=6-2=4,\qquad V(0)=35.V′(t)=6−2=4,V(0)=35.

这里不能写 V=6−2V=6-2V=6−2:等号左边若是水量,单位是升;右边是流量,单位是升每分钟,两边根本不是同一种东西。正确写成导数以后,积分只是熟悉的微积分:

V(t)=4t+C.V(t)=4t+C.V(t)=4t+C.

由 V(0)=35V(0)=35V(0)=35 得到 C=35C=35C=35,所以 V(t)=35+4tV(t)=35+4tV(t)=35+4t。放水 555 分钟后,水箱有 555555 升水。

如果水箱容量是 757575 升,这个预测就不能无限使用。令 35+4t=7535+4t=7535+4t=75,算出 t=10t=10t=10 分钟;从装满以后开始,溢出或阀门变化会改变原来的收支。函数 35+4t35+4t35+4t 在数学上还能继续取值,但“箱中水量”的解释只适用于装满之前以及刚装满的时刻。

这个小例子已经包含一套完整的建模动作:确定存量,比较流入与流出,写出导数,补上开始时的数值,最后检查模型能用到什么时候。后面遇到盐量、药物含量、电荷量,变化率的收支思路还会出现。


冷却方程是怎样从一句话里长出来的

回到桌上的热饮。刚放下时凉得快,接近室温后凉得慢,提示我们关注的量是它与环境相差多少度。一杯 40∘C40^\circ\mathrm C40∘C 的水放在 20∘C20^\circ\mathrm C20∘C 的房间,与放在 35∘C35^\circ\mathrm C35∘C 的房间里,散热情况显然不同。只看水温 404040 这个数,还不够。

令环境温度为常数 TaT_aTa​。一个常用近似是:在考察的温度范围内,温度变化率与温差成正比,热交换总是让温差缩小。于是写成

dTdt=−k(T−Ta),k>0.\frac{dT}{dt}=-k(T-T_a),\qquad k>0.dtdT​=−k(T−Ta​),k>0.

这就是牛顿冷却模型。把式子从左读到右:温度变化的速度,等于一个正比例系数,乘上当前温差,再加一个让温差缩小的负号。

先不积分,我们就能检查三种情况。热饮高于室温时,T−Ta>0T-T_a>0T−Ta​>0,所以 T′<0T'<0T′<0,温度下降。饮料低于室温时,T−Ta<0T-T_a<0T−Ta​<0,所以 T′>0T'>0T′>0,温度上升。恰好等于室温时,右边为零,温度不再变化。同一个方程也能描述冷饮回温,“冷却”这个名称没有把升温排除在外。

这里的 kkk 不是所有杯子共用的神奇数字。容器、液体量、空气流动等条件变化后,合适的 kkk 可能变化。把它当常数,是假设这些条件在本次观察期间基本稳定。还要假设环境温度近似不变,并用一个平均温度代表整个物体;若环境明显升温,或者物体内部温差很大,就不能原封不动沿用这个最简单的式子。

单位告诉我们参数是什么意思

如果时间用分钟,左边单位是摄氏度每分钟,右边温差单位是摄氏度,所以 kkk 必须带有 min−1\mathrm{min}^{-1}min−1 的单位。假设取 k=0.08 min−1k=0.08\,\mathrm{min}^{-1}k=0.08min−1、Ta=22∘CT_a=22^\circ\mathrm CTa​=22∘C,那么温度高出室温 101010 度时,变化率是 −0.8∘C/min-0.8^\circ\mathrm C/\mathrm{min}−0.8∘C/min;高出 202020 度时,变化率是 −1.6∘C/min-1.6^\circ\mathrm C/\mathrm{min}−1.6∘C/min。

注意成正比的是变化率与温差。不能把 k=0.08k=0.08k=0.08 读成“每分钟下降 0.080.080.08 度”,也不能严格读成“每过一分钟温差一定减少 8%8\%8%”。这是连续时间的瞬时比例,整整一分钟内温差还在变化,精确减少的比例需要通过解函数计算。

换时间单位时,参数的数值也要跟着换。令 τ\tauτ 表示秒数,原来的分钟数是 t=τ/60t=\tau/60t=τ/60。用 Θ(τ)=T(τ/60)\Theta(\tau)=T(\tau/60)Θ(τ)=T(τ/60) 表示同一个温度过程,链式法则给出

dΘdτ=160dTdt=−0.0860(Θ−22).\frac{d\Theta}{d\tau} =\frac{1}{60}\frac{dT}{dt} =-\frac{0.08}{60}(\Theta-22).dτdΘ​=601​dtdT​=−600.08​(Θ−22).

以秒计时,系数就是 0.08/60 s−10.08/60\,\mathrm{s}^{-1}0.08/60s−1。物理过程没有变,我们只是换了一把时间尺子。若换成秒以后仍写 0.080.080.08,就把实际变化速度放大了 606060 倍。

单位相符是模型必须通过的检查,但它不能独自证明模型正确。T′=−k(T−Ta)T'=-k(T-T_a)T′=−k(T−Ta​) 与 T′=k(T−Ta)T'=k(T-T_a)T′=k(T−Ta​) 的单位都能对上;后一个却让热物体越来越热。还要检查符号、假设和变量的现实范围。


初始条件给解曲线指定一个出发点

现在变化规律已经有了,但只给

T′=−0.08(T−22)T'=-0.08(T-22)T′=−0.08(T−22)

仍然不能回答“十分钟后多少度”。刚泡好的热饮和刚从冰箱拿出的饮料,起初相差几十度,即使遵守同样的规则,也会有不同的温度曲线。

如果开始时热饮是 90∘C90^\circ\mathrm C90∘C,我们补上 T(0)=90T(0)=90T(0)=90,得到

T′=−0.08(T−22),T(0)=90.T'=-0.08(T-22),\qquad T(0)=90.T′=−0.08(T−22),T(0)=90.

这两条信息合起来叫初值问题。第一条在平面上的每个位置规定斜率,第二条要求曲线经过 (0,90)(0,90)(0,90)。常见的一阶初值问题统一写成

y′=f(t,y),y(t0)=y0.y'=f(t,y),\qquad y(t_0)=y_0.y′=f(t,y),y(t0​)=y0​.

f(t,y)f(t,y)f(t,y) 的输入是当前时刻和当前状态,输出是此刻的变化率。t0t_0t0​ 是我们已经知道状态的时刻,y0y_0y0​ 是那时测得或指定的状态值。

“初始”不意味着时间必须是零。比如只在放置 555 分钟后量到温度 606060 度,就可以给出 T(5)=60T(5)=60T(5)=60。把测量时刻改叫新时间的零点也可以,但要相应改写所有时间信息。若方程右边直接依赖时间,时间平移后右边的表达式也可能改变,不能只把初值里的 555 擦掉。

一次状态测量与一次速率测量,各自提供什么

假设环境温度是 222222 度,某一刻物体温度为 626262 度,同时观测到温度变化率为 −2∘C/min-2^\circ\mathrm C/\mathrm{min}−2∘C/min。在这个简化模型中,把这对数值代入变化规律:

−2=−k(62−22)=−40k.-2=-k(62-22)=-40k.−2=−k(62−22)=−40k.

所以 k=0.05 min−1k=0.05\,\mathrm{min}^{-1}k=0.05min−1。如果把该时刻选作零点,完整初值问题就是

T′=−0.05(T−22),T(0)=62.T'=-0.05(T-22),\qquad T(0)=62.T′=−0.05(T−22),T(0)=62.

温度测量给出起点,温度与速率的配对测量帮助确定参数。只知道环境温度和初温,一般还不能算出 kkk;不同材质、不同容器都可以从同一温度开始,却降得快慢不同。

还要留一个数学上的分寸:有了方程和初值,是否一定能选出唯一曲线,需要满足相应的存在与唯一性条件。我们本章主要使用的冷却方程和 y′=t−yy'=t-yy′=t−y 都符合这些条件。一般方程不能单凭“写了一个初值”就宣布问题已有唯一答案,后面会专门说明。


怎样确认一条曲线真的是解

初值点好找,经过它的曲线却有无数条。直线、抛物线、指数曲线都可以穿过 (0,90)(0,90)(0,90),真正的解还必须在经过的每一个位置 服从同一个斜率规则。

用数学语言说,如果 y=ϕ(t)y=\phi(t)y=ϕ(t) 在一个区间内可微,并且区间内每一个 ttt 都满足

ϕ′(t)=f(t,ϕ(t)),\phi'(t)=f(t,\phi(t)),ϕ′(t)=f(t,ϕ(t)),

它才是方程在这个区间上的解。若还满足 ϕ(t0)=y0\phi(t_0)=y_0ϕ(t0​)=y0​,而且该区间包含 t0t_0t0​,它就是相应初值问题的解。只在某一个时刻碰巧把等号两边算成一样,还远远不够。

来看一个无量纲的练习模型

y′=t−y,y(0)=1.y'=t-y,\qquad y(0)=1.y′=t−y,y(0)=1.

这里暂不赋予 t,yt,yt,y 物理单位,只研究曲线与斜率的关系。有人给出候选函数

ϕ(t)=t−1+2e−t.\phi(t)=t-1+2e^{-t}.ϕ(t)=t−1+2e−t.

我们现在还没有学怎么找出它,但检查它只需要求导。左边是

ϕ′(t)=1−2e−t,\phi'(t)=1-2e^{-t},ϕ′(t)=1−2e−t,

右边把 yyy 换成候选函数后是

t−ϕ(t)=t−(t−1+2e−t)=1−2e−t.t-\phi(t)=t-(t-1+2e^{-t})=1-2e^{-t}.t−ϕ(t)=t−(t−1+2e−t)=1−2e−t.

两边对所有实数 ttt 都相等,再算 ϕ(0)=−1+2=1\phi(0)=-1+2=1ϕ(0)=−1+2=1,初值也符合。因此它确实是解,而且在整个实数轴上都有意义。

再看另一条候选曲线 ψ(t)=1−t\psi(t)=1-tψ(t)=1−t。它也经过 (0,1)(0,1)(0,1),甚至初始斜率 ψ′(0)=−1\psi'(0)=-1ψ′(0)=−1 也恰好等于 0−10-10−1。但沿着这条直线,右边变成

t−ψ(t)=2t−1,t-\psi(t)=2t-1,t−ψ(t)=2t−1,

左边却始终是 −1-1−1,除 t=0t=0t=0 外就对不上了。起点对、最初方向对,都不足以保证整条曲线对。变化规律必须沿途持续成立。

解函数的图像叫解曲线,也常在一阶方程的语境中称为积分曲线。在本章我们把曲线画成 yyy 随 ttt 变化的图像;更一般的隐式积分曲线可能需要分成几段才能各自表示一个函数,不能把同一时刻对应多个高度的一整条曲线当成单个解函数。


把方程铺成一张方向场

上面的检查反过来想,会出现一个很有用的办法。我们虽然不知道解曲线经过哪些位置,却已经能算出:如果它经过某个位置,那里的斜率必须是多少。

仍然看 y′=t−yy'=t-yy′=t−y。在 (0,1)(0,1)(0,1) 处,斜率是 −1-1−1;在 (1,3)(1,3)(1,3) 处,斜率是 −2-2−2;在 (2,1)(2,1)(2,1) 处,斜率是 111;在 (2,2)(2,2)(2,2) 处,斜率是 000。把这些点附近各画一小段具有相应斜率的线,再选更多点,就得到方向场,也叫斜率场。

方程 y'=x-y 的方向场、局部斜率和三条积分曲线
方向场把方程中的斜率规则画出来,积分曲线沿着这些局部方向前进。

这里图中若用 xxx 标横轴,它与正文的 ttt 都表示自变量,斜率规则相应写成 y′=x−yy'=x-yy′=x−y。阅读时先确认坐标名称,再代入对应数值。

方向场里的短线像沿路放好的小路标。它没有替我们连成完整路线,只规定了解经过这里时的切线方向。选定初值点后,曲线要一边往右延伸,一边调整倾斜程度,使每个位置都服从附近的斜率。

短线的长度不告诉你变化有多快

画图软件常把所有短线画得差不多长,方便看清。斜率 111 与斜率 555 的短线可能一样长,但后者更陡。真正描述 yyy 对 ttt 的变化率的是倾斜程度所对应的斜率值,不是线段长度。

也不要把这张 ttt-yyy 图当成一个物体在地面上运动的地图。横轴是时间,纵轴是状态,它们甚至可能使用不同单位。若 yyy 是温度,斜率单位是度每分钟;不能把图上短线的欧氏长度叫作物体的“速度大小”。相平面里两个状态变量组成的向量场,会在课程后半段出现,那时我们再仔细区分。

坐标刻度也会影响肉眼看到的角度。把横轴拉长两倍,同一个温度过程画出来就会显得平缓些;变化规律却没有变。比较曲线陡峭程度时,应在相同坐标刻度下比较,或者直接读取导数数值。

顺着当前斜率走一点,不能一直走到底

从 (0,1)(0,1)(0,1) 出发,初始斜率是 −1-1−1,所以很短的 hhh 时间以后,可以用切线估计

y(h)≈1−h.y(h)\approx1-h.y(h)≈1−h.

取 h=0.1h=0.1h=0.1,估计得到 y(0.1)≈0.9y(0.1)\approx0.9y(0.1)≈0.9。到了附近的新位置 (0.1,0.9)(0.1,0.9)(0.1,0.9),斜率规则已经变成 0.1−0.9=−0.80.1-0.9=-0.80.1−0.9=−0.8,不再是 −1-1−1。这正是曲线会弯而直线近似不能无限延长的原因。

用刚验证过的精确函数核对一下:

y(0.1)=0.1−1+2e−0.1≈0.909675.y(0.1)=0.1-1+2e^{-0.1}\approx0.909675.y(0.1)=0.1−1+2e−0.1≈0.909675.

一次切线估计略低于精确值,说明“沿方向场走”在计算中往往得到近似结果。后面的数值方法会研究怎样选步长、怎样减小误差;这里先看清楚为什么每走一点就要更新斜率。

下面的交互把初值点与解曲线放在同一张方向场上。移动初值时,先用右端计算起点斜率,再观察曲线是否从那里朝相应方向伸出。换初值通常只换被选中的曲线;换方程参数才会改变整张斜率地图。


水平短线出现的地方,未必能一直停住

对 y′=t−yy'=t-yy′=t−y,令右边等于零,得到 y=ty=ty=t。因此斜直线 y=ty=ty=t 上每一点的方向场短线都水平。这个结论很容易被误读成“y=ty=ty=t 是一条解”,我们直接验证就能发现问题。

如果真令 y(t)=ty(t)=ty(t)=t,左边 y′=1y'=1y′=1,右边 t−y=0t-y=0t−y=0,两边不同。图上那条斜线的作用,是把“斜率暂时为零的位置”串在一起;它自己并没有沿着那些水平短线前进。这类由 f(t,y)=0f(t,y)=0f(t,y)=0 给出的点集,常叫零斜率线。

零斜率线两侧的方向很容易判断。在 y>ty>ty>t 的区域,t−y<0t-y<0t−y<0,曲线下降;在 y<ty<ty<t 的区域,t−y>0t-y>0t−y>0,曲线上升。但解曲线会移动,零斜率线本身也随着时间升高,因此一条曲线可能先降后升。

我们已经验证的那条解就是例子:

y(t)=t−1+2e−t,y′(t)=1−2e−t.y(t)=t-1+2e^{-t},\qquad y'(t)=1-2e^{-t}.y(t)=t−1+2e−t,y′(t)=1−2e−t.

令 y′=0y'=0y′=0,得到 e−t=1/2e^{-t}=1/2e−t=1/2,所以转折时刻是 t=ln⁡2t=\ln2t=ln2。此前导数为负,此后为正,于是这里是最低点。代回原函数:

y(ln⁡2)=ln⁡2−1+2⋅12=ln⁡2.y(\ln2)=\ln2-1+2\cdot\frac12=\ln2.y(ln2)=ln2−1+2⋅21​=ln2.

最低点正好在零斜率线 y=ty=ty=t 上。曲线在那里短暂地放平,然后继续向上,并没有沿着这条零斜率线走下去。

平衡解为什么必须再检查一次

如果一个状态可以始终保持为常数 ccc,即 y(t)≡cy(t)\equiv cy(t)≡c,我们称它为平衡解。常数函数的导数为零,所以必须在整段时间里都有 f(t,c)=0f(t,c)=0f(t,c)=0。

对自治方程

y′=g(y),y'=g(y),y′=g(y),

右边不显含时间,事情就简单了:找到 g(c)=0g(c)=0g(c)=0,常数函数 y≡cy\equiv cy≡c 就满足方程。方向场在同一高度的短线斜率都相同,平衡解对应的是整条水平直线。

冷却模型的 T≡TaT\equiv T_aT≡Ta​ 正是这种情况:只要环境保持 TaT_aTa​,物体已经处在这个温度,就可以一直停在这里。相比之下,y′=t−yy'=t-yy′=t−y 没有常数平衡解,因为没有一个固定的 ccc 能让 t−ct-ct−c 在所有时刻都等于零。


资源有限时,方向场能提前告诉我们什么

一个培养皿中的细菌越多,新增细菌通常也越多;但营养和空间有限,不能永远按相同比例增长。一种简化假设是:每单位细菌的净增长率,随着总体数量增加而线性降低,达到容量水平时恰好降到零。

令 P(t)P(t)P(t) 表示种群数量,r>0r>0r>0 表示种群很小时的增长率,K>0K>0K>0 表示容量水平。把刚才那句话写成式子,就是

P′=rP(1−PK).P'=rP\left(1-\frac{P}{K}\right).P′=rP(1−KP​).

这是逻辑斯蒂模型。P/KP/KP/K 必须没有单位,所以 PPP 与 KKK 使用同一种数量单位;rrr 的单位是时间的倒数。它把个体数量近似当成连续可微的量,适合看较大种群的总体趋势,也假设 r,Kr,Kr,K 在研究期间保持不变。

为了把斜率算得更具体,我们暂用无量纲时间和数量 yyy,考察 r=1r=1r=1、K=4K=4K=4 的形式:

y′=y(1−y4).y'=y\left(1-\frac{y}{4}\right).y′=y(1−4y​).

先看两处特别的高度。y=0y=0y=0 时没有种群,模型中的增长项也是零;y=4y=4y=4 时资源限制恰好抵消增长。它们给出两条平衡解 y≡0y\equiv0y≡0 和 y≡4y\equiv4y≡4。

在 0<y<40<y<40<y<4 之间,两个因子都为正,所以解向上走。在 y>4y>4y>4 的区域,第一项为正,括号里的项为负,所以解向下走。比如 y=1y=1y=1 时导数是 3/43/43/4,y=3y=3y=3 时也是 3/43/43/4,而 y=6y=6y=6 时导数是 −3-3−3。高于容量不意味着模型“不能算”;它预测在这种拥挤状态下数量会减少。

这些斜率提示正初值的解会靠近 444,但“箭头朝上”本身只说明增长,不能单独证明终点在哪里。这里还能多想一步:本方程右端是光滑函数,解不会与平衡解在有限时刻相遇后再分叉;从 000 与 444 之间出发,解便保持增长且不越过 444,从 444 上方出发则下降且不越过 444。它们在向前时间里保持有界,因此能继续延伸,并有一个极限。

如果这个极限是某个严格介于 000 与 444 的数 LLL,那么 L(1−L/4)>0L(1-L/4)>0L(1−L/4)>0。根据连续性,靠近 LLL 时增长速度仍会大于某个正数,曲线就会不断向上走,不可能停在 LLL 附近。上方出发的情形同理:若极限严格大于 444,下降速度不会趋于零。因此正初值的长期极限只能是 444。

我们先把这当作方向场配合简单推理得到的结论。后面会用相线进一步整理这种分析,也会求出实际函数。现在不必为了讲长期趋势,提前背下一整条逻辑斯蒂解公式。

模型只把 y≥0y\geq0y≥0 的部分解释为种群数量。负数区域虽然还能计算斜率,却不能读成“负细菌”。也不要由 y=4y=4y=4 是模型的长期极限,就断言实际培养皿永久保持某个精确数量;环境变化、随机波动与离散个体都被这个简化模型省略了。


解曲线为什么通常不能在途中分叉

前面说冷却曲线不会穿过室温线,逻辑斯蒂曲线不会穿过容量线,背后用到了一个条件:经过相关点的解是局部唯一的。

直觉上,如果两条不同的解在 (t∗,y∗)(t_*,y_*)(t∗​,y∗​) 相遇,它们都满足以这个点为起点的同一个初值问题。若这个初值问题只允许一条局部解,两条曲线在附近就必须重合,不能在那里各走各的。只要经过的区域处处满足这种唯一性条件,不同解就不能在共同定义的时间段内相交或分叉。

本课程稍后会使用一个方便检查的充分条件:在某点周围,f(t,y)f(t,y)f(t,y) 与它对 yyy 的偏导数 fy(t,y)f_y(t,y)fy​(t,y) 都连续,就能保证经过该点的解在某个足够小的时间区间内存在且唯一。对 f(t,y)=t−yf(t,y)=t-yf(t,y)=t−y,有 fy=−1f_y=-1fy​=−1;对冷却方程有 fT=−kf_T=-kfT​=−k;逻辑斯蒂方程的右端及其导数也都是连续的。因此这些例子可以放心使用刚才的“不分叉”判断。

但“同一点只有一个斜率”本身并不足以保证唯一性。作为一个提醒,考察

y′=3y2/3,y(0)=0,y'=3y^{2/3},\qquad y(0)=0,y′=3y2/3,y(0)=0,

这里把 y2/3y^{2/3}y2/3 理解为实立方根的平方。y1(t)≡0y_1(t)\equiv0y1​(t)≡0 显然满足方程;y2(t)=t3y_2(t)=t^3y2​(t)=t3 也满足,因为

y2′(t)=3t2=3(t3)2/3.y_2'(t)=3t^2=3(t^3)^{2/3}.y2′​(t)=3t2=3(t3)2/3.

两条曲线在原点相遇,斜率也都等于零,却在原点附近不同。原因在于右端对 yyy 的导数在 y=0y=0y=0 处不满足上述连续性条件。这个例子现在只用于提醒我们不要把常见图像的性质当成无条件规律,完整的唯一性讨论会留到后面。

看方向场时,可以用斜率判断上升与下降;要进一步说“两条解绝不会相遇”“一条解不能离开平衡”,就要知道相应的唯一性条件成立。局部唯一还不等于解能一直存在到任意远的未来,解的有效区间仍需另外检查。


把冷却的规律、图像与数值对在一起

现在把本章的方法完整用在最初的热饮上。环境恒为 22∘C22^\circ\mathrm C22∘C,初温为 90∘C90^\circ\mathrm C90∘C,取 k=0.08 min−1k=0.08\,\mathrm{min}^{-1}k=0.08min−1:

T′=−0.08(T−22),T(0)=90.T'=-0.08(T-22),\qquad T(0)=90.T′=−0.08(T−22),T(0)=90.

起初温差是 686868 度,所以

T′(0)=−0.08⋅68=−5.44  ∘C/min.T'(0)=-0.08\cdot68=-5.44\;^\circ\mathrm C/\mathrm{min}.T′(0)=−0.08⋅68=−5.44∘C/min.

当温度降到 565656 度时,温差减为原来的一半,变化率就是 −2.72∘C/min-2.72^\circ\mathrm C/\mathrm{min}−2.72∘C/min。从这两次计算已经能看出:曲线往下走,但斜率会越来越接近零。

要把“逐渐变平”说得更明确,可以沿着解函数再求一次导数。TaT_aTa​ 和 kkk 都是常数,所以

T′′=−0.08T′.T''=-0.08T'.T′′=−0.08T′.

只要 T>22T>22T>22,就有 T′<0T'<0T′<0,进而 T′′>0T''>0T′′>0。因此温度曲线下降且向上凹,切线从很陡的负斜率慢慢抬向水平。若初温低于 222222 度,则相反:曲线上升且向下凹。

牛顿冷却模型中温度曲线逐渐靠近环境温度
温差越大,曲线越陡;接近环境温度时,斜率趋近于零。

接下来给一个候选函数,用求导来核验;从方程主动找到它的方法留到下一章:

T(t)=22+68e−0.08t.T(t)=22+68e^{-0.08t}.T(t)=22+68e−0.08t.

它的导数为 −5.44e−0.08t-5.44e^{-0.08t}−5.44e−0.08t;把它代入右边,得到 −0.08⋅68e−0.08t-0.08\cdot68e^{-0.08t}−0.08⋅68e−0.08t,两边一致。再算 T(0)=22+68=90T(0)=22+68=90T(0)=22+68=90,所以候选函数通过方程与初值的两项检查。

有了函数,我们可以回答具体数值问题。经过 101010 分钟:

T(10)=22+68e−0.8≈52.55∘C.T(10)=22+68e^{-0.8}\approx52.55^\circ\mathrm C.T(10)=22+68e−0.8≈52.55∘C.

若关心温度何时降到 404040 度,就令 22+68e−0.08t=4022+68e^{-0.08t}=4022+68e−0.08t=40,依次得到

e−0.08t=1868=934,t=10.08ln⁡349≈16.61 分钟.e^{-0.08t}=\frac{18}{68}=\frac{9}{34}, \qquad t=\frac{1}{0.08}\ln\frac{34}{9}\approx16.61\text{ 分钟}.e−0.08t=6818​=349​,t=0.081​ln934​≈16.61 分钟.

这个温度位于初温与室温之间,所以有一个正的到达时间,符合图像。若同样问何时自然降到 181818 度,则方程会要求一个正的指数函数等于负数,根本没有解。公式与“不能冷到环境以下”的判断对上了。

还有一个容易和现实测量混在一起的细节:对任何有限的 t≥0t\geq0t≥0,e−0.08t>0e^{-0.08t}>0e−0.08t>0,因此模型里 T(t)>22T(t)>22T(t)>22,不会在有限时刻恰好达到室温。真实温度计分辨不出足够小的温差时,会显示与室温相同的读数;这不等于模型预测发生了穿越。

指数里的 0.08t0.08t0.08t 没有单位,也与前面的单位分析一致。686868 度表示初始温差,它每过一分钟实际乘以 e−0.08≈0.9231e^{-0.08}\approx0.9231e−0.08≈0.9231,也就是减少约 7.69%7.69\%7.69%,这解释了为什么连续衰减系数 0.080.080.08 不能直接读成整分钟减少 8%8\%8%。


算完以后,还要回到问题本身

我们刚才分别查了单位、初值、导数和趋势。这几项检查各管一件事:单位错误常说明把存量和流量混在一起;初值不符说明选错了曲线;导数代回不成立说明计算出了问题;图像与现象相反则可能暴露符号或模型假设的问题。

模型合理性检查的三角框架:单位检查、极端情况、图像趋势
先用简单检查拦住明显不合理的模型,再进入更复杂的计算。

还可以试一试简单极端情况。冷却模型若取 k=0k=0k=0,就变成 T′=0T'=0T′=0,表示没有热交换、温度不变;若初温本来等于室温,就应该得到水平线。对同样的正初始温差,增大 kkk 后应该更快接近环境温度。一个候选公式连这些简单情况都过不了,就不值得继续拿它做精细预测。

通过数学检查之后,现实检查仍然有自己的工作。22+68e−0.08t22+68e^{-0.08t}22+68e−0.08t 在所有实数时间都有数值,但我们选定的情境是热饮放到桌上以后的 t≥0t\geq0t≥0。即使向未来推算,若途中加热、换杯或环境变温,原模型也需要重建。方程的数学有效区间与模型的实际适用时间,有时并不是同一个范围。

方向场同样有边界。它通常只显示有限窗口和有限数量的短线,窗口外发生什么不能靠猜。若右端在某条线上没有定义,例如 y′=1/yy'=1/yy′=1/y 在 y=0y=0y=0 处没有定义,就不能因为软件在附近画了线,便把解硬连过那里。图像帮助我们思考,具体的定义域与方程条件仍然要检查。

咖啡冷却模型从观察现象到修正假设的六步循环
建模要从观察出发:确定变量和假设,写出变化率与初值,求解后再与实测比较;预测不符时,回到假设重新检查。

练习:先说出趋势,再核对计算

水箱里留下了多少水

一个容量为 909090 升的水箱开始有 303030 升水,每分钟流入 888 升、流出 333 升。假设流量恒定,写出初值问题,求 666 分钟后的水量,并说明模型能沿用到什么时候。

令 V(t)V(t)V(t) 表示 ttt 分钟后的水量,单位为升。净流入是 555 升每分钟,所以

V′=8−3=5,V(0)=30.V'=8-3=5,\qquad V(0)=30.V′=8−3=5,V(0)=30.

积分得 V=5t+CV=5t+CV=5t+C,初值确定 C=30C=30C=30,于是 V(6)=60V(6)=60V(6)=60 升。由 30+5t=9030+5t=9030+5t=90 得 t=12t=12t=12 分钟。模型可描述 0≤t≤120\leq t\leq120≤t≤12 的水量,装满以后必须考虑溢出或改变的流量,不能继续把直线数值解释为箱中实际水量。

药物含量与比例系数的单位

在一个简化的清除模型中,体内某物质的含量 A(t)A(t)A(t) 以与当前含量成正比的速率减少。时间用小时,初始含量为 505050 毫克。当含量为 202020 毫克时,瞬时减少速率为每小时 666 毫克。写出模型,确定比例系数,并检查 A(t)=50e−0.3tA(t)=50e^{-0.3t}A(t)=50e−0.3t 是否满足初值问题。

这里“减少速率为 666”意味着导数是 −6-6−6。写成 A′=−kAA'=-kAA′=−kA 后,有 −6=−20k-6=-20k−6=−20k,所以 k=0.3 h−1k=0.3\,\mathrm h^{-1}k=0.3h−1,初值为 A(0)=50A(0)=50A(0)=50。

候选函数的导数是 −15e−0.3t-15e^{-0.3t}−15e−0.3t,右边 −0.3A-0.3A−0.3A 也是 −15e−0.3t-15e^{-0.3t}−15e−0.3t,且 A(0)=50A(0)=50A(0)=50,因此满足初值问题。若改用分钟,系数应为 0.3/60=0.005 min−10.3/60=0.005\,\mathrm{min}^{-1}0.3/60=0.005min−1。它是一个忽略继续输入等因素的数学模型,实际含量的解释要求 A≥0A\geq0A≥0。

在一张斜率地图上找方向

对 y′=t−yy'=t-yy′=t−y,计算 (0,2)(0,2)(0,2)、(1,−1)(1,-1)(1,−1)、(3,3)(3,3)(3,3) 处的斜率。若所有短线画得一样长,能否说三个位置的变化率大小相同?直线 y=ty=ty=t 是不是解?

三处斜率依次是 −2-2−2、222、000,所以曲线分别向右下、向右上和水平方向延伸。短线等长只是一种画法,变化率由斜率数值给出;这里变化率的绝对值分别为 222、222、000。

y=ty=ty=t 不是解,因为它的导数是 111,而代入右端后为 000。它只是零斜率线,说明真正的解经过这条线时会有水平切线。

候选函数必须沿途接受检查

对于初值问题 y′=t−y, y(0)=2y'=t-y,\ y(0)=2y′=t−y, y(0)=2,分别检查 u(t)=t−1+3e−tu(t)=t-1+3e^{-t}u(t)=t−1+3e−t 与 v(t)=2−2tv(t)=2-2tv(t)=2−2t。其中一条若只在初始时刻满足方程,算不算解?

对第一条,u′=1−3e−tu'=1-3e^{-t}u′=1−3e−t,而 t−u=1−3e−tt-u=1-3e^{-t}t−u=1−3e−t,并且 u(0)=2u(0)=2u(0)=2,所以它是定义在整个实数轴上的解。

对第二条,v′=−2v'=-2v′=−2,而 t−v=3t−2t-v=3t-2t−v=3t−2,只在 t=0t=0t=0 时相等。它虽然经过正确初值点且具有正确初始斜率,却没有在任何包含零点的非退化区间上持续满足方程,所以不是解。

从冰箱拿出来的饮料怎样回温

环境为 24∘C24^\circ\mathrm C24∘C,饮料初温为 6∘C6^\circ\mathrm C6∘C,系数为 k=0.1 min−1k=0.1\,\mathrm{min}^{-1}k=0.1min−1。写出初值问题,判断初始变化率与凹凸方向,再验证 T(t)=24−18e−0.1tT(t)=24-18e^{-0.1t}T(t)=24−18e−0.1t,求 101010 分钟后的温度。

初值问题是

T′=−0.1(T−24),T(0)=6.T'=-0.1(T-24),\qquad T(0)=6.T′=−0.1(T−24),T(0)=6.

起初 T′(0)=−0.1(6−24)=1.8∘C/minT'(0)=-0.1(6-24)=1.8^\circ\mathrm C/\mathrm{min}T′(0)=−0.1(6−24)=1.8∘C/min,饮料正在回温。处于室温以下时 T′>0T'>0T′>0,所以 T′′=−0.1T′<0T''=-0.1T'<0T′′=−0.1T′<0,图像上升且向下凹。

候选函数的导数为 1.8e−0.1t1.8e^{-0.1t}1.8e−0.1t,右边代入后也是这个表达式,且初值为 666。于是

T(10)=24−18e−1≈17.38∘C.T(10)=24-18e^{-1}\approx17.38^\circ\mathrm C.T(10)=24−18e−1≈17.38∘C.

对有限的 t≥0t\geq0t≥0,函数始终低于 242424 度,逐渐从下方靠近环境温度。

容量附近的曲线往哪边走

用无量纲变量考察 y′=y(1−y/4)y'=y(1-y/4)y′=y(1−y/4)。找出平衡解,计算 y=2y=2y=2 与 y=5y=5y=5 时的斜率,并判断分别从这两个初值出发的长期趋势。只说“斜率是正或负”是否已经完整说明极限?

右端为零给出 y=0y=0y=0 和 y=4y=4y=4,它们都是常数平衡解。y=2y=2y=2 时斜率为 2(1−1/2)=12(1-1/2)=12(1−1/2)=1,y=5y=5y=5 时斜率为 5(1−5/4)=−5/45(1-5/4)=-5/45(1−5/4)=−5/4。

右端光滑,经过各点的解局部唯一,因此两条非平衡曲线不能越过 y=4y=4y=4。从 222 出发的解增长且有上界 444,从 555 出发的解下降且有下界 444;它们向前保持有界,可以持续延伸。若其极限不是 444,右端在极限附近就保持非零,解仍会以不小于某个正数的速率增加或减少,不能收敛。因此两者都趋向 444。斜率符号提供单调方向,边界、唯一性和极限处的变化率共同补齐长期判断。

走到这里,我们已经能从一句现象描述写出变化规律,也能在没有解公式时读出不少信息。刚才我们验证了一个候选函数,并用它算出到达 404040 度的时间,但还没有说明怎样从方程主动找到这个函数。下一章就接着解决这个问题:当右端能拆成一个只含时间的因子与一个只含未知函数的因子时,怎样用积分把这条函数真正找出来。

上一章常微分方程研究什么下一章可分离变量方程