当前位置:文档之家› 有限差分法求解偏微分方程MATLAB教学教材

有限差分法求解偏微分方程MATLAB教学教材

有限差分法求解偏微分方程M A T L A B南京理工大学课程考核论文课程名称:高等数值分析论文题目:有限差分法求解偏微分方程姓名:罗晨学号: 115104000545成绩:有限差分法求解偏微分方程一、主要内容1.有限差分法求解偏微分方程,偏微分方程如一般形式的一维抛物线型方程:22(,)()u uf x t t xαα∂∂-=∂∂其中为常数具体求解的偏微分方程如下:22001(,0)sin()(0,)(1,)00u u x t x u x x u t u t t π⎧∂∂-=≤≤⎪∂∂⎪⎪⎪=⎨⎪⎪==≥⎪⎪⎩2.推导五种差分格式、截断误差并分析其稳定性;3.编写MATLAB 程序实现五种差分格式对偏微分方程的求解及误差分析;4.结论及完成本次实验报告的感想。

二、推导几种差分格式的过程:有限差分法(finite-difference methods )是一种数值方法通过有限个微分方程近似求导从而寻求微分方程的近似解。

有限差分法的基本思想是把连续的定解区域用有限个离散点构成的网格来代替;把连续定解区域上的连续变量的函数用在网格上定义的离散变量函数来近似;把原方程和定解条件中的微商用差商来近似,积分用积分和来近似,于是原微分方程和定解条件就近似地代之以代数方程组,即有限差分方程组,解此方程组就可以得到原问题在离散点上的近似解。

