欢迎来到天天文库
浏览记录
ID:59827819
大小:127.50 KB
页数:3页
时间:2020-11-25
《导热方程求解matlab.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、使用差分方法求解下面的热传导方程初值条件:边值条件:使用差分公式上面两式带入原热传导方程令,化简上式的编程MATLAB程序,运行结果如下functionmypdesolutionc=1;xspan=[01];tspan=[00.2];ngrid=[10010];f=@(x)4*x-4*x.^2;g1=@(t)0;g2=@(t)0;[T,x,t]=rechuandao(c,f,g1,g2,xspan,tspan,ngrid);[x,t]=meshgrid(x,t);mesh(x,t,T);xlabel('x')ylabel(
2、't')zlabel('T')function[U,x,t]=rechuandao(c,f,g1,g2,xspan,tspan,ngrid)%热传导方程:%Ut(x,t)=c^2*Uxx(x,t)a3、网格点数量%U:方程的数值解%x,t:x和t的网格点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^2*k/h^2;ifr>0.5error('为了保证算法的收敛,请增大步长h或减小步长k!')ends=1-2*r;U=zeros(ngrid);%边界条件U(:,1)=g1(t);U(:,m)=g2(t);%初4、值条件U(1,:)=f(x);%差分计算forj=2:nfori=2:m-1U(j,i)=s*U(j-1,i)+r*(U(j-1,i-1)+U(j-1,i+1));endend
3、网格点数量%U:方程的数值解%x,t:x和t的网格点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^2*k/h^2;ifr>0.5error('为了保证算法的收敛,请增大步长h或减小步长k!')ends=1-2*r;U=zeros(ngrid);%边界条件U(:,1)=g1(t);U(:,m)=g2(t);%初
4、值条件U(1,:)=f(x);%差分计算forj=2:nfori=2:m-1U(j,i)=s*U(j-1,i)+r*(U(j-1,i-1)+U(j-1,i+1));endend
此文档下载收益归作者所有