下面这个程序我运行过,可以了
%Finite different method for 1D parabolic equation
%Backward Euler for Time, Center Different for Space
function u=parabolicFD(m,n)
h=1/m;%space size
tao=1/n;%time step
r=tao/h^2;
u0=zeros(m+1,1);
u1=zeros(m+1,1);
A=zeros(m+1,m+1);
F=zeros(m+1,1);
for j=1:m+1
u0(j)=cos(pi*(j-1)*h);
end
%assembling the Matrix A
for i=1:m+1
for j=1:m+1
if (abs(i-j)==1)
A(i,j)=-1*r;
end
if (i==j)
A(i,j)=1+2*r;
end
end
end
A(1,2)=-2*r;
A(m+1,m)=-2*r;
%
for i=1:n
for j=1:m+1
F(j)=u0(j)+tao*sin(tao*i);
end
u1=A\F;
for j=1:m+1
u0(j)=u1(j);
end
end
for j=1:m+1
u(j)=u1(j);
end
end
最后在命令窗口分别运行parabolicFD(40,1600),parabolicFD(80,3200),