偏微分方程数值及matlab实验报告.docx
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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数值边值条件
%输出参数 :