www.pudn.com > MATLABpro.rar > hotqch.m


clear all 
close all 
a=0;b=1;m=10;T=0.5;N=1000;af=1; 
f=inline('sin(pi*x)','x'); 
h=(b-a)/m; 
k=T/N; 
lmd=af^2*k/h^2;   %注意lmd一定要小于0.5,只有这样差分法才稳定 
x=linspace(a,b,m+1); 
u(1,1:N+1)=0; 
u(m+1,1:N+1)=0; 
for i=2:m 
    u(i,1)=f(a+(i-1)*h); 
end 
     
for j=1:N 
        t=j*k; 
        for i=2:m 
        u(i,j+1)=(1-2*lmd)*u(i,j)+lmd*(u(i+1,j)+u(i-1,j)); 
    end 
end 
true=exp(-pi^2*T).*sin(pi*x); 
error=abs(u(:,N+1)-true'); 
re=[x'     u(:,N+1)      true'        error]