1 / 16
文档名称:

偏微分方程数值及matlab实验报告(8).docx

格式:docx   大小:367KB   页数:16页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

偏微分方程数值及matlab实验报告(8).docx

上传人:kunpengchaoyue 2022/5/8 文件大小:367 KB

下载得到文件列表

偏微分方程数值及matlab实验报告(8).docx

相关文档

文档介绍

文档介绍:(2)
0.
x
-可编辑修改-
(2)
0.
x
-可编辑修改-
-可编辑修改-
偏微分方程数值实验报告八
i•对求解区域做网格剖分,得到计算网格的剖分步长记为h•口•
n
2•对微分方程中的各)
2
-可编辑修改-
-可编辑修改-
(4)
2
-可编辑修改-
(4)
2
-可编辑修改-
-可编辑修改-
略去误差项,以Uik代替u(x,tk),得到如下差分格式
(4)
2
-可编辑修改-
(4)
2
-可编辑修改-
-可编辑修改-
(4)
2
-可编辑修改-
(4)
2
-可编辑修改-
-可编辑修改-
k1k
UiUi
22
azkk、akk(Ui1Ui1)r(Ui12ui
2h2h
uh
(3)
(3)式就是Lax-Wendroff
格式,其截断误差为O(2h2),节点如图
ri
令r色L,就得到(
h
1)式的
Lax-Wendrof格式的公式
(4)
2
-可编辑修改-
(4)
2
-可编辑修改-
-可编辑修改-
(4)
2
-可编辑修改-
(4)
2
-可编辑修改-
-可编辑修改-
k1k
UiUi
2(uik1
2
2
k\「/kkk、
Ui1)(Ui12UiUi1)
(4)式是二阶精度的差分格式
(4)
2
-可编辑修改-
(4)
2
-可编辑修改-
-可编辑修改-
-可编辑修改-
-可编辑修改-
程序代码:
function[X,T,U]=advection_fd1d(NS,NT,pde,bd)
%WAVE_EQUATION_FD1D利用有限差分方法计算一维双曲线方程
%输入参数:
%NS整型,空间剖分段数
%NT整型,时间剖分段数
%pde结构体,带求解的微分方程模型的已知数据,
%如边界、初始、系数和右端项等条件.
%bd数值边值条件
%输出参数:
%X长度NS+1的列向量,空间网格剖分
%T长度NT+1的行向量,时间网格剖分
-可编辑修改-
-可编辑修改-
-可编辑修改-
U(NS+1)*(NT+1)矩阵,U(:,i)表示第i个时间层网格剖分上的数值解
[X,h]=(NS);
[T,tau]=(NT);
N=length(X);M=length(T);
U=zeros(N,M);
%初值条件
U(:,1)=(X);
a=;
r=a*tau/h;
%边值条件
ifa>=0%左边值条件
U(1,:)=(T)
else
U(end,:)=(T)%右边值条件
end
fori=2:M
U(2:end-1,i)=U(2:end-1,i-1)-r*(U(3:end,i-1)-U(1:end-2,i-1))/2+...
L2*(U(3:end,i-1)-2*U(2:end-1,i-1)+U(1:end-2,i-1))/2;
switch(bd)
-可编辑修改-
case{'a0'}
a0();
case{'b'}
b();
case{'c'}
c();
otherwise
disp(['Sorry,Idonotknowyour',bd]);
end
end
functiona0()
U(1,i)=U(1,i-1)-r*(U(2,i-1)-U(1,i-1));
end
functionb()
U(1,i)=U(2,i-1);
end
functionc()
U(1,i)=2*U(2,i)-U(3,i);
end
endfunctionpde=model_data()
-可编辑修改-
-可编辑修改-
-可编辑修改-
%MODEL_DATA数据模型
TI=0;
TF=1;
SI=0;
SF=1;
pde=struct('u_exact',***@u_exact,'u_initial',***@u_initial,...'u_left',***@u_left,'u_right',***@u_right,'time_grid',...
***@time_grid,'space_grid',***@space_grid,'advection_fd1d_error',***@advection_fd1d_error,'a',-2);