推导差分方程的过程中需要用到的泰勒展开公式如下:()2100000000()()()()()()()......()(())1!2!!n n n f x f x f x f x f x x x x x x x o x x n +'''=+-+-++-+- (2-1)求解区域的网格划分步长参数如下:11k k k k t t x x hτ++-=⎧⎨-=⎩ (2-2) 2.1 古典显格式2.1.1 古典显格式的推导由泰勒展开公式将(,)u x t 对时间展开得2,(,)(,)()()(())i i k i k k k uu x t u x t t t o t t t∂=+-+-∂ (2-3) 当1k t t +=时有21,112,(,)(,)()()(())(,)()()i k i k i k k k k k i k i k uu x t u x t t t o t t tuu x t o tττ+++∂=+-+-∂∂=+⋅+∂ (2-4)得到对时间的一阶偏导数1,(,)(,)()=()i k i k i k u x t u x t uo t ττ+-∂+∂ (2-5) 由泰勒展开公式将(,)u x t 对位置展开得223,,21(,)(,)()()()()(())2!k i k i k i i k i i u uu x t u x t x x x x o x x x x∂∂=+-+-+-∂∂ (2-6)当11i i x x x x +-==和时,代入式(2-6)得2231,1,1122231,1,1121(,)(,)()()()()(())2!1(,)(,)()()()()(())2!i k i k i k i i i k i i i i i k i k i k i i i k i i i iu uu x t u x t x x x x o x x x x u u u x t u x t x x x x o x x x x ++++----⎧∂∂=+-+-+-⎪⎪∂∂⎨∂∂⎪=+-+-+-⎪∂∂⎩(2-7) 因为1k k x x h +-=,代入上式得2231,,22231,,21(,)(,)()()()2!1(,)(,)()()()2!i k i k i k i k i k i k i k i ku uu x t u x t h h o h x x u u u x t u x t h h o h x x +-⎧∂∂=+⋅+⋅+⎪⎪∂∂⎨∂∂⎪=-⋅+⋅+⎪∂∂⎩ (2-8) 得到对位置的二阶偏导数2211,22(,)2(,)(,)()()i k i k i k i k u x t u x t u x t u o h x h+--+∂=+∂ (2-9)将式(2-5)、(2-9)代入一般形式的抛物线型偏微分方程得21112(,)(,)(,)2(,)(,)(,)()i k i k i k i k i k i k u x t u x t u x t u x t u x t f x t o h h αττ++---+⎡⎤-=++⎢⎥⎣⎦(2-10)为了方便我们可以将式(2-10)写成11122k kk k k ki i i i i i u u u u u f h ατ++-⎡⎤--+-=⎢⎥⎣⎦(2-11) ()11122k k kk k k i i i i i i u u uu u f hτατ++----+= (2-12)最后得到古典显格式的差分格式为()111(12)k k k k k i i i i i u ra u r u u f ατ++-=-+++ (2-13)2r hτ=其中,古典显格式的差分格式的截断误差是2()o h τ+。

2.1.2 古典显格式稳定性分析古典显格式(2-13)写成矩阵形式为()112k k k h h h u ra I raC u f τ+=-++⎡⎤⎣⎦(2-14)12212,(,,......,,)k k k k kh N N r u u u u u h τ--==其中。

(1)(1)01010*********N N C -⨯-⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎣⎦L L MM L 上面的C 矩阵的特征值是:2cos()1,2,......,1C j h j N λπ==-()12H ra I raC =-+()()()212=122cos()121cos()14sin 1,2,......,12H j C ra ra ra ra j h ra j h j hra j N λλπππ=-+-+=--=-=- (2-15)使()1H ρ≤,即2114sin 12j hra π-≤-≤ 102ra ≤≤结论:当102ra ≤≤时,所以古典显格式是稳定的。

2.2 古典隐格式2.2.1 古典隐格式的推导 将1k t t -=代入式 (2-3)得21,11(,)(,)()()(())j k j k j k k k k k uu x t u x t t t o t t t---∂=+-+-∂ (2-16) 21,(,)(,)()()j k j k j k uu x t u x t o tττ-∂=-⋅+∂ (2-17)得到对时间的一阶偏导数1,(,)(,)()=()j k j k j k u x t u x t uo t ττ--∂+∂ (2-18) 将式(2-9)、(2-18)原方程得到11122(,)(,)(,)2(,)(,)(,)()j k j k j k j k j k j k u x t u x t u x t u x t u x t f x t o h h αττ-+---+⎡⎤-=++⎢⎥⎣⎦(2-19)为了方便把(2-19)写成11122k k k k kj jj j j k j u u u u u f h ατ-+-⎡⎤--+-=⎢⎥⎢⎥⎣⎦(2-20) ()11122k k kk k kj jj j j j u u uu u f h τατ-+----+= (2-21)最后得到古典隐格式的差分格式为()111(12)k k k k k j j j jj ra u r u u u f ατ-+-+-+=+ (2-22) 2r hτ=其中,古典隐格式的差分格式的截断误差是2()o h τ+。

2.2.2 古典隐格式稳定性分析将古典隐格式(2-22)写成矩阵形式如下()1212()k k kh h hra I raC u u f r h ττ++-=+=⎡⎤⎣⎦ (2-23)误差传播方程()112k k hh ra I raC v v ++-=⎡⎤⎣⎦ (2-24) ()12,A ra I raC B I=+-=所以误差方程的系数矩阵为()1112H A ra I raC --==+-⎡⎤⎣⎦()11,2,......,1122cos H j j N ra ra j hλπ==-+-使()1H ρ≤,显然()21122cos()112(1cos())114sin 2H j ra ra j h ra j h j h ra λπππ=+-=+-=+1H j λ≤恒成立。

结论:对于0r ∀>,即任意网格比下,古典隐格式是绝对稳定的。

2.3 Richardson 格式2.3.1 Richardson 格式的推导 将11k k t t t t +-==和,代入式(2-3)得21,1121,11(,)(,)()()(())(,)(,)()()(())i k i k i k k k k k i k i k i k k k k ku u x t u x t t t o t t t u u x t u x t t t o t t t +++---∂⎧=+-+-⎪⎪∂⎨∂⎪=+-+-⎪∂⎩(2-25) 即21,21,(,)(,)()()(,)(,)()()i k i k i k i k i k i ku u x t u x t o t u u x t u x t o t ττττ+-∂⎧=+⋅+⎪⎪∂⎨∂⎪=-⋅+⎪∂⎩(2-26) 由此得到可得211,(,)(,)()()2i k i k i k u x t u x t uo t ττ++-∂=+∂ (2-27)将式(2-9) 、(2-27)代入原方程得到下式2211112(,)(,)(,)2(,)(,)(,)()2i k i k i k i k i k i k u x t u x t u x t u x t u x t f x t o h h αττ+-+---+⎡⎤-=++⎢⎥⎣⎦(2-28) 为了方便可以把式(2-28)写成1111222k k k k k ki i i i i i u u u u u f h ατ+-+-⎡⎤--+-=⎢⎥⎣⎦(2-29) 即()111122k k kk k k i i i i i i u u uu u f hτατ+-+----+= (2-30)最后得到Richardson 显格式的差分格式为()1111222k k k k k k i i i i i i u r u u u u f ατ+-+-=-+++ (2-31)2r hτ=其中,古典显格式的差分格式的截断误差是22()o h τ+。

相关主题