偏微分方程数值及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-1

2111

n 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 的一阶、二阶导数用中心差商代替

)

(

))]

,

(

)

,

(

[(

2

1

]

[2

1

1

h

O

t

x

u

t

x

u

h

x

u

k

i

k

i

k

i

+

-

=

-

+

)

(

))]

,

(

)

,

(

2

)

,

(

[(

1

]

[2

1

1

2

2

2

h

O

t

x

u

t

x

u

t

x

u

h

x

u

k

i

k

i

k

i

k

i

+

+

-

=

-

+

代入整理后得到

)

(

)

(

)

(

)]

,

(

)

,

(

2

)

,

(

[

2

)]

,

(

)

,

(

[

2

)

,

(

)

,

(

3

2

2

2

1

1

2

2

2

1

1

1

τ

τ

τ

τ

τ

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

)

(

21

1

2

2

2

1

1

1k

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格式,其截断误差为)

(2

2h

O+

τ,节点如图

h

a

r

τ|

|

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

)

2

(

2

)

(

21

1

2

1

1

1k

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 利用有限差分方法计算一维双曲线方程

相关文档
最新文档