LeoMath

微分方程入门

ODE 是什么

用导数描述变化规律;解的存在与唯一。

约 7 分钟

从一个问题开始

问题

一杯热水在桌上冷却。我们不知道温度函数 T(t)T(t),只知道它变化的规律:温度下降的速度与它高出室温的程度成正比。

自然界大量的规律都是这样给出的:不是量本身,而是量的变化率与量的关系。我们需要一种数学对象来表达这类规律,以及从规律恢复出函数的方法。

观察

一杯热水放在桌上。它冷却的速度不是恒定的:刚开始很热时降温快,接近室温时降温慢。我们不知道温度随时间的函数 T(t)T(t),但我们知道它变化的规律:

T′(t)=−k (T(t)−T室).T'(t)=-k\,(T(t)-T_{\text{室}}).

下面的实验里选"指数增长",把 kk 调成负数,改变初值。你看到的就是这类方程的解。

交互实验常微分方程数值解
方程
y′=k yy' = k\,y
时间序列
方法 精确解Euler 终点误差: 5.5336RK4 终点误差: 0.0016
猜想

很多自然规律不直接告诉我们量本身,而是告诉我们量的变化率与量本身的关系。这种关系是一个含有未知函数及其导数的等式。如果我们能从这种等式反推出函数本身,就能预测未来。

定义

定义 1.1常微分方程

