t=0:tao:T;
N=length(x);
M=length(t);
f=inline(f);
g1=inline(g1);
g2=inline(g2);
u=inline(u);
r=w*tao/(h*h)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%a=0;b=1;h=0.1;tao=0.1;T=1;u='exp(-pi^2*t)*sin(pi*x)';f='sin(pi*x)';g1='0';g2='0';;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%a=0;b=1;h=0.1;tao=0.1;T=1;u='exp(x+t)';f='exp(x)';g1='exp(0+t)';
%g2='exp(1+t)';
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%for i=1:N-2
if i==1
S(i,i)=0;
S(i,i+1)=1;
else if i==N-2
S(i,i)=0;
S(i,i-1)=1;
else
S(i,i)=0;
S(i,i-1)=1;
S(i,i+1)=1;
end
end
end
%%%%%%%%%%%%%%%%%%%%%%
U=zeros(N-2,1);
for i=1:N-2
U(i,1)=f(x(i+1));
end
%%%%%%%%%%%%%%%%%%%%%%%I=eye(N-2);
tic
for i=1:M-1
b(1,1)=r*g1(t(i));
b(N-2,1)=r*g2(t(i));
b3(1,1)=r*g1(t(i+1)); b3(N-2,1)=r*g2(t(i+1));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%隱式差分格式
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
U=inv((1+2*r)*I-r*S)*U+inv((1+2*r)*I-r*S)*[b3];
% A0=((1+2*r)*I-r*S);
% b0=U+[b3]
% a0=zhuiganfa(A0,b0);
% U=a0';
end
toc
UU(1,1)=g1(t(M));
UU(N,1)=g2(t(M));
UU(2:N-1,1)=U(1:N-2,1);
jisuan=UU
for i=1:M
for j=1:N
uu(j,i)=u(t(i),x(j));
end
end
junque=uu(:,M)
E=(abs(UU-uu(:,M)));
EE=max(abs(UU-uu(:,M)))
L2=sqrt(sum(abs(UU-uu(:,M)).^2)*h)
aver=(sum(abs(jisuan-junque))/N)
plot(x,junque)
hold on
plot(x,jisuan,'-r*')