lax_friedrichs.m

来自「差分格式中的一种类型」· M 代码 · 共 29 行

M
29
字号
A=zeros(101,103);
A(1,2)=1;
   for n=1:101
       for  j=2:102
           if j==2
             A(n,j-1)=1;
             A(n+1,j)=0.25*A(n,j+1)+0.75*A(n,j-1);
           elseif j==102
            A(n,j+1)=0;
            A(n+1,j)=0.25*A(n,j+1)+0.75*A(n,j-1);
           else
               A(n+1,j)=0.25*A(n,j+1)+0.75*A(n,j-1);
         end
       end
   end

%开始画图
z=zeros(1,101);  %解析解
for k=1:50
    z(k)=1;
for k=51:101
    z(k)=0;
end
end
x=0:0.01:1;
y=A(101,2:102);
w=[y;z];
plot(x,y,x,w)
title('Lax-Friedrichs')

⌨️ 快捷键说明

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