plotxt.m

来自「非线性偏微分方程用不同差分格式求解两种TVD格式」· M 代码 · 共 51 行

M
51
字号
	cfl=0.5;
    h=0.01;
	dt=cfl*h;	
    x1=0;
	x2=0.4;
	x3=0.6;
	x4=2.5;
	m=(x4-x1)/h;
   	tn=0.2;
   	n=tn/dt;
	s=0.5;
    x=zeros(n,m);
    u=zeros(1,m);
    x0=zeros(1,m);
    t=zeros(1,n);
    for i=2:1:n
        t(i)=t(i-1)+dt;
    end
    for j=2:1:m
        x0(j)=x0(j-1)+h;
    end
    x(1,:)=x0;
    
    for i=2:1:n
        if t(i)<0.4
        for j=1:1:m
            if x(i,j)<=x2+t(i)&&x(i,j)>x2
                u(j)=x(i,j)/t(i);
            elseif x(i,j)>x2+t(i)&&x<=x3+s*t(i)
                u(j)=1;
            else
                u(j)=0;
            end
        end
    else t(i)>=0.4
          for j=1:1:m
            if x(i,j)<=x2+t(i)&&x<=x3+s*t(i)
                u(j)=x(i,j)/t(i);
            else
                u(j)=0;
            end
        end      
    end
    for j=1:1:m
        x(i,j)=x(i-1)+u(j)*dt;
    end
end
for j=1:1:m
plot(x(:,j),t)
hold on;
end

⌨️ 快捷键说明

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