既然是PDE的数值解,就避免不了一个问题——截断误差。如何理解PDE中的截断误差呢?
对于一个差分格式,事实上只需要将
u
u
u本身直接代入就能够得到截断误差。举例来说,某扩散方程的差分格式为
u
j
n
+
1
−
u
j
n
τ
−
a
u
j
+
1
n
−
u
j
n
h
=
0
\frac{u_{j}^{n+1}-u_{j}^n}{\tau}-a\frac{u_{j+1}^n-u_{j}^n}{h}=0
τujn+1−ujn−ahuj+1n−ujn=0只需要将
u
j
n
u_{j}^{n}
ujn替换为
u
(
x
j
,
t
n
)
u(x_j,t_n)
u(xj,tn),上式即变为了
u
(
x
j
,
t
n
+
1
)
−
u
(
x
j
,
t
n
)
τ
−
a
u
(
x
j
+
1
,
t
n
)
−
u
(
x
j
,
t
n
)
h
=
ξ
\frac{u(x_j,t_{n+1})-u(x_j,t_n)}{\tau}-a\frac{u(x_{j+1},t_n)-u(x_{j},t_n)}{h}=\xi
τu(xj,tn+1)−u(xj,tn)−ahu(xj+1,tn)−u(xj,tn)=ξ接下来就是对上式的化简,显然可以利用刻在骨子里面的Taylor展开。
1
τ
[
∑
i
=
0
+
∞
∂
i
u
∂
t
i
i
!
τ
i
−
u
]
−
a
h
[
∑
i
=
0
+
∞
∂
i
u
∂
x
i
i
!
h
i
−
u
]
=
ξ
\frac{1}{\tau}\left[\sum_{i=0}^{+\infty}\frac{\frac{\partial^{i}u}{\partial t^{i}}}{i!}\tau^{i}-u\right]-\frac{a}{h}\left[\sum_{i=0}^{+\infty}\frac{\frac{\partial^{i}u}{\partial x^{i}}}{i!}h^i-u\right]=\xi
τ1[i=0∑+∞i!∂ti∂iuτi−u]−ha[i=0∑+∞i!∂xi∂iuhi−u]=ξ结合原PDE方程化简一下就可以得到如下结果
ξ
=
∑
i
=
2
+
∞
∂
i
u
∂
t
i
i
!
τ
i
−
1
−
a
∑
i
=
2
+
∞
∂
i
u
∂
x
i
i
!
h
i
−
1
=
o
(
τ
+
h
)
\xi = \sum_{i=2}^{+\infty}\frac{\frac{\partial^{i}u}{\partial t^{i}}}{i!}\tau^{i-1}-a\sum_{i=2}^{+\infty}\frac{\frac{\partial^{i}u}{\partial x^{i}}}{i!}h^{i-1}=o(\tau+h)
ξ=i=2∑+∞i!∂ti∂iuτi−1−ai=2∑+∞i!∂xi∂iuhi−1=o(τ+h)这就是此PDE数值解的截断误差。事实上是套路性非常强的一个东西。
(未完待续)