Differential equations
普通代数方程中的未知量通常是一个数。differential equation(DE)要找的则是整个函数;方程描述这个函数与它的一个或多个 derivative 之间的关系。
例如,设:
- t 是 independent variable;
- N(t) 是待求函数;
- r 是常数。
撇号表示对 t 求 derivative:
N′(t)=dtdN.
于是,方程
N′(t)=rN(t)
就是一个 differential equation:它说明变化率 N′(t) 与当前值 N(t) 成正比。
用 differential equations 建模
科学和工程中的许多定律直接描述的是一个量如何随时间变化,而不是它在每一刻的数值。正因为如此,differential equations 很适合用来表达这些定律。
下落物体
考虑一个质量为 m、在重力作用下下落的物体。把向下定为正方向,用 v(t) 表示时刻 t 的向下速度。再设:
- g 是 gravitational acceleration;
- γ 读作 “gamma”,是 drag coefficient。
Newton's second law 给出:
mass×acceleration=sum of forces.
acceleration 是 velocity 的 derivative,所以这里的 acceleration 是 v′(t),等式左边就是 mv′(t)。
物体受到两个力:
- 重力向下,因此记为 +mg。
- air resistance(drag)阻碍向下运动,因此记为 −γv(t)。
令质量与 acceleration 的乘积等于合力,就得到
mv′(t)=mg−γv(t).
这个 differential equation 把向下的重力和方向相反的 drag 放在同一个运动模型里。
Population growth
设 N(t) 是时刻 t 的种群数量,先假设环境中的资源没有限制。如果数量的变化率与当前数量成正比,用 r 表示 proportionality constant,就有
N′(t)=rN(t).
先记下 constant solution N(t)=0,因为除以 N 会漏掉它。接下来求数量为正的解,两边除以 N(t):
N(t)N′(t)=r.
根据 chain rule,左边恰好是 natural logarithm ln 的 derivative:
dtdlnN(t)=N(t)N′(t).
因此,方程可以写成
dtdlnN(t)=r.
两边对 t 做 integration,并引入 constant of integration C:
lnN(t)=rt+C.
要把 N(t) 单独解出来,可以对两边取 exponential:
N(t)=ert+C=eCert.
由于 C 是任意常数,eC 可以是任意正数。令 k=eC,得到这一族解:
N(t)=kert,k>0.
把 t=0 代进去,就能看出 k 的实际意义:
N(0)=ke0=k.
所以,k 就是初始种群数量,通常写作 N0=N(0)。没有指定初值时,答案是一族正值曲线;再加上 N(t)=0,就包含了所有非负的种群解。r 的正负决定了长期变化:
- r>0:exponential growth;
- r=0:种群数量不变;
- r<0:exponential decay。
现实环境不可能永远提供无限资源,因此这个理想化模型通常只适用于有限的一段时间。
Ordinary and partial differential equations
ordinary differential equation(ODE)中的 derivative 都是对同一个 independent variable 求的。下面几个都是 ODE:
N′(t)=rN(t),
y′′(x)+y(x)=0,
mv′(t)=mg−γv(t).
independent variable 不一定是时间。例如在 y′′(x)+y(x)=0 中,未知函数 y 依赖的是空间位置 x。
partial differential equation(PDE)涉及一个依赖两个或更多 independent variables 的未知函数,以及它的 partial derivatives。符号 ∂ 表示:对其中一个变量求 derivative,同时固定其他变量。
例如,用 u(x,t) 表示位置 x、时刻 t 的温度,one-dimensional heat equation 可以写成
∂t∂u=∂x2∂2u.
由于 u(x,t) 同时依赖 x 和 t,这就是 PDE。
ODE 的 order
ODE 的 order 由方程中出现的最高阶 derivative 决定。
对任意正整数 j,记号
y(j)(t)=dtjdjy(t)
表示 y 对 t 的第 j 阶 derivative。例如,y(2)(t)=y′′(t) 就是 second derivative。
| ODE | 最高阶 derivative | Order |
|---|
| N′(t)=rN(t) | N′(t) | first |
| v′(t)=g−mγv(t) | v′(t) | first |
| y′′(t)+y(t)=cost | y′′(t) | second |
| y(4)+y′′+cost+y2=0 | y(4) | fourth |
判断 order 时只看 derivative 的阶数,不看代数中的幂。例如
y(4)+y′′+cost+y2=0,
中的 y2 只是把函数值平方;最高阶 derivative 是 y(4),所以这是 fourth-order ODE。
如果上下文已经说明 independent variable 是什么,常常会把它省略。例如,y′′+y=0 就代表 y′′(t)+y(t)=0。
ODE 的一般形式
任何 nth-order ODE 都可以整理为一个表达式。用函数 F 接收 independent variable、未知函数,以及直到第 n 阶的所有 derivatives:
F(t,y(t),y′(t),…,y(n)(t))=0.
这是 implicit 的写法:方程不一定已经把最高阶 derivative y(n)(t) 单独解出来。
函数 F 一共接收 n+2 个输入:
t, y(t), y′(t),…,y(n)(t).
如果 F 接受这些输入的任意实数组合,就写作
F:Rn+2→R,
其中 R 表示实数集合。
从 F 写出 ODE
考虑这个多变量表达式:
F(s,u,p)=s2+2su+p3,
这里的 s、u、p 先只是占位符。把它们分别对应到 ODE 中的量:
s=t,u=y(t),p=y′(t),
就得到
F(t,y(t),y′(t))=t2+2ty(t)+(y′(t))3.
再令 F=0,得到
t2+2ty(t)+(y′(t))3=0.
最高阶 derivative 是 y′。即使它被取了三次幂,这仍然是 implicit first-order ODE。
怎样才算 solution?
设 I=(a,b) 是一个 open interval,包含严格介于 a 与 b 之间的实数。y:I→R 表示 y 是定义在 I 上的实值函数。
要说函数 y:I→R 是方程
F(t,y(t),y′(t),…,y(n)(t))=0
在 interval I 上的 solution,必须满足:
- y 在 I 上具有直到第 n 阶的所有 derivatives;
- 把 y(t) 及其 derivatives 代入后,方程对每个 t∈I 都成立(∈ 表示“属于”)。
验证一个候选解
检查一个函数是不是 ODE 的解,可以依次做三件事:求 derivative、代回方程、化简。
例如,考虑
y′′(t)+y(t)=0.
要检查 y(t)=cost,先求它的前两阶 derivatives:
y′(t)=−sint,y′′(t)=−cost.
把 y(t) 和 y′′(t) 代入 differential equation 的左边:
y′′(t)+y(t)=−cost+cost=0.
结果对每个实数 t 都为零,因此 y(t)=cost 确实是定义在 R 上的一个解。
Linear and nonlinear ODEs
如果未知函数及其 derivatives 满足下面的条件,ODE 就是 linear:
- 只以一次幂出现;
- 不互相相乘;
- 不放在 sine、exponential、square root 等 nonlinear functions 里面。
未知函数及其 derivatives 前面的 coefficients 可以随 independent variable 变化。对 nth-order linear ODE,如果 coefficient functions 是 a0(t),…,an(t),source term 是 h(t),一般形式为
a0(t)y(n)(t)+a1(t)y(n−1)(t)+⋯+an(t)y(t)=h(t).
Linear 的例子
这个 second-order equation
ty′′(t)+cos(t)y′(t)+t3y(t)=sint
是 linear 的,因为 y′′、y′、y 都只以一次幂出现,并且只乘上了 t 的函数。与一般形式对照,可得:
n=2,a0(t)=t,a1(t)=cost,a2(t)=t3,h(t)=sint.
Nonlinear 的例子
这个 first-order equation
y′(t)+(y(t))2=sint
是 nonlinear 的,因为未知函数 y(t) 被平方了。
General solutions
general solution 用一个公式表示 ODE 的整族解,其中含有一个或多个任意常数。
例如,方程
y′(t)=2y(t)
的 general real-valued solution 是
y(t)=ke2t,k∈R.
求 derivative 就能验证这一族函数:
y′(t)=2ke2t=2y(t).
每个 k∈R 都对应一条不同的解曲线:
- k>0 时,曲线为正,并按 exponential growth 增长;
- k=0 时,得到恒为零的 constant solution;
- k<0 时,曲线为负,其绝对值按 exponential growth 增长。
如果没有额外条件指定 y 在某个时刻的值,这个 ODE 就有无穷多个解。
Scalar equations and systems
scalar ODE 只有一个未知函数,每个输入对应一个实数输出。
system of ODEs 则有多个 differential equations 和多个未知函数,所有方程必须同时成立。如果每个方程都涉及其他未知函数,就称这个 system 为 coupled。例如
{x′(t)=x(t)y(t)+cost,y′(t)=x(t)+(y(t))2
是关于两个未知函数 x(t)、y(t) 的 coupled system。
Autonomous and non-autonomous ODEs
如果 independent variable 没有显式出现在方程中,ODE 就是 autonomous。例如,假设 r、g、γ、m 都是常数,则
N′=rN,v′=g−mγv,y′′+y=0
都是 autonomous。它们的解仍然可以依赖时间,但方程本身没有显式出现时间 t。
如果 independent variable 显式出现在方程中,ODE 就是 non-autonomous。例如
t2y′(t)+cos(t)y(t)=0
是 non-autonomous,因为 t 通过 t2 和 cost 直接出现在方程里。