微分方程(解析解和数值解的关系,解的存在性和唯一性)
写在前面
之前学习过工科的常微分方程课程,学了一堆求解常微分方程解析解的技巧。也学了工科的数值分析课程,学了一堆对于微分方程的数值求解算法。但是,有一些问题始终在脑子中没有想的很清楚(有的东西学了是学了,但是带没带脑子去学就不知道了。。。),今天把两个十分重要的问题重新理了一遍,记录如下。
第一个问题:微分方程的解析解和数值解
对于微分方程,工程上经常使用数值算法来求解,比如控制系统一般将系统的微分方程离散化来计算。如果我们这个世界真的是连续的(使用微分方程建模的物理过程是连续变化的),但是使用离散方法来计算能逼近真实的解析解吗?
对于微分方程
d
y
d
x
=
f
(
x
)
\frac{dy}{dx}=f(x)
dxdy=f(x),初值
y
(
x
0
)
=
y
0
y(x_{0})=y_{0}
y(x0)=y0。设
y
=
y
(
x
)
y=y(x)
y=y(x)是满足初值条件的解析解,且
y
(
x
)
y(x)
y(x)具有二阶导数(真实情况不一定存在,这里假设存在为了后续的数值解的误差分析)。考虑使用Euler法进行数值求解,迭代步长取为
h
h
h,得数值迭代序列为
(
x
0
,
y
0
)
,
(
x
0
+
h
,
y
0
+
f
(
x
0
)
h
)
,
.
.
.
(x_{0}, y_{0}), (x_{0}+h, y_{0}+f(x_{0})h), ...
(x0,y0),(x0+h,y0+f(x0)h),...
Fig. 1 数值解和解析解的误差示意图
如Fig. 1所示,图中曲线为微分方程的解析解,
y
(
x
0
+
(
n
−
1
)
h
)
y(x_{0}+(n-1)h)
y(x0+(n−1)h)与
y
(
x
0
+
n
h
)
y(x_{0}+nh)
y(x0+nh)的真实差值为
y
′
(
x
0
+
(
n
−
1
)
h
)
+
y
′
′
(
ξ
)
2
!
h
2
y^{'}(x_{0}+(n-1)h)+\frac{y^{''}(\xi)}{2!}h^{2}
y′(x0+(n−1)h)+2!y′′(ξ)h2(注意
y
′
(
x
)
=
f
(
x
)
y^{'}(x)=f(x)
y′(x)=f(x)),其中
ξ
∈
(
(
n
−
1
)
h
,
n
h
)
\xi \in((n-1)h,nh)
ξ∈((n−1)h,nh)。
在使用Euler法求解微分方程的数值解时, y ^ ( x 0 + n h ) − y ^ ( x 0 + ( n − 1 ) h ) = f ( x 0 + ( n − 1 ) h ) h \hat{y}(x_{0}+nh)-\hat{y}(x_{0}+(n-1)h)=f(x_{0}+(n-1)h)h y^(x0+nh)−y^(x0+(n−1)h)=f(x0+(n−1)h)h。我们可以发现解析解从 x 0 + ( n − 1 ) h x_{0}+(n-1)h x0+(n−1)h到 x 0 + n h x_{0}+nh x0+nh与数值解计算出来的误差为 y ′ ′ ( ξ ) 2 ! h 2 \frac{y^{''}(\xi)}{2!}h^{2} 2!y′′(ξ)h2。
如果 ∣ y ′ ′ ( x ) ∣ ≤ C |y^{''}(x)|\leq C ∣y′′(x)∣≤C,其中 C > 0 C>0 C>0。通过Euler法迭代出来的数值解在 x = x 1 = x 0 + n h x=x_{1}=x_{0}+nh x=x1=x0+nh(在 [ x 0 , x 1 ] [x_{0},x_{1}] [x0,x1]区间以 h h h为迭代步长)处累计误差小于 C 2 n h 2 \frac{C}{2}nh^{2} 2Cnh2( C 2 n h 2 = C 2 ( x 1 − x 0 ) h \frac{C}{2}nh^{2}=\frac{C}{2}(x_{1}-x_{0})h 2Cnh2=2C(x1−x0)h),则可以看出来当迭代步长 h h h趋向于 0 0 0时,Euler法的数值解的误差无限趋向于 0 0 0。
可以看出来微分方程的数值迭代算法(最简单的Euler法)迭代出来的数值解也是有理论保证可以逼近到真实的解析解。
更复杂的微分方程的数值迭代算法可以控制更高的迭代误差阶数(比如Runge-Kutta方法),具体请查阅数值分析相关教材。
第二个问题:微分方程的解的存在性和唯一性
对于一个微分方程,我们知道不给初值的时候,方程可能存在很多解(通解)。比如,
d
y
d
x
=
2
x
\frac{dy}{dx}=2x
dxdy=2x的通解为
y
(
x
)
=
x
2
+
C
y(x)=x^{2}+C
y(x)=x2+C。
但是给定一个初值以后,有一些微分方程还是存在多个解。比如,
d
y
d
x
=
3
y
2
3
\frac{dy}{dx}=3y^{\frac{2}{3}}
dxdy=3y32的初值为
y
(
0
)
=
0
y(0)=0
y(0)=0,满足的解可以是
y
(
x
)
=
0
y(x)=0
y(x)=0,还可以是
y
(
x
)
=
x
3
y(x)=x^{3}
y(x)=x3。
那么,对于一个微分方程,给定初值以后,还需要需要满足什么样的条件,方程的解存在且唯一呢?
【Picard定理】 设微分方程
d
y
d
x
=
f
(
x
,
y
)
,
y
(
x
0
)
=
y
0
(1)
\frac{dy}{dx}=f(x,y),y(x_{0})=y_{0} \tag{1}
dxdy=f(x,y),y(x0)=y0(1)
满足如下条件:
- f ( x , y ) f(x,y) f(x,y)在矩形区域 D = [ x 0 − a , x 0 + a ] × [ y 0 − b , y 0 + b ] D=[x_{0}-a,x_{0}+a]\times[y_{0}-b,y_{0}+b] D=[x0−a,x0+a]×[y0−b,y0+b]内连续;
- y y y在 D D D中满足Lipschitz条件,即存在常数 L L L,使得对任意 ( x , y 1 ) , ( x , y 2 ) ∈ D (x,y_{1}),(x,y_{2})\in D (x,y1),(x,y2)∈D,都有 ∣ f ( x , y 1 ) − f ( x , y 2 ) ∣ ≤ L ∣ y 1 − y 2 ∣ |f(x,y_{1})-f(x,y_{2})|\leq L|y_{1}-y_{2}| ∣f(x,y1)−f(x,y2)∣≤L∣y1−y2∣。
则上述微分方程在区间
I
=
[
x
0
−
δ
,
x
0
+
δ
]
I=[x_{0}-\delta,x_{0}+\delta]
I=[x0−δ,x0+δ]上存在唯一解,其中
δ
=
min
{
a
,
b
M
}
\delta=\min\{a,\frac{b}{M}\}
δ=min{a,Mb},其中
M
=
max
(
x
,
y
)
∈
D
∣
f
(
x
,
y
)
∣
M= \max\limits_{(x,y) \in D} |f(x,y)|
M=(x,y)∈Dmax∣f(x,y)∣。
证明:
[Step 1: 等价求解转换]
上述定理中的微分方程的求解可以转换为对于下面积分形式的求解。
y
(
x
)
=
y
0
+
∫
x
0
x
f
(
s
,
y
(
s
)
)
d
s
(2)
y(x)=y_{0}+\int_{x_{0}}^{x}f(s,y(s))ds \tag{2}
y(x)=y0+∫x0xf(s,y(s))ds(2)
这里需要详细说明,(1)的解一定是(2)的解,但是(2)的解一定是(1)的解吗?显然不是。因为可能给(2)找出来一个不连续的解
y
ˉ
(
x
)
\bar{y}(x)
yˉ(x)(称为弱解),(2)的弱解代入(1)中直接在不连续处不存在导数,这时(2)的弱解就不是(1)的解。如果(2)的解
y
(
x
)
y(x)
y(x)是连续的(称为经典解),由于(2)的右侧的积分形式中的
f
(
x
,
y
)
f(x,y)
f(x,y)连续,且
y
(
x
)
y(x)
y(x)连续,则(2)的右侧可导,那么(2)的左侧
y
(
x
)
y(x)
y(x)也可导,则(2)的经典解一定是(1)的解。
下面的证明过程我们将会看到通过对(2)构造出来的Picard函数序列
{
y
n
(
x
)
}
\{y_{n}(x)\}
{yn(x)},可以证明出来(2)的解存在且唯一,且因为Picard函数序列
{
y
n
(
x
)
}
\{y_{n}(x)\}
{yn(x)}中的每一个函数
y
n
(
x
)
y_{n}(x)
yn(x)都是连续的,且一致收敛(不妨记一致收敛到
y
∗
(
x
)
y^*(x)
y∗(x)),则
y
∗
(
x
)
y^*(x)
y∗(x)也连续可导(即(2)的经典解)。
所以,满足Picard定理中条件的微分方程(1)的积分形式(2)求解出来的解一定是(1)的解。又因为(2)的解存在且唯一,所以(1)的解存在且唯一。
[Step 2: Picard序列构造和Picard序列的一致收敛性]
构造Picard函数序列,
y
0
(
x
)
=
y
0
,
∣
x
−
x
0
∣
≤
h
y_{0}(x)=y_{0}, |x-x_{0}|\leq h
y0(x)=y0,∣x−x0∣≤h
y
1
(
x
)
=
y
0
+
∫
x
0
x
f
(
s
,
y
0
(
s
)
)
d
s
,
∣
x
−
x
0
∣
≤
h
y_{1}(x)=y_{0}+\int_{x_{0}}^{x}f(s,y_{0}(s))ds, |x-x_{0}|\leq h
y1(x)=y0+∫x0xf(s,y0(s))ds,∣x−x0∣≤h
y
2
(
x
)
=
y
0
+
∫
x
0
x
f
(
s
,
y
1
(
s
)
)
d
s
,
∣
x
−
x
0
∣
≤
h
y_{2}(x)=y_{0}+\int_{x_{0}}^{x}f(s,y_{1}(s))ds, |x-x_{0}|\leq h
y2(x)=y0+∫x0xf(s,y1(s))ds,∣x−x0∣≤h
…
y
n
(
x
)
=
y
0
+
∫
x
0
x
f
(
s
,
y
n
−
1
(
s
)
)
d
s
,
∣
x
−
x
0
∣
≤
h
y_{n}(x)=y_{0}+\int_{x_{0}}^{x}f(s,y_{n-1}(s))ds, |x-x_{0}|\leq h
yn(x)=y0+∫x0xf(s,yn−1(s))ds,∣x−x0∣≤h
…
对上述相邻项作差,得
∣
y
1
(
x
)
−
y
0
(
x
)
∣
=
∣
∫
x
0
x
f
(
s
,
y
0
(
s
)
)
d
s
∣
≤
M
∣
x
−
x
0
∣
≤
M
h
|y_{1}(x)-y_{0}(x)|=|\int_{x_{0}}^{x}f(s,y_{0}(s))ds|\leq M|x-x_{0}|\leq Mh
∣y1(x)−y0(x)∣=∣∫x0xf(s,y0(s))ds∣≤M∣x−x0∣≤Mh
∣
y
2
(
x
)
−
y
1
(
x
)
∣
=
∣
∫
x
0
x
[
f
(
s
,
y
1
(
s
)
)
−
f
(
s
,
y
0
(
s
)
)
]
d
s
∣
≤
∫
x
0
x
∣
f
(
s
,
y
1
(
s
)
)
−
f
(
s
,
y
0
(
s
)
)
∣
d
s
≤
∫
x
0
x
L
∣
y
1
(
s
)
−
y
0
(
s
)
∣
d
s
≤
∫
x
0
x
L
h
∣
s
−
x
0
∣
d
s
≤
M
L
L
2
2
!
h
2
|y_{2}(x)-y_{1}(x)|=|\int_{x_{0}}^{x}[f(s,y_{1}(s))-f(s,y_{0}(s))]ds|\leq\int_{x_{0}}^{x}|f(s,y_{1}(s))-f(s,y_{0}(s))|ds\leq\int_{x_{0}}^{x}L|y_{1}(s)-y_{0}(s)|ds\leq\int_{x_{0}}^{x}Lh|s-x_{0}|ds\leq\frac{M}{L}\frac{L^{2}}{2!}h^{2}
∣y2(x)−y1(x)∣=∣∫x0x[f(s,y1(s))−f(s,y0(s))]ds∣≤∫x0x∣f(s,y1(s))−f(s,y0(s))∣ds≤∫x0xL∣y1(s)−y0(s)∣ds≤∫x0xLh∣s−x0∣ds≤LM2!L2h2
…
∣
y
n
(
x
)
−
y
n
−
1
(
x
)
∣
=
∣
∫
x
0
x
[
f
(
s
,
y
n
−
1
(
s
)
)
−
f
(
s
,
y
n
−
2
(
s
)
)
]
d
s
∣
≤
∫
x
0
x
∣
f
(
s
,
y
n
−
1
(
s
)
)
−
f
(
s
,
y
n
−
2
(
s
)
)
∣
d
s
≤
∫
x
0
x
L
∣
y
n
−
1
(
s
)
−
y
n
−
2
(
s
)
∣
d
s
≤
M
L
L
n
n
!
h
n
|y_{n}(x)-y_{n-1}(x)|=|\int_{x_{0}}^{x}[f(s,y_{n-1}(s))-f(s,y_{n-2}(s))]ds|\leq\int_{x_{0}}^{x}|f(s,y_{n-1}(s))-f(s,y_{n-2}(s))|ds\leq\int_{x_{0}}^{x}L|y_{n-1}(s)-y_{n-2}(s)|ds\leq\frac{M}{L}\frac{L^{n}}{n!}h^{n}
∣yn(x)−yn−1(x)∣=∣∫x0x[f(s,yn−1(s))−f(s,yn−2(s))]ds∣≤∫x0x∣f(s,yn−1(s))−f(s,yn−2(s))∣ds≤∫x0xL∣yn−1(s)−yn−2(s)∣ds≤LMn!Lnhn
已知
y
n
(
x
)
−
y
0
=
(
y
n
(
x
)
−
y
n
−
1
(
x
)
)
+
(
y
n
−
1
(
x
)
−
y
n
−
2
(
x
)
)
+
.
.
.
+
(
y
1
(
x
)
−
y
0
(
x
)
)
,
∣
x
−
x
0
∣
≤
h
y_{n}(x)-y_{0}=(y_{n}(x)-y_{n-1}(x))+(y_{n-1}(x)-y_{n-2}(x))+...+(y_{1}(x)-y_{0}(x)), |x-x_{0}|\leq h
yn(x)−y0=(yn(x)−yn−1(x))+(yn−1(x)−yn−2(x))+...+(y1(x)−y0(x)),∣x−x0∣≤h
∣
y
n
(
x
)
−
y
n
−
1
(
x
)
∣
+
∣
y
n
−
1
(
x
)
−
y
n
−
2
(
x
)
∣
+
.
.
.
+
∣
y
1
(
x
)
−
y
0
(
x
)
∣
+
∣
y
0
∣
≤
M
L
L
h
+
M
L
1
2
!
L
2
h
2
+
M
L
1
n
!
L
n
h
n
|y_{n}(x)-y_{n-1}(x)|+|y_{n-1}(x)-y_{n-2}(x)|+...+|y_{1}(x)-y_{0}(x)|+|y_{0}|\leq\frac{M}{L}Lh+\frac{M}{L}\frac{1}{2!}L^{2}h^{2}+\frac{M}{L}\frac{1}{n!}L^{n}h^{n}
∣yn(x)−yn−1(x)∣+∣yn−1(x)−yn−2(x)∣+...+∣y1(x)−y0(x)∣+∣y0∣≤LMLh+LM2!1L2h2+LMn!1Lnhn
对上式右侧取极限得
M
L
e
L
h
\frac{M}{L}e^{Lh}
LMeLh。
记
u
n
(
x
)
=
y
n
(
x
)
−
y
n
−
1
(
x
)
u_{n}(x)=y_{n}(x)-y_{n-1}(x)
un(x)=yn(x)−yn−1(x),
由Weierstrass判别法(Weierstrass判别法:设函数项级数
∑
n
=
1
∞
u
n
(
x
)
\sum_{n=1}^{\infty} u_n(x)
∑n=1∞un(x)定义在集合
D
⊆
R
D \subseteq \mathbb{R}
D⊆R(或更一般的度量空间)上。如果存在一个收敛的正项数项级数
∑
n
=
1
∞
M
n
\sum_{n=1}^{\infty} M_n
∑n=1∞Mn,使得对任意
x
∈
D
x \in D
x∈D和所有
n
∈
N
n \in \mathbb{N}
n∈N,满足:
∣
u
n
(
x
)
∣
≤
M
n
|u_n(x)| \leq M_n
∣un(x)∣≤Mn, 则函数项级数
∑
n
=
1
∞
u
n
(
x
)
\sum_{n=1}^{\infty} u_n(x)
∑n=1∞un(x)在
D
D
D上绝对且一致收敛。)知,函数列
{
y
n
(
x
)
−
y
0
}
\{y_{n}(x)-y_{0}\}
{yn(x)−y0}一致收敛,则函数列
{
y
n
(
x
)
}
\{y_{n}(x)\}
{yn(x)}一致收敛,记函数列
{
y
n
(
x
)
}
\{y_{n}(x)\}
{yn(x)}一致收敛到
φ
(
x
)
\varphi(x)
φ(x)。
因为函数列
{
y
n
(
x
)
}
\{y_{n}(x)\}
{yn(x)}中的每一项
y
n
(
x
)
y_{n}(x)
yn(x)都连续(因为
y
0
(
x
)
y_{0}(x)
y0(x)连续,则
y
1
(
x
)
=
y
0
+
∫
x
0
x
f
(
s
,
y
0
(
s
)
)
d
s
y_{1}(x)=y_{0}+\int_{x_{0}}^{x}f(s,y_{0}(s))ds
y1(x)=y0+∫x0xf(s,y0(s))ds连续,依次类推,每一项都连续),由连续性定理(连续性定理:
S
n
(
x
)
S_{n}(x)
Sn(x)在
D
D
D上连续,
{
S
n
(
x
)
}
\{S_{n}(x)\}
{Sn(x)}在
D
D
D上一致收敛于
S
(
x
)
S(x)
S(x),则
S
(
x
)
S(x)
S(x)在
D
D
D上连续。)知,
φ
(
x
)
\varphi(x)
φ(x)连续。
在
y
n
(
x
)
=
y
0
+
∫
x
0
x
f
(
s
,
y
n
−
1
(
s
)
)
d
s
y_{n}(x)=y_{0}+\int_{x_{0}}^{x}f(s,y_{n-1}(s))ds
yn(x)=y0+∫x0xf(s,yn−1(s))ds两边令
n
n
n趋向于无穷大得:
φ
(
x
)
=
y
0
+
∫
x
0
x
f
(
s
,
φ
(
s
)
)
d
s
\varphi(x)=y_{0}+\int_{x_{0}}^{x}f(s,\varphi(s))ds
φ(x)=y0+∫x0xf(s,φ(s))ds
即
y
=
φ
(
x
)
y=\varphi(x)
y=φ(x)是(2)的一个解。又因为
φ
(
x
)
\varphi(x)
φ(x)连续,所以
φ
(
x
)
\varphi(x)
φ(x)是(2)的一个经典解。
[Step 3: 解的唯一性]
设
ϕ
(
x
)
\phi(x)
ϕ(x)也是(2)的一个解,则有
ϕ
(
x
0
)
=
y
0
\phi(x_{0})=y_{0}
ϕ(x0)=y0且
ϕ
(
x
)
=
y
0
+
∫
x
0
x
f
(
s
,
ϕ
(
s
)
)
d
s
\phi(x)=y_{0}+\int_{x_{0}}^{x}f(s,\phi(s))ds
ϕ(x)=y0+∫x0xf(s,ϕ(s))ds。
直接和上述的解
φ
(
x
)
\varphi(x)
φ(x)作差得,
r
(
x
)
=
∣
ϕ
(
x
)
−
φ
(
x
)
∣
≤
∫
x
0
x
∣
f
(
s
,
ϕ
(
s
)
)
−
f
(
s
,
φ
(
s
)
)
∣
d
s
≤
L
∫
x
0
x
∣
ϕ
(
s
)
−
φ
(
s
)
∣
d
s
=
L
∫
x
0
x
r
(
s
)
d
s
r(x)=|\phi(x)-\varphi(x)|\leq\int_{x_{0}}^{x}|f(s,\phi(s))-f(s,\varphi(s))|ds\leq L\int_{x_{0}}^{x}|\phi(s)-\varphi(s)|ds=L\int_{x_{0}}^{x}r(s)ds
r(x)=∣ϕ(x)−φ(x)∣≤∫x0x∣f(s,ϕ(s))−f(s,φ(s))∣ds≤L∫x0x∣ϕ(s)−φ(s)∣ds=L∫x0xr(s)ds。
由Gronwall不等式(Gronwall不等式: 设
f
(
x
)
,
g
(
x
)
f(x),g(x)
f(x),g(x)在
[
a
,
b
]
[a,b]
[a,b]上连续,且
g
(
x
)
≥
0
g(x)\geq 0
g(x)≥0,
c
c
c为常数,若
f
(
x
)
≤
c
+
∫
a
x
g
(
s
)
f
(
s
)
d
s
f(x)\leq c+\int_{a}^{x}g(s)f(s)ds
f(x)≤c+∫axg(s)f(s)ds,则
f
(
x
)
≤
c
e
∫
a
x
g
(
s
)
d
s
f(x)\leq ce^{\int_{a}^{x}g(s)ds}
f(x)≤ce∫axg(s)ds。证明请参考常微分方程:Picard定理与Peano定理(解的存在性与唯一性))知,
r
(
x
)
≤
0
r(x)\leq 0
r(x)≤0(令Gronwall不等式中的
c
=
0
c=0
c=0和
g
(
x
)
=
1
g(x)=1
g(x)=1即得)。因为
r
(
x
)
≥
0
r(x)\geq 0
r(x)≥0(因为
r
(
x
)
=
∣
ϕ
(
x
)
−
φ
(
x
)
∣
r(x)=|\phi(x)-\varphi(x)|
r(x)=∣ϕ(x)−φ(x)∣),所以
r
(
x
)
=
0
r(x)=0
r(x)=0。即(2)的解唯一。
综上,(2)只存在一个经典解。因为(1)的所有解都是(2)的经典解,且(2)的所有经典解都是(1)的解,所以(1)的解存在且唯一。
【补充】上述的Weierstrass判别法和连续性定理 可以在数学分析教材中找到。
再回过头来看上面的例子: d y d x = 3 y 2 3 \frac{dy}{dx}=3y^{\frac{2}{3}} dxdy=3y32的初值为 y ( 0 ) = 0 y(0)=0 y(0)=0,满足的解可以是 y ( x ) = 0 y(x)=0 y(x)=0,还可以是 y ( x ) = x 3 y(x)=x^{3} y(x)=x3。这个例子是符合上述Picard定理中的一般微分方程形式,但是由于违反了Picard定理中的Liptschitz条件( y 2 3 y^{\frac{2}{3}} y32在 y = 0 y=0 y=0处的导数无界,所以不存在Liptschitz常数 L L L),所以在给定初值的条件下,还存在多个解。
写在最后
上述内容只是微分方程知识的冰山一角,如果还想更深入的学习,还需寻找更系统详细的课程或者书籍。
如果上面的内容有错误和不严谨,恳请指正,不胜感激。如果有关于微分方程方面的看法或者有推荐的好教材或者好课程,欢迎在博客下分享交流,谢谢。