1、Sum 函数,用于求解析解 ufunction sum=Sum(x,t)sum=0;for m=1:1:100xx=0:0.001:1;y=2*(xx-xx.2).*sin(m*pi*xx);Am(m)=trapz(y)*0.001;endfor m=1:1:100sum=sum+Am(m)*exp(-(m*pi)2)*t)*sin(m*pi*x);endLOG 程序,完成近似解求解,以及 E(n )的计算并作图dx=0.1;k=0.5;dt=dx2*k;for i=1:1:201for j=1:1:11if i=1 u(i,j)=(j-1)*dx*(1-(j-1)*dx);endif j=1
2、|j=11u(i,j)=0;endif i=1endendendDX=0.1;K=0.5;DT=DX2*K;for I=1:1:201N=1;if I=1for XX=0:DX:1UU(N,I)=XX*(1-XX);N=N+1;endelseUU(N,I)=UU(N,I-1);for N=2:1:10UU(N,I)=UU(N,I-1)+K*(UU(N+1,I-1)-2*UU(N,I-1)+UU(N-1,I-1);N=N+1;endUU(N,I)=UU(N,I-1);endU=UU;endfor i=1:1:201for j=1:1:11 E(i,j)=U(i,j)-u(i,j);endenda
3、bsE=abs(E);Y= max(absE,2);Log=log10(Y);dX=0.05;kk=0.5;dT=dX2*kk;for i=1:1:801for j=1:1:21if i=1 uu(i,j)=(j-1)*dX*(1-(j-1)*dX);endif j=1|j=21uu(i,j)=0;endif i=1endendendDx=0.05;KK=0.5;Dt=Dx2*KK;for I=1:1:801N=1;if I=1for XX=0:Dx:1Uu(N,I)=XX*(1-XX);N=N+1;endelseUu(N,I)=Uu(N,I-1);for N=2:1:20Uu(N,I)=Uu
4、(N,I-1)+KK*(Uu(N+1,I-1)-2*Uu(N,I-1)+Uu(N-1,I-1);N=N+1;endUu(N,I)=Uu(N,I-1);enduU=Uu;endfor i=1:1:801for j=1:1:21 EE(i,j)=uU(i,j)-uu(i,j);endendabsEE=abs(EE);YY= max(absEE,2);log=log10(YY);Tn=0:0.005:1;tn=0:0.00125:1;plot(Tn,Log,tn,log)xlabel(tn);ylabel(log10E(n));gtext(=0.1,=0.5);gtext(=0.05,=0.5);图 2-4 用显式方法求解热传导方程的误差衰减,处置条件 u(x,0)=x(1-x)。上方的曲线取=0.1, =0.5,下方的曲线取 =0.05,=0.5。