⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 assigntimestep.asv

📁 关于不同的差分格式求解对流偏微分方程的比较的程序
💻 ASV
字号:
clear;
PAI=3.1415926;
TOL=0.01;
DT=0.005;
H=0.01;
LAMD=DT/H;
%IF LAMD>1
%'ERROR CONDITION';
%END
N=100;
T_UW=0;
T_LF=0;
T_LW=0;
T_BW=0;
TN=0.5;
X=LINSPACE(0.4,0.6,N);
U0=zeros(N,1);
UN=zeros(N+3,1);
UN1=zeros(N+3,1);
for I=1:1:N
%U0(I)=1-cos(2*PAI*X(I));
U0(I)=1;
end
UN(3:N+2)=U0;

%UPWIND SCHEME
UN_UW=UN;
UN1_UW=UN1;
while T_UW<0.5
for I=1:1:N
UN1_UW(I+2)=(1-LAMD)*UN_UW(I+2)-LAMD*UN_UW(I+1);
end
UN_UW=UN1_UW;
T_UW=T_UW+DT;
end

%LAX-FRIEDRICHS SCHEME
UN_LF=UN;
UN1_LF=UN1;
while T_LF<0.5
for I=1:1:N
UN1_LF(I+2)=0.5*(1-LAMD)*UN_LF(I+3)+0.5*(1+LAMD)*UN_LF(I+1);
end
UN_LF=UN1_LF;
T_LF=T_LF+DT;
end

%LAX-WENDROFF SCHEME
UN_LW=UN;
UN1_LW=UN1;
while T_LW<0.5
for I=1:1:N
UN1_LW(I+2)=(1-LAMD^2)*UN_LW(I+2)-0.5*LAMD*(1-LAMD)*UN_LW(I+3)+0.5*LAMD*(1+LAMD)*UN_LW(I+1);
end
UN_LW=UN1_LW;
T_LW=T_LW+DT;
end

%BEAM-WARMING
UN_BW=UN;
UN1_BW=UN1;
while T_BW<0.5
for I=1:1:N
UN1_BW(I+2)=(1-1.5*LAMD+0.5*LAMD^2)*UN_BW(I+2)-LAMD*(2-LAMD)*UN_BW(I+1)-0.5*LAMD*(1-LAMD)*UN_BW(I);
end
UN_BW=UN1_BW;
T_BW=T_BW+DT;
end

save('DIFFERENCE SCHEME.MAT','T','U0','UN1_UW','UN1_LF','UN1_LW','UN1_BW');

subplot(2,2,1),plot(1:N,U0),hold on,plot(1:N+3,UN1_UW),hold off;
subplot(2,2,2),plot(1:N,U0),hold on,plot(1:N+3,UN1_LF),hold off;
subplot(2,2,3),plot(1:N,U0),hold on,plot(1:N+3,UN1_LW),hold off;
subplot(2,2,4),plot(1:N,U0),hold on,plot(1:N+3,UN1_BW),hold off;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -