一维波动方程的有限差分法.docx
- 文档编号:15612214
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:12
- 大小:28.54KB
一维波动方程的有限差分法.docx
《一维波动方程的有限差分法.docx》由会员分享,可在线阅读,更多相关《一维波动方程的有限差分法.docx(12页珍藏版)》请在冰点文库上搜索。
一维波动方程的有限差分法
学生实验报告
实验课程名称偏微分方程数值解
开课实验室数统学院
学院数统年级2013专业班信计02班
学生姓名学号
开课时间2015至2016学年第2学期
总成绩
教师签名
数学与统计学院制
开课学院、实验室:
数统学院实验时间:
2016年6月20日
实验项目
名称
一维波动方程的有限差分法
实验项目类型
验证
演示
综合
设计
其他
指导教师
曾芳成绩
是
1.实验目的
通过该实验,要求学生掌握求解一维波动方程的有限差分法,并能通过计算机语言编程实现。
2.实验内容
考虑如下的初值问题:
2u2u
22,x0,1,t0,2
tx
ux,0sinx,—j~ux,00
(1)
u0,tu1,t0,t0,2
1.在第三部分写出问题
(1)三层显格式。
2.根据你写出的差分格式,编写有限差分法程序。
将所写程序放到第四部分。
3.取h0.1,0.1h,分别将t0.5,1.0,1.5,2.0时刻的数值解画图显示。
4•该问题的解析解为ux,tcostsinx,将四个时刻的数值解的误差画图显示,对数值结果进行简单的讨论。
3.实验原理、方法(算法)、步骤
1、三层显格式建立
由于题中h0.1,0.1h,x
0,1,t
0,2,取N10,M200,故令网比r0.1,h
Xjjh,j0,1,2,L10,tk
k,k
O,1L
200,在
内网个点处,利用二阶中心差商得
到如下格式:
k1k
UJ2uj
2-
k1
Uj
kk
Uj12Ujh2
k
Uj1
oh2
略去误差项得到:
k1
Uj
其中j1,2丄9,k
对于初始条件
2k
rUJ1
1,2,L,199,局部截断误差为
ux,0sin
0
UJ
k
Uj
k
rUj
2o
k1
UJ
h2。
(3)
对于初始条件
-ux,0t
x,建立差分格式为:
sinxjsinJh,J
利用中心差商,建立差分格式为:
0,1,2,L10
(4)
对于边界条件
将差分格式延拓使
综上(3)、(4)、
k1
uj
其中r山o.1
1
UJ
2
1
Uj
0,即u1二Uj1,J0,1,2,L10
(5)
0,t0,2,建立差分格式为:
uN0,k0,1,L,200
k0为内点,代入(3)得到的式子再与(5)联立消去
1120’201
5ru,11ru,r
J2JJ2
(7)得到三层显格式如下:
u0,tu1,t
k
U0
(6)、
2k
rUj1
21r2
k2k
UjrUj1
k1・
Uj,J
Uj
(6)
1后整理得到:
0
Uj1
(7)
(局部截断误差为
1,2,L9,k1,2,L
199
h2)
1
Uj
0
Ujsin
120
2ruj1
k
Uo
Xj
k
UN
sin
20
rUj
0,k
0,1,2,L10
Jh,J
1
2r2u01,J1,2,L9
0,1L,200
(8)
四•实验环境(所用软件、硬件等)及实验数据文件
Matlab
三层显格式程序如下:
%一维波动方程,三层显格式求解法
h=0.1;tau=0.1*h;
r=tau/h;N=1/h;M=2/tau;
x=0:
h:
1;t=0:
tau:
2;
u=sin(pi*x);%计算t=0时刻的u值
u(1,11)=0;
forj=2:
N
u(2,j)=0.5*rA2*u(1,j+1)+(1-rA2)*u(1,j)+0.5*rA2*u(1,j-1);
end
%定义x=0边界上的数值
fork=1:
M+1
u(k,1)=0;
end
%定义x=1边界上的数值
fork=1:
M+1
u(k,N+1)=0;
end
%迭代计算开始,差分格式
fork=2:
M
forj=2:
N
u(k+1,j)=rA2*u(k,j+1)+2*(1-rA2)*u(k,j)+rA2*u(k,j-1)-u(k-1,j);
end
end
u(201,:
)=zeros(1,11);
%计算k=201行的数值解
u2(201,11)=0;
forj=2:
N
u2(201,j)=rA2*u(200,j+1)+2*(1-rA2)*u(200,j)+rA2*u(200,j-1)-u(199,j);
end
u=u+u2;
u=rot90(u,2);%将矩阵u旋转180度赋值于u
%作出图像
[x,t]=meshgrid(0:
0.1:
1,0:
0.01:
2);%划分网格
%作出数值解的函数图像
subplot(2,2,1);
mesh(x,t,u);
title('u(x,t)数值解的函数图像');
xlabel('x变量');
ylabel('t变量');
zlabel('u值');
%作出精确解的函数图像
subplot(2,2,2);
u1=cos(pi*t).*sin(pi*x);
mesh(x,t,u1);
title('u(x,t)精确解的函数图像');
xlabel('x变量');
ylabel('t变量');
zlabel('u值');
%作出t=0.5,1.0,1.5,2.0时刻的绝对误差图像
subplot(2,2,3);
wucha=abs(u-u1);
x=0:
h:
1;
plot(x,wucha(51,:
),'g*-');
holdon
gridon
plot(x,wucha(101,:
),'ro-');
holdon
plot(x,wucha(151,:
),'ks-');
holdon
plot(x,wucha(201,:
),'mp-');
title('t=0.5,1.0,1.5,2.0时刻的绝对误差函数图像');
xlabel('x变量');ylabel('绝对误差值');legend('t=0.5','t=1.0','t=1.5','t=2.0');
%作出t=0.5,1.0,1.5,2.0时刻的数值解函数图像
subplot(2,2,4);
x=0:
h:
1;
plot(x,u(51,:
),'g*-');
holdon
gridon
plot(x,u(101,:
),'ro-');
holdon
plot(x,u(151,:
),'ks-');holdonplot(x,u(201,:
),'mp-');
title('t=0.5,1.0,1.5,2.0时刻的数值解函数图像');
xlabel('x变量');ylabel('u值');legend('t=0.5','t=1.0','t=1.5','t=2.0');
%当然也可以作出u(x,t)绝对误差的函数图像
%mesh(x,t,wucha);
%title('u(x,t)绝对误差的函数图像');
%xlabel('x变量');
%ylabel('t变量');
%zlabel('绝对误差值');
五•实验结果及实例分析
1、u(x,t)在t=0.5,1.0,1.5,2.0
时刻的数值解、精确解以及绝对误差
)在t=0.5,1.0,1.5,2.0时刻的数值解
表1u(x,t
时刻t
t=0.5,1.0,1.5,2.0时刻的数值解
0
-0.005
-0.011
-0.015
-0.018
-0.019
-0.018
-0.015
-0.011
-0.005
0
t=0.5
9
3
5
2
2
2
5
3
9
0
-0.309
-0.587
-0.809
-0.951
-0.999
-0.951
-0.809
-0.587
-0.309
0
t=1.0
0
7
0
0
9
0
0
7
0
0
0
t=1.5
0.0020
0.0038
0.0052
0.0061
0.0064
0.0061
0.0052
0.0038
0.0020
0
0
t=2.0
0.3090
0.5878
0.8090
0.9511
1.0000
0.9511
0.8090
0.5878
0.3090
表2u(x,t)在t=0.5,1.0,1.5,2.0时刻的精确解
时刻t
t=0.5,1.0,1.5,2.0时刻的精确解
0
0
t=0.5
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0
-0.309
-0.587
-0.809
-0.951
-1.000
-0.951
-0.809
-0.587
-0.309
0
t=1.0
0
8
0
1
0
1
0
8
0
0
0
t=1.5
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
t=2.0
0
0.3090
0.5878
0.8090
0.9511
1.0000
0.9511
0.8090
0.5878
0.3090
0
表3u(x,t)在t=0.5,1.0,1.5,2.0时刻的绝对误差
时刻t
t=0.5,1.0,1.5,2.0时刻的绝对误差
t=0.5
t=1.0
t=1.5
t=2.0
00
0.00590.01130.01550.01820.01920.01820.01550.01130.0059
00
0.00000.00000.00010.00010.00010.00010.00010.00000.0000
00
0.00200.00380.00520.00610.00640.00610.00520.00380.0020
00
0.00000.00000.00000.00000.00000.00000.00000.00000.0000
说明:
在t=0.5时刻的绝对误差最大,t=1.5时刻次之,t=1与t=2时刻的绝对误差均较小,由于r-0.11,该格式稳定,由数值计算得到的矩阵不难看出,数值解符合理论
h
解。
2、u(x,t)在t=0.5,1.0,1.5,2.0时刻的数值解、绝对误差函数图像
图1数值解、精确解以及绝对误差函数图像
说明:
上两图为函数的数值解与精确解,下两图为t=0.5,1.0,1.5,2.0时刻的数值解、绝
对误差函数图像,符合理论解。
教师签名
-可编辑修改-
THANKS!
!
!
致力为企业和个人提供合同协议,策划案计划书,学习课件等等
打造全网一站式需求
欢迎您的下载,资料仅供参考
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 波动 方程 有限 差分法