二维波动方程的有限差分法Word版Word格式文档下载.docx
《二维波动方程的有限差分法Word版Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《二维波动方程的有限差分法Word版Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。
![二维波动方程的有限差分法Word版Word格式文档下载.docx](https://file1.bdocx.com/fileroot1/2022-10/18/b69ffc30-e8d0-46b4-a6a5-6f265c483703/b69ffc30-e8d0-46b4-a6a5-6f265c4837031.gif)
演示
综合
设计
其他
指导教师
曾芳
成绩
是
一.实验目的
通过该实验,要求学生掌握求解二维波动方程的有限差分法,并能通过计算机语言编程实现。
二.实验内容
考虑如下的初值问题:
(1)
1.在第三部分写出问题
(1)三层显格式。
2.根据你写出的差分格式,编写有限差分法程序。
将所写程序放到第四部分。
3.取,分别将时刻的数值解画图显示。
4.该问题的解析解为,将四个时刻的数值解的误差画图显示,对数值结果进行简单的讨论。
三.实验原理、方法(算法)、步骤
网格划分,故,,,。
在内网点,利用二阶中心差商,对
(1)建立差分格式:
(2)
整理得到:
(3)
其中,,网比,局部截断误差为。
考虑边界条件,差分格式为:
(4)
考虑初始条件,差分格式为:
(5)
考虑初始条件,利用二阶差商近似:
(6)
设时刻的点为内点,则满足差分格式
(2),代入上式得到:
(7)
将(6)得到的结果代入(7)中,整理得到:
(8)
综上
(2)、(4)、(5)、(8)得到三层显格式的差分格式为:
(9)
其中,局部截断误差为。
四.实验环境(所用软件、硬件等)及实验数据文件
Matlab
%二维波动方程数值计算(关键:
怎么运用i,j,k三个指标建立循环)
clc;
%可以将代码换成函数m文件
h=0.1;
tau=0.1*h;
%定义步长
r=tau/h;
%网比
[x,y,t]=meshgrid(0:
h:
1,0:
tau:
1.4);
%空间网格剖分
uu=cos(sqrt
(2)*pi*t).*sin(pi*x).*sin(pi*y);
%精确解计算
%第一层网点计算
u=sin(pi*x).*sin(pi*y);
%初始条件
u1=u(:
:
1);
%因为此时得到的u为11x11x141,故只取第一层
%第二层网点计算
fori=2:
10
forj=2:
u(i,j,2)=0.5*r^2*(u(i+1,j,1)+u(i-1,j,1)+u(i,j+1,1)+u(i,j-1,1))+(1-2*r^2)*u(i,j,1);
u(11,:
2)=0;
u(:
11,2)=0;
end
end
u2=u(:
2);
%第3-141层网点计算
fork=2:
140
fori=2:
u(i,j,k+1)=r^2*(u(i+1,j,k)+u(i-1,j,k)+u(i,j+1,k)+u(i,j-1,k))+(2-4*r^2)*u(i,j,k)-u(i,j,k-1);
k+1)=0;
11,k+1)=0;
%%%%%%%%%%%%%%%%%%%%%%%%%%结果分析与作图%%%%%%%%%%%%%%%%%%%%%%%%%%%%
wucha=abs(u-uu);
%求绝对误差矩阵11x11x141
wucha1=wucha(:
11);
%计算t=0.1时刻的绝对误差矩阵11x11
wucha2=wucha(:
51);
%计算t=0.5时刻的绝对误差矩阵11x11
wucha3=wucha(:
101);
%计算t=1.0时刻的绝对误差矩阵11x11
wucha4=wucha(:
141);
%计算t=1.4时刻的绝对误差矩阵11x11
x0=0:
1;
y0=0:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%误差分析%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%作t=0.1时刻的绝对误差图
subplot(2,2,1);
mesh(x0,y0,wucha1);
title('
t=0.1时刻的绝对误差'
);
xlabel('
x变量'
ylabel('
y变量'
zlabel('
绝对误差值'
%作t=0.5时刻的绝对误差图
subplot(2,2,2);
mesh(x0,y0,wucha2);
t=0.5时刻的绝对误差'
%作t=1.0时刻的绝对误差图
subplot(2,2,3);
mesh(x0,y0,wucha3);
t=1.0时刻的绝对误差'
%作t=1.4时刻的绝对误差图
subplot(2,2,4);
mesh(x0,y0,wucha4);
t=1.4时刻的绝对误差'
%%%%%%%%%%%%%%%%%%%%%%%%%%四个时刻数值解、精确解%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%作t=0.1、0.5时刻的数值解与精确解
mesh(x0,y0,u(:
11));
%作t=0.1时刻的数值解
t=0.1时刻的数值解'
u值'
mesh(x0,y0,uu(:
%作t=0.1时刻的精确解
t=0.1时刻的精确解'
%%作t=0.5时刻的数值解与精确解
51));
%作t=0.5时刻的数值解
t=0.5时刻的数值解'
%作t=0.5时刻的精确解
t=0.5时刻的精确解'
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%分别复制粘贴运行%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%作t=1.0、1.4时刻的数值解与精确解
101));
%作t=1.0时刻的数值解
t=1.0时刻的数值解'
%作t=1.0时刻的精确解
t=1.0时刻的精确解'
%%作t=1.4时刻的数值解与精确解
141));
%作t=1.4时刻的数值解
t=1.4时刻的数值解'
%作t=1.4时刻的精确解
t=1.4时刻的精确解'
五.实验结果及实例分析
1、时刻的数值解与精确解图
图1t=0.1、0.5时刻的数值解、精确解
图2t=1.0、1.4时刻的数值解、精确解
注:
上两图为四个时刻的数值解与精确解,
,三层显格式达二阶收敛,不难看出,收敛效果很好,符合理论。
下图是四个时刻的绝对误差图像,从图中看出,绝对误差较小,且经过计算得到,收敛阶近似于2,正好符合理论值。
2、时刻的绝对误差图
图3四个时刻的绝对误差
3、四个时刻(t=0.1、0.5、1.0、1.4)的绝对误差表
t=0.1时刻的绝对误差
0.0000
0.0001
0.0002
0.0003
0.0004
0.0005
0.0006
0.0007
0.0008
t=0.5时刻的绝对误差
0.000