一维波动方程的有限差分法文档格式.docx
《一维波动方程的有限差分法文档格式.docx》由会员分享,可在线阅读,更多相关《一维波动方程的有限差分法文档格式.docx(9页珍藏版)》请在冰点文库上搜索。
指导教师
曾芳
成绩
是
一.实验目的
通过该实验,要求学生掌握求解一维波动方程的有限差分法,并能通过计算机语言编程实现。
二.实验内容
考虑如下的初值问题:
(1)
1.在第三部分写出问题
(1)三层显格式。
2.根据你写出的差分格式,编写有限差分法程序。
将所写程序放到第四部分。
3.取
,分别将
时刻的数值解画图显示。
4.该问题的解析解为
,将四个时刻的数值解的误差画图显示,对数值结果进行简单的讨论。
三.实验原理、方法(算法)、步骤
1、三层显格式建立
由于题中
,
,取
,故令网比
,在
内网个点处,利用二阶中心差商得到如下格式:
(2)
略去误差项得到:
(3)
其中
,局部截断误差为
。
对于初始条件
,建立差分格式为:
(4)
,利用中心差商,建立差分格式为:
(5)
对于边界条件
(6)
将差分格式延拓使
为内点,代入(3)得到的式子再与(5)联立消去
后整理得到:
(7)
综上(3)、(4)、(6)、(7)得到三层显格式如下:
(局部截断误差为
)
(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*r^2*u(1,j+1)+(1-r^2)*u(1,j)+0.5*r^2*u(1,j-1);
end
%定义x=0边界上的数值
fork=1:
M+1
u(k,1)=0;
%定义x=1边界上的数值
u(k,N+1)=0;
%迭代计算开始,差分格式
fork=2:
M
forj=2:
u(k+1,j)=r^2*u(k,j+1)+2*(1-r^2)*u(k,j)+r^2*u(k,j-1)-u(k-1,j);
end
end
u(201,:
)=zeros(1,11);
%计算k=201行的数值解
u2(201,11)=0;
u2(201,j)=r^2*u(200,j+1)+2*(1-r^2)*u(200,j)+r^2*u(200,j-1)-u(199,j);
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);
u(x,t)精确解的函数图像'
%作出t=0.5,1.0,1.5,2.0时刻的绝对误差图像
subplot(2,2,3);
wucha=abs(u-u1);
plot(x,wucha(51,:
),'
g*-'
holdon
gridon
plot(x,wucha(101,:
ro-'
holdon
plot(x,wucha(151,:
ks-'
plot(x,wucha(201,:
mp-'
t=0.5,1.0,1.5,2.0时刻的绝对误差函数图像'
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);
plot(x,u(51,:
plot(x,u(101,:
plot(x,u(151,:
plot(x,u(201,:
t=0.5,1.0,1.5,2.0时刻的数值解函数图像'
%当然也可以作出u(x,t)绝对误差的函数图像
%mesh(x,t,wucha);
%title('
u(x,t)绝对误差的函数图像'
%xlabel('
%ylabel('
%zlabel('
五.实验结果及实例分析
1、u(x,t)在t=0.5,1.0,1.5,2.0时刻的数值解、精确解以及绝对误差
表1u(x,t)在t=0.5,1.0,1.5,2.0时刻的数值解
时刻t
t=0.5,1.0,1.5,2.0时刻的数值解
t=0.5
0
-0.0059
-0.0113
-0.0155
-0.0182
-0.0192
t=1.0
-0.3090
-0.5877
-0.8090
-0.9510
-0.9999
t=1.5
0.0020
0.0038
0.0052
0.0061
0.0064
t=2.0
0.3090
0.5878
0.8090
0.9511
1.0000
表2u(x,t)在t=0.5,1.0,1.5,2.0时刻的精确解
t=0.5,1.0,1.5,2.0时刻的精确解
0.0000
-0.5878
-0.9511
-1.0000
表3u(x,t)在t=0.5,1.0,1.5,2.0时刻的绝对误差
t=0.5,1.0,1.5,2.0时刻的绝对误差
0.0059
0.0113
0.0155
0.0182
0.0192
0.0001
说明:
在t=0.5时刻的绝对误差最大,t=1.5时刻次之,t=1与t=2时刻的绝对误差均较小,由于
,该格式稳定,由数值计算得到的矩阵不难看出,数值解符合理论解。
2、u(x,t)在t=0.5,1.0,1.5,2.0时刻的数值解、绝对误差函数图像
图1数值解、精确解以及绝对误差函数图像
上两图为函数的数值解与精确解,下两图为t=0.5,1.0,1.5,2.0时刻的数值解、绝对误差函数图像,符合理论解。
年月日
THANKS
致力为企业和个人提供合同协议,策划案计划书,学习课件等等
打造全网一站式需求
欢迎您的下载,资料仅供参考