资源描述:
《一维导热方程 有限差分法 matlab实现.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第五次作业(前三题写在作业纸上)一、用有限差分方法求解一维非定常热传导方程,初始条件和边界条件见说明.pdf文件,热扩散系数α=const,1.用Tylaor展开法推导出FTCS格式的差分方程2.讨论该方程的相容性和稳定性,并说明稳定性要求对求解差分方程的影响。3.说明该方程的类型和定解条件,如何在程序中实现这些定解条件。4.编写M文件求解上述方程,并用适当的文字对程序做出说明。(部分由网络搜索得到,添加,修改后得到。)functionrechuandaopde%以下所用数据,除了t的范围我根据题目要求取到了20000,其余均从pdf中得来a=0.00001;%a的取值xs
2、pan=[01];%x的取值范围tspan=[020000];%t的取值范围ngrid=[10010];%分割的份数,前面的是t轴的,后面的是x轴的f=@(x)0;%初值g1=@(t)100;%边界条件一g2=@(t)100;%边界条件二[T,x,t]=pdesolution(a,f,g1,g2,xspan,tspan,ngrid);%计算所调用的函数[x,t]=meshgrid(x,t);mesh(x,t,T);%画图,并且把坐标轴名称改为x,t,Txlabel('x')ylabel('t')zlabel('T')T%输出温度矩阵dt=tspan(2)/ngrid(1);
3、%t步长h3000=3000/dt;h9000=9000/dt;h15000=15000/dt;%3000,9000,15000下,温度分别在T矩阵的哪些行T3000=T(h3000,:)T9000=T(h9000,:)T15000=T(h15000,:)%输出三个时间下的温度分布%不再对三个时间下的温度-长度曲线画图,其图像就是三维图的截面%稳定性讨论,傅里叶级数法dx=xspan(2)/ngrid(2);%x步长sta=4*a*dt/(dx^2)*(sin(pi/2))^2;ifsta>0,sta<2fprintf('%s','有稳定性')elsefprintf
4、('%s','没有稳定性')errorend%真实值计算[xe,te,Te]=truesolution(a,f,g1,g2,xspan,tspan,ngrid);[xe,te]=meshgrid(xe,te);mesh(xe,te,Te);%画图,并且把坐标轴名称改为xe,te,Texlabel('xe')ylabel('te')zlabel('Te')Te%输出温度矩阵%误差计算jmax=1/dx+1;%网格点数[rms]=wuchajisuan(T,Te,jmax)rms%输出误差function[rms]=wuchajisuan(T,Te,jmax)forj=
5、1:jmaxrms=((T(j)-Te(j))^2/jmax)^(1/2)endfunction[Ue,xe,te]=truesolution(a,f,g1,g2,xspan,tspan,ngrid)n=ngrid(1);%t份数m=ngrid(2);%x份数Ue=zeros(ngrid);xe=linspace(xspan(1),xspan(2),m);%画网格te=linspace(tspan(1),tspan(2),n);%画网格forj=2:nfori=2:m-1forg=1:m-1Ue(j,i)=100-(400/(2*g-1)/pi)*sin((2*g-1)*p
6、i*xe(j))*exp(-a*(2*g-1)^2*pi^2*te(i))endendendfunction[U,x,t]=pdesolution(a,f,g1,g2,xspan,tspan,ngrid)n=ngrid(1);%t份数m=ngrid(2);%x份数h=range(xspan)/(m-1);%x网格长度x=linspace(xspan(1),xspan(2),m);%画网格k=range(tspan)/(n-1);%t网格长度t=linspace(tspan(1),tspan(2),n);%画网格U=zeros(ngrid);U(:,1)=g1(t);%边界条
7、件U(:,m)=g2(t);U(1,:)=f(x);%初值条件%差分计算forj=2:nfori=2:m-1U(j,i)=(1-2*a*k/h^2)*U(j-1,i)+a*k/h^2*U(j-1,i-1)+a*k/h^2*U(j-1,i+1);endend1.将温度随时间变化情况用曲线表示2.给出3000、9000、15000三个时刻的温度分布情况,对温度随时间变化规律做说明。T3000=100.000063.436234.229915.80217.46417.464115.802134.229963.436210