从论坛下了一个解一维非稳态导热方程的m文件,代码如下,自己代入参数运行后出错,错误提示如图
function [U,x,t]=rechuandao(c,f,g1,g2,xspan,tspan,ngrid)
%c为导温系数,f,g1,g2,是初边值条件,xspan,tspan为xt取值范围
%ngrid[n,m]中n,m为网格点数量
n=ngrid(1);
m=ngrid(2);
h=range(xspan)/(m-1);
x=linspace(xspan(1),xspan(2),m);
k=range(tspan)/(n-1);
t=linspace(tspan(1),tspan(2),n);
r=c*k/h^2;
if r>0.5
error('请改变步长')
end
s=1-2*r;
U=zeros(ngrid);
U(:,1)=g1(t); U(:,m)=g2(t);
U(1,:)=f(x);
for j=2:n
for i=2:m-1
U(j,i)=s*U(j-1,i)+r*(U(j-1,i-1)+U(j-1,i+1));
end
end