一个 nn 阶常微分方程(ODE)是形如 F(t, y, y′, y′′,…,y(n))=0F\bigl(t,\,y,\,y',\,y'',\dots,y^{(n)}\bigr)=0 的等式,其中 y=y(t)y=y(t) 是一元未知函数。阶是方程中出现的最高阶导数的阶数。若能解出最高阶导数,y(n)=f(t,y,…,y(n−1))y^{(n)}=f(t,y,\dots,y^{(n-1)}),称为显式方程。

定义 1.2解与初值问题

函数 φ\varphi 在区间 II 上是方程的解,若把 y=φ(t)y=\varphi(t) 代入后等式对所有 t∈It\in I 成立。初值问题是方程加上条件 y(t0)=y0y(t_0)=y_0(对 nn 阶方程要给 y,y′,…,y(n−1)y,y',\dots,y^{(n-1)} 在 t0t_0 的值)。

定义 1.3线性方程

若方程可写成 an(t)y(n)+⋯+a1(t)y′+a0(t)y=g(t)a_n(t)y^{(n)}+\cdots+a_1(t)y'+a_0(t)y=g(t),即 yy 及其各阶导数只以一次幂、不互相相乘的方式出现,则称它是线性的;g≡0g\equiv0 时称齐次。

y′′′+y y′=sin⁡ty'''+y\,y'=\sin t 是三阶、非线性(因为有 y y′y\,y')。阶与线性性是两个独立的属性。

推导:最简单的方程

命题 1.1

y′=kyy'=ky 的所有解是 y=Cekty=Ce^{kt},C∈RC\in\mathbb R。

证明

CektCe^{kt} 是解:直接求导。反过来,设 yy 是任意解,考虑 u(t)=y(t)e−ktu(t)=y(t)e^{-kt}。则 u′=y′e−kt−ky e−kt=(y′−ky)e−kt=0,u'=y'e^{-kt}-ky\,e^{-kt}=(y'-ky)e^{-kt}=0, 所以 uu 是常数 CC,y=Cekty=Ce^{kt}。

这里用到了导数一节的核心事实 (ekt)′=kekt(e^{kt})'=ke^{kt},以及"导数恒为零的函数是常数"(中值定理的推论)。初值 y(0)=y0y(0)=y_0 定出 C=y0C=y_0。

回到冷却问题:令 u=T−T室u=T-T_{\text{室}},则 u′=−kuu'=-ku,u=u0e−ktu=u_0e^{-kt},即 T(t)=T室+(T0−T室)e−kt.T(t)=T_{\text{室}}+(T_0-T_{\text{室}})e^{-kt}.

解的存在与唯一

方程给出的只是"规律"。它一定有解吗?解唯一吗?这两个问题决定了"用微分方程预测未来"是否合法。

定理 1.2Picard–Lindelöf 存在唯一性定理

设 f(t,y)f(t,y) 在矩形 R={∣t−t0∣≤a, ∣y−y0∣≤b}R=\{|t-t_0|\le a,\ |y-y_0|\le b\} 上连续,且关于 yy 满足 Lipschitz 条件:存在 LL 使 ∣f(t,y1)−f(t,y2)∣≤L∣y1−y2∣|f(t,y_1)-f(t,y_2)|\le L|y_1-y_2|。则初值问题 y′=f(t,y), y(t0)=y0y'=f(t,y),\ y(t_0)=y_0 在 t0t_0 的某个邻域内有唯一解。

证明

只给出唯一性的证明,它揭示了 Lipschitz 条件的作用。设 φ,ψ\varphi,\psi 都是解,令 w(t)=∣φ(t)−ψ(t)∣w(t)=|\varphi(t)-\psi(t)|。由 φ(t)=y0+∫t0tf(s,φ(s)) ds\varphi(t)=y_0+\int_{t_0}^tf(s,\varphi(s))\,ds(对方程两边积分,见积分)及 ψ\psi 的同样表达式, w(t)≤∫t0t∣f(s,φ)−f(s,ψ)∣ ds≤L∫t0tw(s) ds(t≥t0).w(t)\le\int_{t_0}^t|f(s,\varphi)-f(s,\psi)|\,ds\le L\int_{t_0}^tw(s)\,ds\quad(t\ge t_0). 令 W(t)=∫t0twW(t)=\int_{t_0}^tw,则 W′≤LWW'\le LW,W(t0)=0W(t_0)=0。于是 (We−Lt)′=(W′−LW)e−Lt≤0(We^{-Lt})'=(W'-LW)e^{-Lt}\le0,We−LtWe^{-Lt} 单调不增且从 00 出发、非负,故 W≡0W\equiv0,w≡0w\equiv0。

存在性用 Picard 迭代 φn+1(t)=y0+∫t0tf(s,φn(s)) ds\varphi_{n+1}(t)=y_0+\int_{t_0}^tf(s,\varphi_n(s))\,ds 构造,并证明它一致收敛;这是数值解的思想源头之一。

例 1.1没有 Lipschitz 条件时唯一性会失效

y′=2∣y∣, y(0)=0y'=2\sqrt{|y|},\ y(0)=0。y≡0y\equiv0 是解;y=t2y=t^2(t≥0t\ge0)也是解。f(y)=2∣y∣f(y)=2\sqrt{|y|} 在 y=0y=0 附近不满足 Lipschitz 条件。

常见错误

y′=kyy'=ky 的通解是 CektCe^{kt},不是 ekt+Ce^{kt}+C。常数出现在哪里由推导决定:这里 CC 来自"ye−ktye^{-kt} 是常数"。另外,存在唯一性定理只保证局部解,y′=y2y'=y^2 的解在 t=1t=1 处爆破。

应用

应用解不一定活到永远

y′=y2, y(0)=1y'=y^2,\ y(0)=1 满足定理条件,局部有唯一解 y=11−ty=\dfrac1{1-t}。但它在 t=1t=1 处爆破。存在唯一性定理保证的是局部解。这是一阶方程的第一道练习。

注

微分方程的三个层次:建模(写出规律)、求解(找出函数)、分析(不解也能知道什么)。存在唯一性定理属于第三层:它告诉我们,在很宽的条件下,"现在的状态"完全决定"未来"。这正是牛顿力学决定论的数学形式。

练习

01
解初值问题 y′=2y, y(0)=3y'=2y,\ y(0)=3,求 y(1)y(1)(保留两位小数)。
02
方程 y′′′+y y′=sin⁡ty'''+y\,y'=\sin t 的阶是?