clear
clc
at=[0,1];
ax=[0,1];
t1=0.01/6;
x1=0.1;
th=at(1):t1:at(2);
xh=ax(1):x1:ax(2);
n1=length(xh);
n2=length(th);
u=zeros(n2,n1);
syms x t;
bot=sin(pi*x);
boxr=0;
boxl=0;%下面求边界值
bt=zeros(1,n1);for i=1:n1
bt(i)=subs(bot,x,xh(i));u(1,i)=bt(i);
end
bxr=zeros(1,n2);
bxl=zeros(1,n2);for i=1:n2
bxr(i)=subs(boxr,t,th(i));bxl(i)=subs(boxl,t,th(i));u(i,1)=bxr(i);u(i,n1)=bxl(i);
end
p=t1/(x1)^2;for i=2:n2
for j=2:n1-1u(i,j)=p*u(i-1,j-1)+(1-2*p)*u(i-1,j)+p*u(i-1,j+1);
end
end
uu=zeros(n2,n1);for i=1:n2
for j=1:n1
uu(i,j)=exp(-pi^2*th(i))*sin(pi*xh(j));
end
end
mesh(xh,th,u);%数值解图
%mesh(xh,th,uu);%真实值图
u2=uu-u;%mesh(xh,th,u2);%误差图;