文档介绍:偏微分方程数值及matlab实验报告
偏微分方程数值实验报告八
实验题目:利用有限差分法求解
u
(x)
u(x)
f(x),
u(
1)
0,u(1)
0.
真解为
u(x)
ex2
(1
x2)
实现算法:对于两点边值问题
d2u
f,x
l,
dx2
(1)
u(a),u(b)
,
其中l(a,b)(a
b),f为l
[a,b]上的连续函数,
,
为给定常数.
其相应的有限差分法的算法如下:
,得到计算网格 .在这里我们对区间 l均匀剖分n段,每个剖分单元
b
a
的剖分步长记为h
.
n
,得到差分方程
.运用的离散方法有:
方法一:用待定系数和泰勒展开进行离散
d2u(xi)
i1u(xi1)
iu(xi)
i1u(xi1)
d(xi)2
方法二:利用差商逼近导数
d2u(xi) u(xi1) 2u(xi) u(xi1)
d(xi)2 h2
将(2)带入(1)可以得到
u(xi1)2u(xi)u(xi1)
)
Ri(u),
h2
f(xi
其中Ri(u)为无穷小量,这时我们丢弃Ri
(u),则有在xi处满足的计算公式:
u(xi1)2u(xi)u(xi1)
1,...,n1
h2
f(xi),i
,进行边界处理
.由(1)可得
u0
,un
(2)
(3)
(4)
称(3)(4)为逼近(1)的差分方程,并称相应的数值解向量
Un1为差分解,ui为u(xi)的近似值.
,得到数值解向量Un1.
实验题目:用Lax-Wendroff 格式求解方程:
ut
2ux
0,x(0,1),t
0,
u(x,0)
1
sin2
x,x
[0,1],
u(1,t)
1
sin4
t.
(精确解u
1sin2(x
2t).)
数值边值条件分别为:
(a)u0n1
u0n2(u1n
u0n).
h
(b)u0n
u1n.
(c)u0n1-2u1n1
u2n1
0.
请将计算结果与精确解进行比较。
实现算法:
:
对求解区域G
(0,1)
(0,T]作均匀网格剖分.
节点:
xj
jh,
j
0,1,...,N
tk
jh,
k
0,1,...,M
其中空间和时间步长:
h
1,
T.
N
M
算法实现
u(xi,tk1)在节点(xi,tk)处作泰勒级数展开
u(xi,tk1)
u(xi,tk)
[
u
k
2
2uk
O(
3
)
]i
[
t
2]i
t
2!
考虑在节点(xj,tk)处(1)的微分方程,有:
u
a
u
0.
t
x
2u
(
a
u
a
(
u
2
2u
t
2
)
)a
x
2.
t
x
x
t
将上述两式代入(2)式,得
u(xi,tk1)u(xi,tk)a[u]ik
a22[
2u2]ik
O(3)
x
2
x
对x的一阶、二阶导数用中心差商代替
1)
2)
uk
1
2
[
x]i
2h
[(u(xi
1,tk)
u(xi1,tk))]
O(h
)
[
2uk
1
2u(xi,tk)
u(xi1,tk))]
2
)
x
2]i
h
2[(u(xi1,tk)
O(h
代入整理后得到
u(xi,tk1)u(xi,tk)
a[u(xi1,tk)u(xi1,tk)]
2h
a
2
2
O(h2)
2h2)
O(3)
2
[u(xi1,tk)
2u(xi,tk)
u(xi
1,tk)]
O(
2h
略去误差项,以
uik代替u(xi,tk),得到如下差分格式
a(uik1
2
2
uik1
uik
uik1)
a
2(uik1
2uik
uik1)
(3)
2h
2h
(3)式就是Lax-Wendroff格式,其截断误差为
O(
2
h2),节点如图
|a|
,就得到(
1)式的Lax-Wendroff
格式的公式
令r
h
uik1
uik
r(uik1
uik1)
r2
(uik1
2uik
uik
1)
(4)
2
2
(4)式是二阶精度的差分格式 .
程序代码:
function [X,T,U]=advection_fd1d(NS,NT,pde,bd)
WAVE_E