偏微分方程数值及matlab实验报告.docx

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

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

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

u ( x) u(x) f (x),

u( 1) 0, u(1)

0.

真解为

u( x)

e x

2

(1 x 2

)

实现算法:对于两点边值问题

d 2u f , x

l ,

dx 2

(1)

u(a),u(b)

,

其中 l ( a, b) (a

b), f 为 l

[ a,b] 上的连续函数, ,

为给定常数 .

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

1.对求解区域做网格剖分,得到计算网格

.在这里我们对区间 l 均匀剖分 n 段,每个剖分单元

b

a

的剖分步长记为 h .

n

2.对微分方程中的各阶导数进行差分离散,得到差分方程

.运用的离散方法有:

方法一 :用待定系数和泰勒展开进行离散

d 2u( x i ) i 1

u( x i 1)

i u( x i )

i 1

u( x i 1)

d( x i )2

方法二:利用差商逼近导数

d 2u( x i ) u( x i 1 ) 2u( x i ) u( x i 1 ) d( x i )2 h 2

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

u(x i 1) 2u(x i ) u(x i 1 )

) R i (u) ,

h 2

f ( x i

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

u(x i 1) 2u( x i ) u( x i 1 )

1,..., n 1

h 2 f ( x i ), i

3.根据边界条件,进行边界处理

.由 (1)可得

u 0

, u n

(2)

(3)

(4)

称(3)(4)为逼近 (1) 的差分方程,并称相应的数值解向量

U n 1 为差分解, u i 为 u( x i ) 的近似值 .

4.最后求解线性代数方程组,得到数值解向量U n 1 .

实验题目: 用 Lax-Wendroff

格式求解方程:

u t 2u x 0, x (0,1), t 0,

u( x,0) 1 sin 2 x, x [ 0,1],

u(1,t ) 1 sin 4 t.

(精确解 u 1 sin 2 ( x

2t). )

数值边值条件分别为:

(a ) u 0

n 1

u 0n

2

(u 1n u 0n ).

h

(b ) u 0n u 1n .

(c ) u 0n 1 - 2u 1n 1 u 2n 1 0.

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

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

对求解区域 G (0,1) (0,T ] 作均匀网格剖分 .

节点:

x j

jh , j 0,1,..., N

t k jh ,

k

0,1,..., M

其中空间和时间步长:

h

1 , T .

N

M

2. 算法实现

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

u(x i , t k 1) u(x i , t k )

[

u k 2

2

u k

O ( 3

)

]

i

[

t 2 ]i

t

2!

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

u a u 0.

t x

2

u

( a u a ( u

2

2

u

t 2

) ) a

x 2

.

t

x

x t

将上述两式代入( 2)式,得

u( x i ,t k 1 ) u( x i ,t k ) a [ u

] i k a 2 2 [ 2 u 2 ]i k O ( 3 )

x 2 x

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

( 1)

( 2)

u k12

[x ]

i2h[( u( x i1, t k )u( x i 1, t k ))]O(h)

[2u k1

2u( x i ,t k )u( x i 1, t k ))]

2

) x2 ]i h2 [( u(x i 1 ,t k )O (h

代入整理后得到

u( x i ,t k 1 ) u( x i ,t k )a

[ u( x i 1 ,t k ) u( x i 1 ,t k )] 2h

a 22

O( h2 ) 2 h2 )O( 3 ) 2

[ u( x i 1 ,t k )2u( x i , t k )u( x i1 , t k )]O (

2h

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

a

(u i k122

u i k 1u i k u i k1 )a2 (u i k12u i k u i k1)( 3)

2h2h

( 3)式就是 Lax-Wendroff 格式,其截断误差为O(2h2 ) ,节点如图

| a |

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

令 r h

u i k 1u i k r

(u i k1u i k1 )r 2(u i k12u i k u i k1

)

( 4)22

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

程序代码:

function [X,T,U] = advection_fd1d (NS ,NT ,pde,bd)

%WAVE_EQUATION_FD1D利用有限差分方法计算一维双曲线方程%输入参数:

%NS整型,空间剖分段数

%NT整型,时间剖分段数

%pde结构体,带求解的微分方程模型的已知数据,

%如边界、初始、系数和右端项等条件. %bd数值边值条件

%输出参数 :

相关文档
最新文档