对流扩散方程有限差分方法求解对流扩散方程的差分格式有很多种,在本节中将介绍以下3种有限差分格式:中心差分格式、Samarskii 格式、Crank-Nicolson 型隐式差分格式。
3.1 中心差分格式时间导数用向前差商、空间导数用中心差商来逼近,那么就得到了(1)式的中心差分格式]6[21111122h u u u vhu u au u nj n j n j nj n j n jn j -+-+++-=-+-τ(3)若令 haτλ=,2h vτμ=,则(3)式可改写为)2()(2111111nj n j n j n j n j n j n ju u u u u u u -+-+++-+--=μλ (4)从上式我们看到,在新的时间层1+n 上只包含了一个未知量1+n j u ,它可以由时间层n 上的值n j u 1-,n j u ,n j u 1+直接计算出来。
因此,中心差分格式是求解对流扩散方程的显示格式。
假定),(t x u 是定解问题的充分光滑的解,将1+n j u ,n j u 1+,n j u 1-分别在),(n j t x 处进行Taylor 展开:)(),(),(211ττO t u t x u t x u u njn j n j n j+⎥⎦⎤⎢⎣⎡∂∂+==++)(2),(),(322211h O x u h x u h t x u t x u u nj nj n j n j n j +⎥⎦⎤⎢⎣⎡∂∂+⎥⎦⎤⎢⎣⎡∂∂+==++)(2),(),(322211h O x u h x u h t x u t x u u njnj n j n j n j +⎥⎦⎤⎢⎣⎡∂∂+⎥⎦⎤⎢⎣⎡∂∂-==--代入(4)式,有 21111122),(hu u u vhu u au u t x T nj n j n j nj n j n jn j n j -+-+++---+-=τ)()()(2222h O v x u v h O a x u a O t u nj nj nj ⋅-⎥⎦⎤⎢⎣⎡∂∂-⋅+⎥⎦⎤⎢⎣⎡∂∂++⎥⎦⎤⎢⎣⎡∂∂=τ )()()(222h O v a O x u v x u a t u njnj nj ⋅-++⎥⎦⎤⎢⎣⎡∂∂-⎥⎦⎤⎢⎣⎡∂∂+⎥⎦⎤⎢⎣⎡∂∂=τ)(2h O +=τ显然,当0→τ,0→h 时,0),(→n j t x T ,即中心差分格式与定解问题是相容的。
由以上的讨论也可得知,对流扩散方程的中心差分格式的截断误差为)(2h O +τ。
对于我们上面构造的差分格式,是否可以直接用于实际计算呢?也就是说,如果初始值有误差,在计算过程中误差会不会扩大传播呢?这就是接下来我们要讨论的是差分方程的稳定性问题。
下面用Fourier 方法来分析中心差分格式的稳定性。
令ikjh n nje v u =,代入到(4)式)2()(21)1()1()1()1(1h j ik n ikjh n h j ik n h j ik n h j ik n ikjhn ikjhn e v e v e v e v e v ev ev -+-+++-+--=μλ整理得 n n v kh i kh v]sin )cos 1(21[1λμ---=+所以该差分格式的增长因子为:kh i kh k G sin )cos 1(21),(λμτ---= 其模的平方为222)(sin )]cos 1(21[),(kh kh k G λμτ---=2222)(s i n )c o s 1(4)c o s 1(41kh kh kh λμμ+-+--= )]cos 1()cos 1(44)[cos 1(122kh kh kh +-----=λμμ 由于0cos 1≥-kh ,所以1),(≤k G τ(即差分格式稳定)的充分条件为 0)c o s 1()c o s 1(4422≥+---kh kh λμμ 上式可以改写为0242c o s 1)82(222≥-+--λμμλkh注意到]1,0[)cos 1(21∈-kh ,所以上面不等式满足的条件为024)82(222≥-+-λμμλ, 0242≥-λμ。
由此得到差分格式(3)的稳定性限制为22av≤τ , 212≤h v τ。
故有结论:对流扩散方程的中心差分格式是条件稳定的。
根据Lax 等价定理,我们可以知道,对流扩散方程的中心差分格式是条件收敛的。
3.2 Samarskii 格式设a >0,先对方程(1)作扰动,得到另一个对流扩散方程]7[2211x u v R x u a t u ∂∂+=∂∂+∂∂ (5) 其中 ha vR 21=,当0→h 时,(5)式化为(1)式 对于(5)式,构造迎风格式21111211hu u u v R hu u au u nj n j n j nj n j n jn j -+-++-+=-+-τ(6) 差分格式(6)称为逼近对流扩散方程的Samarskii 格式。
首先推导(6)的截断误差。
设),(t x u 是对流扩散方程(1)式的充分光滑的解21111),(),(2),(11),(),(),(),(h t x u t x u t x u v R ht x u t x u at x u t x u T n j n j n j n j n j n j n j n j -+-++-+--+-=τ令2111),(),(2),(),(),(h t x u t x u t x u vt x u t x u n j n j n j n j n j nj-+++---=τα用 Taylor 级数展开有)()()(222h O xu v t u n j n j nj++∂∂-∂∂=τα再令 2111),(),(2),()111(),(),(h t x u t x u t x u v R h t x u t x u an j n j n j n j n j n j-+-+--+--=β 用 Taylor 级数展开有)()(11)(2)(22222h O xu v R x u ah t u a nj n j n j nj+∂∂++∂∂-∂∂=β )()(1)()(22222h O x uv R R x u Rv x u a n j n j +∂∂++∂∂-∂∂= )()(1)(2222h O xu v R R x u a nj n j +∂∂+-∂∂=由于)()24()21(4122222222h O v h av ah vha va h RR =+=+=+所以 )()(2h O xu a nj n j +∂∂=β )()()()(222h O xu v x u a t u T nj n j n j n jnjnj++∂∂-∂∂+∂∂=+=τβα)(2h O +=τ当0→τ,0→h 时,0→n j T ,所以Samarskii 格式与定解问题是相容的,并且其截断误差为)(2h O +τ。
现在看看Samarskii 格式的稳定性。
将(6)式两边同时加上)2(211nj n j n j u u u ha -++-,把(6)式化为 2111112)21(2h u u u ah R v hu u au u nj n j n j nj n j n jn j -+-+++-++=-+-τ令 21ahR v v ++=,则上式即为: 21111122hu u u vhu u au u nj n j n j nj n j n jn j -+-+++-=-+-τ根据中心显示格式稳定性的讨论,可以得到(6)式的稳定性条件为 212≤h v τ ,22av≤τ即21)21(2≤++h ah R v v τ , )21(22ahR v a ++≤τ 稳定性的第二个条件等价于1)1(22≤++ahR a v τ而 v R ah v R ah h R v v R ah v R a ah R a v 2)1(1)2)1((122)1(12)1()1(22222+++⋅+=+++⋅=++τττ 利用不等式v R ah vR ah v R ah 2)1(12)1(1)2)1((2++≤+++ 所以222)211(2)2)1(1(12)1(2hv ah R v v R ah h R v ahR a v τττ++=++⋅+≤++ 利用稳定性的第一个条件,有1212)1(22=⋅≤++ahR a v τ,从而可知稳定性条件的第二个条件可由第一个条件推出,因此差分格式的稳定性条件为21)211(2≤++h v ah R v τ, 即 212/122≤⋅⎥⎦⎤⎢⎣⎡++hv ah v ah τ。
由Lax 等价定理可知,Samarskii 格式也是条件收敛的。
3.3 Crank-Nicolson 型隐式差分格式前面讨论了求解对流扩散方程的两种显示格式,它们都是条件稳定的,为了放松稳定性条件,可以采用隐式格式进行求解。
现在考虑Crank-Nicolson 型隐式差分格式]8[)22(21111111hu u h u u a u u n j n j n j n j n jn j +-++-++-+-+-τ)22(2211111211hu u u h u u u v n j n j n j n j n j n j +-+++-++-++-= (7) 令h a τλ=,2hv τμ=,则(7)式可化为 11111)2()1(4)2(++++--++++-n j n j n j u u u μλμμλn j n j n j u u u 11)2()1(4)2(+-+-+-++=μλμμλ (8)把(8)式用矩阵的形式⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛++--++--++--+)1(4)2(2)1(4)2(2)1(4)2(2)1(4μμλμλμμλμλμμλμλμ ⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛+-+-++11121312n J n J n n u u u u = ⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛-++--++--++--)1(422)1(422)1(422)1(4μμλμλμμλμλμμλμλμ⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛--n J nJ n n u u u u 1232 + ⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛++-++++))(2(00))(2(1111n J n J n n u u u u μλμλ (9)设 =A ⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛++--++--++--+)1(4)2(2)1(4)2(2)1(4)2(2)1(4μμλμλμμλμλμμλμλμ , =B ⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛-++--++--++--)1(422)1(422)1(422)1(4μμλμλμμλμλμμλμλμ, =n U ⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛--n J nJ n nu u u u 1232 , =F ⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛++-++++))(2(00))(2(1111n J n J n n u u u u μλμλ 则有F BU AU n n +=+1下面讨论Crank-Nicolson 型格式的截断误差和精度。