convergence.m

来自「关于不同的差分格式求解对流偏微分方程的比较的程序」· M 代码 · 共 49 行

M
49
字号
CLEAR;
PAI=3.1415926;
TOL=0.01;
T=0.0001;
H=0.01;
LAMD=T/H;
IF LAMD>1
'ERROR CONDITION';
END
N=100;
X=LINSPACE(0,1,N);
U0=ZEROS(N,1);
UN=ZEROS(N+3,1);
UN1=ZEROS(N+3,1);
FOR I=1:1:100
U0(I)=1-COS(2*PAI*X(I));
END
UN(3:102)=U0;

%UPWIND SCHEME
UN_UW=UN;
UN1_UW=UN1;
WHILE NORM(UN1_UW-UN_UW)>TOL
FOR I=1:1:100
UN1_UW(I+2)=(1-LAMD)*UN_UW(I+2)-LAMD*UN_UW(I+1);
UN_UW=UN1_UW;
END
END

%LAX-FRIEDRICHS SCHEME
UN_LF=UN;
UN1_LF=UN1;
WHILE NORM(UN1_LF-UN_LF)>TOL
FOR I=1:1:100
UN1_LF(I+2)=0.5*(1-LAMD)*UN_LF(I+3)+0.5*(1+LAMD)*UN_LF(I+1);
UN_LF=UN1_LF;
END
END

%LAX-WENDROFF SCHEME
UN_LW=UN;
UN1_LW=UN1;
WHILE NORM(UN1_LW-UN_LW)>TOL
FOR I=1:1:100
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
END

⌨️ 快捷键说明

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