资源描述
对流扩散方程有限差分方法
求解对流扩散方程的差分格式有很多种,在本节中将介绍以下3种有限差分格式:中心差分格式、Samarskii格式、Crank-Nicolson型隐式差分格式。
3.1 中心差分格式
时间导数用向前差商、空间导数用中心差商来逼近,那么就得到了(1)式的中心差分格式
(3)
若令 ,,则(3)式可改写为
(4)
从上式我们看到,在新的时间层上只包含了一个未知量,它可以由时间层上的值,,直接计算出来。因此,中心差分格式是求解对流扩散方程的显示格式。
假定是定解问题的充分光滑的解,将,,分别在处进行Taylor展开:
代入(4)式,有
显然,当,时,,即中心差分格式与定解问题是相容的。由以上的讨论也可得知,对流扩散方程的中心差分格式的截断误差为。
对于我们上面构造的差分格式,是否可以直接用于实际计算呢?也就是说,如果初始值有误差,在计算过程中误差会不会扩大传播呢?这就是接下来我们要讨论的是差分方程的稳定性问题。下面用Fourier方法来分析中心差分格式的稳定性。
令,代入到(4)式
整理得
所以该差分格式的增长因子为:
其模的平方为
由于,所以(即差分格式稳定)的充分条件为
上式可以改写为
注意到,所以上面不等式满足的条件为
, 。
由此得到差分格式(3)的稳定性限制为
, 。
故有结论:对流扩散方程的中心差分格式是条件稳定的。根据Lax等价定理,我们可以知道,对流扩散方程的中心差分格式是条件收敛的。
3.2 Samarskii格式
设>0,先对方程(1)作扰动,得到另一个对流扩散方程
(5)
其中 ,当时,(5)式化为(1)式
对于(5)式,构造迎风格式
(6)
差分格式(6)称为逼近对流扩散方程的Samarskii格式。
首先推导(6)的截断误差。设是对流扩散方程(1)式的充分光滑的解
令
用 Taylor级数展开有
再令
用 Taylor级数展开有
由于
所以
当,时,,所以Samarskii格式与定解问题是相容的,并且其截断误差为。
现在看看Samarskii格式的稳定性。将(6)式两边同时加上,把(6)式化为
令 ,则上式即为:
根据中心显示格式稳定性的讨论,可以得到(6)式的稳定性条件为
,
即
,
稳定性的第二个条件等价于
而
利用不等式
所以
利用稳定性的第一个条件,有 ,从而可知稳定性条件的第二个条件可由第一个条件推出,因此差分格式的稳定性条件为
,
即 。
由Lax等价定理可知,Samarskii格式也是条件收敛的。
3.3 Crank-Nicolson型隐式差分格式
前面讨论了求解对流扩散方程的两种显示格式,它们都是条件稳定的,为了放松稳定性条件,可以采用隐式格式进行求解。现在考虑Crank-Nicolson型隐式差分格式
(7)
令,,则(7)式可化为
(8)
把(8)式用矩阵的形式
=
+ (9)
设 ,
,
, 则有
下面讨论Crank-Nicolson型格式的截断误差和精度。该格式涉及到时间层和时间层上的,,处六个点。设是定解问题的充分光滑的解,把(7)式中各的值用代替,然后将,, ,,,分别在点处进行Taylor展开:
这里出现的的各阶偏导数假设都是存在而且连续的。于是(7)式的截断误差
显然,Crank-Nicolson型格式的精度是二阶的。再来看看该格式的稳定性情况,我们还是用Fourier方法来分析。
令,代入到(8)式
整理得 所以Crank-Nicolson型格式的增长因子是
其模的平方
改写上式
由于 及上式的分母为正,故
即 ,从而得出Crank-Nicolson型格式是无条件稳定的。根据Lax 等价定理,Crank-Nicolson型格式也是无条件收敛的。
4、数值例子
给出如下对流扩散方程的初边值问题:
所讨论的对流扩散方程的精确解为
4.1 三种差分格式的比较
在各种对流扩散问题中,有许多对流相对于扩散来说在问题中起主导作用。对流占有扩散问题的数值求解面临很多困难。因此,对流占有扩散问题的有效数值解法一直是计算数学中重要的研究内容。
取,,,,此时上面给出的就是一个对流占优扩散问题。那么,本文讨论的三种差分格式对对流占有扩散问题的求解效果是怎样的呢?现在我们就来看看这个问题。
首先,根据差分格式的稳定性条件,确定的取值范围。
(1)中心差分格式:根据稳定性条件 ,可知,要使中心差分格式稳定,的取值必须满足:
(2)Samarskii格式:根据稳定性条件 可知,的取值必须满足:
(3)Crank-Nicolson格式:该差分格式是无条件稳定的,所以可以取任意值。
要使三种差分格式都是稳定的,不妨取。
首先,我们通过表格看看三种差分格式的数值解与准确解之间的相对误差。
表4.1 时三种差分格式结果的比较
x
中心差分格式
Samarskii格式
Crank-Nicolson格式
准
确
解
数值解
误差
数值解
误差
数值解
误差
0
1.2192
0
1.2192
0
1.2192
0
1.2192
0.1
1.1009
-0.0023
1.1076
0.0044
1.1034
0.0002
1.1032
0.2
0.9950
-0.0032
1.0051
0.0069
0.9985
0.0003
0.9982
0.3
0.8999
-0.0033
0.9110
0.0078
0.9035
0.0003
0.9032
0.4
0.8142
-0.0031
0.8250
0.0077
0.8175
0.0002
0.8173
0.5
0.7367
-0.0028
0.7467
0.0072
0.7397
0.0002
0.7395
0.6
0.6666
-0.0025
0.6757
0.0066
0.6693
0.0002
0.6691
0.7
0.6031
-0.0023
0.6114
0.006
0.6056
0.0002
0.6054
0.8
0.5459
-0.0019
0.5532
0.0054
0.5480
0.0002
0.5478
0.9
0.4931
-0.0026
0.5006
0.0049
0.4959
0.0002
0.4957
1.0
0.4485
0
0.4485
0
0.4485
0
0.4485
表4.2 时三种差分格式结果的比较
x
中心差分格式
Samarskii格式
Crank-Nicolson格式
准
确
解
数值解
误差
数值解
误差
数值解
误差
0
1.4894
0
1.4894
0
1.4894
0
1.4894
0.1
1.3450
-0.0027
1.3537
0.006
1.3479
0.0002
1.3477
0.2
1.2144
-0.0050
1.2301
0.0107
1.2199
0.0005
1.2194
0.3
1.0969
-0.0065
1.1171
0.0137
1.1040
0.0006
1.1034
0.4
0.9915
-0.0069
1.0137
0.0153
0.9990
0.0006
0.9984
0.5
0.8966
-0.0068
0.9191
0.0157
0.9040
0.0006
0.9034
0.6
0.8115
-0.0059
0.8327
0.0153
0.8179
0.0005
0.8174
0.7
0.7333
-0.0063
0.7539
0.0143
0.7402
0.0006
0.7396
0.8
0.6656
-0.0036
0.6824
0.0132
0.6696
0.0004
0.6692
0.9
0.5982
-0.0074
0.6176
0.012
0.6062
0.0006
0.6056
1.0
0.5479
0
0.5479
0
0.5479
0
0.5479
表4.3 时三种差分格式的结果比较
x
中心差分格式
Samarskii格式
Crank-Nicolson格式
准
确
解
数值解
误差
数值解
误差
数值解
误差
0
1.8196
0
1.8196
0
1.8196
0
1.8196
0.1
1.6433
-0.0031
1.6538
0.0074
1.6467
0.0003
1.6464
0.2
1.4839
-0.0058
1.5032
0.0135
1.4902
0.0005
1.4897
0.3
1.3397
-0.0083
1.3660
0.018
1.3487
0.0007
1.3480
0.4
1.2100
-0.0097
1.2410
0.0213
1.2205
0.0008
1.2197
0.5
1.0923
-0.0113
1.1269
0.0233
1.1046
0.001
1.1036
0.6
0.9892
-0.0094
1.0226
0.0240
0.9994
0.0008
0.9986
0.7
0.8911
-0.0125
0.9274
0.0238
0.9047
0.0011
0.9036
0.8
0.8121
-0.0055
0.8404
0.0228
0.8181
0.0005
0.8176
0.9
0.7257
-0.0141
0.7612
0.0214
0.7410
0.0012
0.7398
1.0
0.6694
0
0.6694
0
0.6694
0
0.6694
表4.4 时三种差分格式结果的比较
x
中心差分格式
Samarskii格式
Crank-Nicolson格式
准
确
解
数值解
误差
数值解
误差
数值解
误差
0
2.2229
0
2.2229
0
2.2229
0
2.2229
0.1
2.0073
-0.004
2.0204
0.0091
2.0117
0.0004
2.0113
0.2
1.8132
-0.0067
1.8364
0.0165
1.8205
0.0006
1.8199
0.3
1.6366
-0.0101
1.6691
0.0224
1.6476
0.0009
1.6467
0.4
1.4794
-0.0106
1.5169
0.0269
1.4909
0.0009
1.4900
0.5
1.3325
-0.0157
1.3784
0.0302
1.3496
0.0014
1.3482
0.6
1.2087
-0.0112
1.2521
0.0322
1.2209
0.001
1.2199
0.7
1.0839
-0.0199
1.1370
0.0332
1.1056
0.0018
1.1038
0.8
0.9915
-0.0073
1.0318
0.033
0.9994
0.0006
0.9988
0.9
0.8809
-0.0229
0.9358
0.032
0.9057
0.0019
0.9038
1.0
0.8177
0
0.8177
0
0.8177
0
0.8177
接下来,我们看看这三种差分格式在不同时间的图形。
图4.1 时三种差分格式结果的比较 图4.2 时三种差分格式结果的比较
图4.3 时三种差分格式结果的比较 图4.4 时三种差分格式结果的比较
4.2 结果分析
由表格中的数据以及图示可以看出,对于对流扩散方程的数值求解,三种差分格式的稳定性都比较好,其中以Crank-Nicolson格式的效果最好。
5.小结
对流扩散问题的数值求解一直是许多计算工作者比较重视的一类问题。本文分析了对流扩散方程的中心差分格式、Samarskii格式以及Crank-Nicolson格式。
中心差分格式和Samarskii格式是显式格式,所以很适合于并行计算,但由于稳定性条件的限制,必须采用非常小的时间步长来计算。Crank-Nicolson格式是隐式格式,它是无条件稳定的,但在每一时间层上要求解线性方程组,实现并行计算有一定困难。
中心差分格式的优点是简单易算,但由于截断误差为,又仅当,时才稳定和收敛,所以想要算得略为精确一点,就要缩小。并且注意到最大为,若缩小一半,就要缩小为四分之一,这将大大增加工作量。
Samarskii格式的截断误差也为,稳定性条件相对于中心差分格式有所放松,为,但计算量稍多于中心差分格式。
Crank-Nicolson格式的截断误差为,它关于时间以及空间均为二阶精度,但该格式形成的系数矩阵不一定满足对角占优条件,且计算量大。
鉴于本人的理论水平有限,论文中有些地方还需要加以完善。对于对流扩散方程的差分格式,在以后的理论发展中,还会提出一些具有更好性质的差分方法,使对流扩散方程的差分方法得到更加完善的补充。
展开阅读全文