偏微分方程数值及matlab实验报告(8)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

偏微分方程数值实验报告八

实验题目:利用有限差分法求解

.

0)1(,0)1(),()()(==-=+''-u u x f x u x u 真解为

)

1()(22

x e x u x -=-实现算法:对于两点边值问题

,

)(,)(,,d 22βα==∈=-b u a u l x f dx

u

(1)

其中),(b a l =f b a ),(<为],[b a l =上的连续函数,βα,为给定常数.

其相应的有限差分法的算法如下:

1.对求解区域做网格剖分,得到计算网格.在这里我们对区间l 均匀剖分n 段,每个剖分单元的剖分步长记为n

a

b h -=

.2.对微分方程中的各阶导数进行差分离散,得到差分方程.运用的离散方法有:方法一:用待定系数和泰勒展开进行离散

)()()()(d )

(d 11112

2++--++≈i i i i i i i i x u x u x u x x u ααα方法二:利用差商逼近导数

2

112

2)

()(2)()(d )(d h x u x u x u x x u i i i i i -++-≈(2)

将(2)带入(1)可以得到

)()()

()(2)(2

11u R x f h x u x u x u i i i i i +=+--

-+,

其中)(u R i 为无穷小量,这时我们丢弃)(u R i ,则有在i x 处满足的计算公式:

1

,...,1)()

()(2)(2

11-==+--

-+n i x f h x u x u x u i i i i ,(3)

3.根据边界条件,进行边界处理.由(1)可得

β

α==n u u ,0(4)

称(3)(4)为逼近(1)的差分方程,并称相应的数值解向量1-n U 为差分解,i u 为)(i x u 的近似值.4.最后求解线性代数方程组,得到数值解向量1

-n U .

实验题目:用Lax-Wendroff 格式求解方程:

.

4sin 1),1(],

1,0[,2sin 1)0,(,

0),1,0(,02t t u x x x u t x u u x t ππ+=∈+=>∈=- (1) (精确解).2(2sin 1t x u ++=π) 数值边值条件分别为: (a )).(20101

n 0

n

n n

u u h

u u -+

=+τ (b ).1n

0n u u =

(c ).02-12111n 0=++++n n u u u

请将计算结果与精确解进行比较。

实现算法: 1.网格剖分:

对求解区域],0()1,0(G T ⨯=作均匀网格剖分. 节点: ,jh x j = N j ,...,1,0= ,jh t k = M k ,...,1,0= 其中空间和时间步长:.,1M

T N h ==τ 2.算法实现

将),(1+k i t x u 在节点),(k i t x 处作泰勒级数展开

)(][!2][),(),(32221τττO t

u t u t x u t x u k

i k i k i k i +∂∂+∂∂+=+ (2)

考虑在节点),(k j t x 处(1)的微分方程,有:

.0=∂∂-∂∂x

u a t u .)()(2

2

222x u a t u x a x u a t t u ∂∂=∂∂∂∂-=∂∂-∂∂=∂∂ 将上述两式代入(2)式,得

)(][2][),(),(322221τττO x

u a x u a t x u t x u k

i k i k i k i +∂∂+∂∂-=+

对x 的一阶、二阶导数用中心差商代替

)())],(),([(21

][

211h O t x u t x u h

x u k i k i k i +-=∂∂-+ )())],(),(2),([(1

][211222h O t x u t x u t x u h

x u k i k i k i k i ++-=∂∂-+ 代入整理后得到

)()()()],(),(2),([2)],(),([2),(),(3222112

2

2111ττττ

τ

O h O h O t x u t x u t x u h

a t x u t x u h

a t x u t x u k i k i k i k i k i k i k i ++++-+

--

=-+-++

略去误差项,以k i u 代替),(k i t x u ,得到如下差分格式

)2(2)(2112

22111k i k i k i k

i k i k i

k i

u u u h

a u u h a u u

---+++-+--=ττ (3) (3)式就是Lax-Wendroff 格式,其截断误差为)(22h O +τ,节点如图

令h

a r τ

||=

,就得到(1)式的Lax-Wendroff 格式的公式 )2(2

)(2112111k i k i k i k

i k i k i

k i

u u u r u u r u u

---+++-+--= (4)

(4)式是二阶精度的差分格式.

程序代码:

function [X,T,U] = advection_fd1d (NS ,NT ,pde,bd) % WAVE_EQUATION_FD1D 利用有限差分方法计算一维双曲线方程

相关文档
最新文档