资源描述:
《热传导方程的求解》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、应用物理软件训练前言 MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。 MATLAB是矩阵实验室(Matrix Laboratory)的简称,和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制
2、设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。本部分主要介绍如何根据所学热传导方程的理论知识进行MATLAB数值实现可视化。本部分主要介绍如何根据所学热传导方程的理论知识进行MATLAB数值实现可视化。本部分主要介绍如何根据所学热传导方程的理论知识进行MATLAB数值实现可视化。本部分主要介绍如何根据所学热传导方程的理论知识进行MATLAB数值实现可视化。 题目:热传导方程的求解目录一、参数说明……………………………………………………………………..1二、基本原理……………………………
3、………………………………………..1三、MATLAB程序流程图………………………………………………………3四、源程序………………………………………………………………………….3五、程序调试情况…………………………………………………………………6六、仿真中遇到的问题……………………………………………………………9七、结束语…………………………………………………………………………9八、参考文献………………………………………………………………………10一、参数说明U=zeros(21,101)返回一个21*101
4、的零矩阵x=linspace(0,1,100);将变量设成列向量meshz(u)绘制矩阵打的三维图axis([02101]);横坐标从0到21,纵坐标从0到1eps是MATLAB默认的最小浮点数精度[X,Y]=pol2cart(R,TH);效果和上一句相同waterfall(RR,TT,wn)瀑布图二、基本原理1、一维热传导问题(1)无限长细杆的热传导定解问题利用傅里叶变换求得问题的解是:取得初始温度分布如下这是在区间0到1之间的高度为1的一个矩形脉冲,于是得(2)有限长细杆的热传导定解问题9其中,即L=2
5、0,取a=10且得的解是(3)非齐次方程定解问题是解析解是其中2、二维热传导问题定解问题Ut=k^2(Uxx+Uyy)()U(x=0,y,t)=0,u(x=a,y,t)=U(x,y=0,t)=0,u(x,y=b,t)=9U(x,y,t=0)=03、三维热传导问题球体内的热传导令u=w+Uo,则w的定解问题是Wt=wW(r=ro)=0W(t=to)=uo-Uo解为r为空间变量,并用x,y表示。一、MATLAB程序流程图开始初始化定义预设矩阵初始条件用for语言绘制动态图二、源程序1、一维有限长细杆的热传导x=
6、0:20;t=0:0.01:1;a2=10;r=a2*0.01;u=zeros(21,101);u(10:11,1)=1;是把上述矩阵中的第10行,11行的第一列全部设成19forj=1:100u(2:20,j+1)=(1-2*r)*u(2:20,j)+r*(u(1:19,j)+u(3:21,j));plot(u(:,j));axis([02101]);横坐标0到21,纵坐标0到1pause(0.1)暂停0.1秒endmeshz(u)2、非齐次方程的定解问题a2=50;b=5;L=1;[x,t]=meshg
7、rid(0:0.01:1,0:0.000001:0.0005);Anfun=inline('2/L*(x-L/2).^2.*exp(-b*x/2/a2).*sin(n*pi*x/L)','x','n','L','b','a2');%定义内联函数u=0;forn=1:30An=quad(Anfun,0,1,[],[],n,L,b,a2);%inline函数中定义x为向量,其它为标量un=An*exp(-(n*n*pi*pi*a2/L/L+b*b/4/a2/a2).*t).*exp(b/2/a2.*x).*si
8、n(n*pi*x/L);u=u+un;size(u);mesh(x,t,u);%x,t,u都为501行101列的矩阵figuresubplot(2,1,1)plot(u(1,:))subplot(2,1,2)plot(u(end,:))end差分法dx=0.01;dt=0.000001;a2=50;b=5;c=a2*dt/dx/dx;9x=linspace(0,1,100);%将变量设成列向量uu(1:100,1