1、用显式格式求解二维抛物型偏微分方程2010-05-14 10:41function varargout=liu(varargin)T=1;a=1;h=1/32;dt=1/200;X,T,Z=chfenmethed(h,dt,a,T);mesh(X,T,Z(:,:,3);shading flat;% xlabel(X,FontSize,14);% ylabel(t,FontSize,14);% zlabel(error,FontSize,14);% title(误差图);function X,Y,Z=chfenmethed(h,dt,a,T);%求解下问题%u_t-a*(u_xx+u_yy)=f
2、(x,y,t) 0x,y1,0tT%u(0,y,t)=g0,u(1,y,t)=g1, %u(x,y,0)=d %h 离散 x y 方向的步长%dt 离散 t 方向的步长x=0:h:1;y=x;t=0:dt:T;m=length(x);n=length(t);r=a*dt/h2;X,Y=meshgrid(x,y);Z=zeros(m,m,n);U=zeros(m,m,n);for i=1:mfor j=1:mU(i,j,1)=d(x(i),y(j);endendfor j=2:nfor k=1:mU(1,k,j)=g0(y(k),t(j);U(m,k,j)=g1(y(k),t(j);U(k,1,
3、j)=h0(x(k),t(j);U(k,m,j)=h1(x(k),t(j);endendfor k=2:nfor i=2:m-1for j=2:m-1U(i,j,k)=U(i,j,k-1)+r*a*(U(i+1,j,k-1)+U(i-1,j,k-1)+U(i,j+1,k-1).+U(i,j-1,k-1)-4*U(i,j,k-1)+f(x(i),y(j),t(k-1);Z(i,j,k)=abs(U(i,j,k)-Uu(x(i),y(j),t(k);endendendfunction z=Uu(x,y,t)%精确解函数z=exp(-2*t)*sin(x+y);function z=g0(y,t)z=Uu(0,y,t);function z=g1(y,t)z=Uu(1,y,t);function z=h0(x,t)z=Uu(x,0,t);function z=h1(x,t)z=Uu(x,1,t);function z=d(x,y)z=Uu(x,y,0);function z=f(x,y,t)z=0;