有限差分和Matlabpde求解一维稳态传热问题.(优选)

合集下载

一维热传导方程数值解法及matlab实现分离变量法和有限差分法

一维热传导方程数值解法及matlab实现分离变量法和有限差分法

一维热传导方程数值解法及matlab实现分离变量法和有限差分法一维热传导方程的Matlab解法:分离变量法和有限差分法。

问题描述:本实验旨在利用分离变量法和有限差分法解决热传导方程问题,并使用Matlab进行建模,构建图形,研究不同情况下采用何种方法从更深层次上理解热量分布与时间、空间分布关系。

实验原理:分离变量法:利用分离变量法,将热传导方程分解为两个方程,分别只包含变量x和变量t,然后将它们相乘并求和,得到一个无穷级数的解。

通过截取该级数的前n项,可以得到近似解。

有限差分法:利用有限差分法,将空间和时间分别离散化,将偏导数用差分代替,得到一个差分方程组。

通过迭代求解该方程组,可以得到近似解。

分离变量法实验:采用Matlab编写代码,利用分离变量法求解热传导方程。

首先设定x和t的范围,然后计算无穷级数的前n项,并将其绘制成三维图形。

代码如下:matlabx = 0:0.1*pi:pi;y = 0:0.04:1;x。

t] = meshgrid(x。

y);s = 0;m = length(j);for i = 1:ms = s + (200*(1-(-1)^i))/(i*pi)*(sin(i*x).*exp(-i^2*t));endsurf(x。

t。

s);xlabel('x')。

XXX('t')。

zlabel('T');title('分离变量法(无穷)');axis([0 pi 0 1 0 100]);得到的三维热传导图形如下:有限差分法实验:采用Matlab编写代码,利用有限差分法求解热传导方程。

首先初始化一个矩阵,用于存储时间t和变量x。

然后计算稳定性系数S,并根据边界条件和初始条件,迭代求解差分方程组,并将其绘制成三维图形。

代码如下:matlabu = zeros(10.25);s = (1/25)/(pi/10)^2;fprintf('稳定性系数S为:\n');disp(s);for i = 2:9u(i。

有限差分法matlab程序一维热传导

有限差分法matlab程序一维热传导

有限差分法matlab程序一维热传导一维热传导是一个常见的物理问题,涉及到热量在一个维度上的传递和分布。

在工程和科学领域中,研究和解决一维热传导问题对于优化系统设计和预测热现象非常重要。

本文将介绍如何使用有限差分法在MATLAB中模拟一维热传导过程。

有限差分法是一种常用的数值解法,用于近似求解微分方程。

它将连续的物理问题离散化,将连续的空间和时间划分为离散的网格点,并通过近似替代微分算子来计算离散点上的数值。

在一维热传导问题中,我们可以将传热方程离散化为差分方程,然后通过迭代计算来模拟热传导过程。

我们需要定义问题的边界条件和初始条件。

对于一维热传导问题,我们通常需要给定材料的热扩散系数、初始温度分布和边界条件。

假设我们研究的是一个长为L的细杆,材料的热扩散系数为α,初始温度分布为T(x,0),边界条件为T(0,t)和T(L,t)。

接下来,我们将空间离散化为N个网格点,时间离散化为M个时间步长。

我们可以使用等距网格,将杆的长度L划分为N个小段,每段的长度为Δx=L/N。

同样,时间也被划分为M个小步长,每个步长的长度为Δt。

这样,我们可以得到网格点的坐标x(i)和时间点的坐标t(j),其中i=1,2,...,N,j=1,2,...,M。

在有限差分法中,我们使用差分近似代替偏导数项。

对于一维热传导方程,我们可以使用向前差分近似代替时间导数项,使用中心差分近似代替空间导数项。

这样,我们可以得到差分方程:(T(i,j+1)-T(i,j))/Δt = α*(T(i+1,j)-2*T(i,j)+T(i-1,j))/Δx^2其中,T(i,j)表示在位置x(i)和时间t(j)的温度。

通过对差分方程进行重排和整理,我们可以得到递推公式:T(i,j+1) = T(i,j) + α*Δt*(T(i+1,j)-2*T(i,j)+T(i-1,j))/Δx^2现在,我们可以在MATLAB中实现这个递推公式。

首先,我们需要定义问题的参数和初始条件。

MATLAB求解PDE问题

MATLAB求解PDE问题

MATLAB求解PDE问题(1)-—概述、例子(转)(2011—07-20 16:48:45)MATLAB PDE T oolbox提供利用有限元方法求解偏微分方程的GUI以及相应的命令行函数。

利用该工具箱可以求解椭圆型方程、抛物型方程、双曲型方程、特征值方程以及非线性方程.PDE Toolbox的功能非常强大,网上有许多利用PDE Toolbox解决各种物理问题的论文,还有专门介绍工具箱的参考书。

网上的例子虽然很多,但是大部分是介绍PDE工具箱自带的一些例子,这些例子中解的区域,边界条件是PDE工具箱已经编写好的,直接调用就可以。

对于该如何自己设定求解区域及边界条件,却很少有人涉及.网上搜索发现只有刘平在博客中详细介绍过求解区域的设定。

下面以一个椭圆型方程的例子来详细说明求解的各个步骤,希望对大家能有所帮助。

设要求如下形式的椭圆方程的解:按照PDE的要求,将方程化为标准形式求解后的图像如下,第一幅图是解的图像,第二幅是计算误差。

从第二幅图可以看到,计算的最大误差是10—3方量级。

通过这个例子我们可以基本掌握PDE求解偏微分方程的步骤和方法,后面我将详细介绍如何设置区域及边界条件。

掌握了区域和边界条件的设定,就可以轻松求解遇到的偏微分方程了。

图后是附带的matlab命令以及注释,并提供m文件附件下载,下载后解压即可.希望能对大家有所帮助。

下面是编写的求解上述方程的matlab语句及说明:g='mygeom';b=’mybound';定义区域,边界条件。

mygeom是定义区域的子函数名,函数名可根据自己的需要取定,区域的确定规则由pdegeom函数说明,注意pdegeom函数只是说明如何定义区域,它并不直接确定区域;mybound是定义边界条件的子函数名,与区域类似,边界的确定规则由函数pdebound确定。

后面我会详细介绍区域和边界的取法。

[p,e,t]= initmesh(g);网格初始化,此处也可以写成[p,e,t]= initmesh(’mygeom');这样可以省略上面的语句[p,e,t]= refinemesh(g,p,e,t);[p,e,t]= refinemesh(g,p,e,t);加密网格两次,需要加密几次重复几次即可,根据具体问题确定加密次数U= assempde(b,p,e,t,1,0,'2*(x+y)-4');调用assempde函数计算方程的数值解,assempde函数的详细用法可以参考MATH 网站或者PDE的使用指南。

热传导方程有限差分法的MATLAB实现

热传导方程有限差分法的MATLAB实现

△t
n
nn
关于
t
的二阶中心差商[10]:
坠2u 坠x2

uj+1
-2uj +uj-1 (△x)2
,对方
程进行离散。 离散后的方程为:
n n-1
n
nn
uj -uj △t
=a2
uj+1
-2uj +uj-1 (△x)2


:r=
a2·△t (△x)2
,即
n
n
n
n-1
(1+2r)uj -r·uj+1 -r·uj-1 =uj 。 可化为矩阵形式:
摘 要:对于有界热传导齐次方程的混合问题,用分离变量法求解往往很复杂。 为了更好地
理解热传导方程的解,使用 MATLAB 软件将方程的解用图像表示出来。 通过区域转换的思想,
利用 MATLAB 编程实现一定区域内热传导方程的有限差分方法,数值表明了方法的可行性和
稳定性。
关键词:热传导方程;有限差分;MATLAB
方法, 把控制方程中的导数用网格节点上的函数值
的差商代替进行离散,从而 建立以网格节点上的值
为未知数的代数方程组。
1 求解热传导方程的基本思想
基本思想是把连续的定解区域用有限个离散点
构成的网格来代替, 这些离散点称作网格的节点;
把连续定解区域上的连续变量的函数用在网格上定
义的离散变量函数来近似; 把原方程和定解条件中
x0(ii+1)=ii*ox; end u=sin(pi*x0/l); % t=0 时 u(x,t)的值 r=a^2*ot/(ox)^2; for ii=1:n
%数据的输入 B=zeros(M-1,1);%存放系数矩阵主对角线元素 A=zeros (M-2,1);%存放系数矩阵主对角线元素下 方次对角线的元素 C=zeros (M-2,1);%存放系数矩阵主对角线元素上 方次对角线的元素 S=zeros(M-1,1);%存放右端的常数项 for ii=1:M-2

一维稳态导热数值解法matlab

一维稳态导热数值解法matlab

一维稳态导热数值解法matlab 在导热传输的研究中,解析方法常常难以适用于复杂的边界条件和非均匀材料性质的情况。

因此,数值解法在求解热传导方程的问题上发挥了重要作用。

本文将介绍一维稳态导热数值解法,以及如何使用MATLAB来实现。

稳态导热数值解法通常基于有限差分法(Finite Difference Method, FDM),它将连续的一维热传导方程离散为一组代数方程。

首先,我们需要将热传导方程转化为差分格式,然后利用MATLAB编写程序来求解。

下面,将具体介绍该方法的步骤。

步骤一:离散化根据一维热传导方程,可以将其离散为一组差分方程。

假设被研究的材料长度为L,将其等分为N个离散节点。

令x为节点位置,T(x)表示节点处的温度。

则可以得到以下差分方程:d²T/dx² ≈ (T(x+Δx) - 2T(x) + T(x-Δx)) / Δx²其中,Δx = L/N是节点之间的间距。

将热传导方程在每个节点处应用上述差分格式后,我们便得到了一组代表节点温度的代数方程。

步骤二:建立矩阵方程将差分方程中各节点的温度代入,我们可以将其表示为一个线性方程组。

这个方程组可以用矩阵的形式表示为Ax = b,其中A是系数矩阵,x是节点温度的向量,b是右侧项的向量。

步骤三:求解方程组使用MATLAB的线性方程求解器可以直接求解上述的线性方程组。

具体而言,通过利用MATLAB中的"\ "操作符,我们可以快速求解未知节点的温度向量x。

步骤四:结果分析与可视化在得到节点温度向量后,我们可以对结果进行可视化和分析。

例如,可以使用MATLAB的plot函数绘制温度随位置的分布曲线,以及温度随节点编号的变化曲线。

这样可以直观地观察到温度的变化情况。

总结:本文介绍了一维稳态导热数值解法以及使用MATLAB实现的步骤。

通过将热传导方程离散化为差分方程,然后建立矩阵方程并利用MATLAB的线性方程求解器求解,我们可以得到节点温度的数值解。

利用matlab程序解决热传导问题-推荐下载

利用matlab程序解决热传导问题-推荐下载

1、题目及要求
1. 原始题目及要求 2. 各节点的离散化的代数方程 3. 源程序 4. 不同初值时的收敛快慢 5. 上下边界的热流量(λ=1W/(m℃)) 6. 计算结果的等温线图 7. 计算小结 题目:已知条件如下图所示:
二、各节点的离散化的代数方程
各温度节点的代数方程
ta=(300+b+e)/4 ; tb=(200+a+c+f)/4; tc=(200+b+d+g)/4; td=(2*c+200+h)/4 te=(100+a+f+i)/4; tf=(b+e+g+j)/4; tg=(c+f+h+k)/4 ; th=(2*g+d+l)/4 ti=(100+e+m+j)/4; tj=(f+i+k+n)/4; tk=(g+j+l+o)/4; tl=(2*k+h+q)/4
0,0,-2,4,0,0,0,-1,0,0,0,0,0,0,0,0; -1,0,0,0,4,-1,0,0,-1,0,0,0,0,0,0,0; 0,-1,0,0,-1,4,-1,0,0,-1,0,0,0,0,0,0; 0,0,-1,0,0,-1,4,-1,0,0,-1,0,0,0,0,0; 0,0,0,-1,0,0,-2,4,0,0,0,-1,0,0,0,0; 0,0,0,0,-1,0,-1,0,4,0,0,0,-1,0,0,0; 0,0,0,0,0,-1,0,0,-1,4,-1,0,0,-1,0,0; 0,0,0,0,0,0,-1,0,0,-1,4,-1,0,0,-1,0; 0,0,0,0,0,0,0,-1,0,0,-2,4,0,0,0,-1; 0,0,0,0,0,0,0,0,-2,0,0,0,24,-1,0,0; 0,0,0,0,0,0,0,0,0,-2,0,0,-1,24,-1,0; 0,0,0,0,0,0,0,0,0,0,-2,0,0,-1,24,-1; 0,0,0,0,0,0,0,0,0,0,0,-1,0,0,-1,12]; b=[300,200,200,200,100,0,0,0,100,0,0,0,300,200,200,100]'; [x,n]=gauseidel(A,b,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]',1.0e-6) xx=1:1:4; yy=xx; [X,Y]=meshgrid(xx,yy); Z=reshape(x,4,4); Z=Z' contour(X,Y,Z,30) Z= 139.6088 150.3312 153.0517 153.5639

热传导方程有限差分法的MATLAB实现

热传导方程有限差分法的MATLAB实现

万方数据万方数据万方数据万方数据热传导方程有限差分法的MATLAB实现作者:史策作者单位:西安建筑科技大学,理学院,陕西,西安,710055刊名:咸阳师范学院学报英文刊名:JOURNAL OF XIANYANG NORMAL UNIVERSITY年,卷(期):2009,24(4)被引用次数:0次1.曹钢,王桂珍,任晓荣.一维热传导方程的基本解[J].山东轻工业学院学报,2005,19(4):76-80.2.万正苏,方春华,张再云.关于热传导方程有限差分区域分解并行算法精度的注记[J].湖南理工学院学报(自然科学版),2007,20(3):12-14.3.StephenJ.Chapman.MATLAB编程[M].邢树军,郑碧波,译.北京:科学出版社,2008.4.田兵.用MATLAB解偏微分方程[J].阴山学刊,2006,20(4):12-13.5.王飞,裴永祥.有限差分方法的MATLAB编程[J].新疆师范大学学报(自然科学版),2003,22(4):21-27.6.王宝红.热传导方程的可视化探讨[J].忻州师范学院学报,2008,24(2):31-36.7.李先枝.热传导方程差分解法的最佳网格[J].河南大学学报(自然科学版),2004,34(3):16-18.8.赵德奎,刘勇.MATLAB在有限差分数值计算中的应用[J].四川理工学院学报,2005,18(4):61-64.9.谢焕田,吴艳.拉普拉斯有限差分法的MATLAB实现[J].四川理工学院学报,2008,21(3):1-2.10.南京大学数学系计算数学专业.偏微分方程数值解法[M].北京:科学出版社,1979.1.学位论文申卫东热传导方程有限差分区域分解算法研究2003区域分解算法是在并行机上求解偏微分方程数值解的一种较自然的方法.该方法先将偏微分方程求解区域划分为若干个子区域,然后在各个子区域并行求解.全文共五章.第一章为引言,简要介绍了热传导方程并行算法的概况及该文所讨论的基本内容.在第二章,我们在内边界点为等距分划的多子区域条件下,得到Dawson等人关于求解热传导方程区域分解算法差分解的误差估计.在第三章,我们以Saul'yev非对称格式作内边界处理,发展了新的区域分解算法,得到了差分解的先验误差估计,并与Dawson等人的算法作了比较.给出了关于算法计算精度的数值结果.在第四章,我们发展了一些新技术,在子区域的边界处采用小时间步长古典显式格式求解,构造了新的区域分解算法,得到了差分解的先验误差估计.给出了关于算法计算精度的数值结果.在第五章,我们在二维热传导方程求解上扩充了Dawson等人的区域分解算法.给出了关于算法计算精度的数值结果.第六章为该研究工作的主要结论.2.期刊论文张守慧.王文洽.ZHANG Shou-hui.WANG Wen-qia热传导方程有限差分逼近的数学Stencil及其新型迭代格式-山东大学学报(理学版)2006,41(6)将Stencil应用于偏微分方程有限元差分逼近过程,以两类差分格式为基础建立了求解热传导方程的两种新型迭代算法.此两种算法与经典的Jacobi方法同样具有并行的性质,但比Jacobi方法收敛快.给出的算例说明方法的适用性.3.期刊论文吕桂霞.马富明.Lü Guixia.Ma Fuming二维热传导方程有限差分区域分解算法-数值计算与计算机应用2006,27(2)本文讨论了一类数值求解二维热传导方程的并行差分格式.在这个算法中,通过引进内界点将求解区域分裂成若干子区域.在子区域间内界点上采用非对称格式计算,一旦这些点的值被计算出来,各子区域间的计算可完全并行.本文得到了稳定性条件和最大模误差估计.它表明我们的格式有令人满意的稳定性,并且有着较高的收敛阶.4.学位论文田源地下煤火三维数理模型正演数值模拟2006本文首先给出了几个地下煤火随空间、温度变化的动态和稳态热数学物理模型及其简化模型。

一维稳态导热数值解法matlab

一维稳态导热数值解法matlab

一维稳态导热数值解法matlab 导热是物体内部热量传递的一种方式,对于一维稳态导热问题,我们可以使用数值解法来求解。

MATLAB是一种强大的数值计算软件,可以方便地实现一维稳态导热数值解法。

首先,我们需要了解一维稳态导热问题的基本原理。

一维稳态导热问题可以用一维热传导方程来描述,即:d²T/dx² = Q/k其中,T是温度,x是空间坐标,Q是热源的热量,k是热导率。

我们需要求解的是温度T在空间上的分布。

为了使用数值解法求解这个方程,我们需要将空间离散化。

假设我们将空间分成N个小区间,每个小区间的长度为Δx。

我们可以将温度T在每个小区间的位置上进行离散化,即T(i)表示第i个小区间的温度。

接下来,我们可以使用有限差分法来近似求解热传导方程。

有限差分法的基本思想是用差分代替微分,将微分方程转化为差分方程。

对于一维热传导方程,我们可以使用中心差分公式来近似求解:(T(i+1) - 2T(i) + T(i-1))/Δx² = Q(i)/k其中,Q(i)是第i个小区间的热源热量。

将上述差分方程整理后,可以得到:T(i+1) - 2T(i) + T(i-1) = (Q(i)/k) * Δx²这是一个线性方程组,我们可以使用MATLAB的矩阵运算功能来求解。

首先,我们需要构建系数矩阵A和常数向量b。

系数矩阵A是一个(N-1)×(N-1)的矩阵,其中A(i,i) = -2,A(i,i+1) = A(i,i-1) = 1。

常数向量b是一个(N-1)维的向量,其中b(i) = (Q(i)/k) * Δx²。

然后,我们可以使用MATLAB的线性方程组求解函数来求解这个方程组。

假设我们将求解得到的温度向量为T_solve,那么T_solve就是我们所求的稳态温度分布。

最后,我们可以使用MATLAB的绘图功能来可视化温度分布。

通过绘制温度随空间坐标的变化曲线,我们可以直观地观察到温度的分布情况。

有限差分和Matlabpde求解一维稳态传热问题

有限差分和Matlabpde求解一维稳态传热问题

有限差分和pde 函数求解一维定态热传导方程分别用有限差分方法和pde 函数求解一维定态热传导方程,初始条件和边界条件,热扩散系数α=0.00001,22T T t x α∂∂=∂∂ (1) 求解过程:1. 用Tylaor 展开法推导出FTCS 格式的差分方程首先对T 进行泰勒展开得到如下两式子:23123123...2!3!23...2!3!nnnn n j j jj j nnnn n j jjjjttT T t x x TTx T T T t t t T T T x x x ++∆∆=+∆+++∆∆=+∆+++⎛⎫⎛⎫∂∂∂⎛⎫⎪ ⎪⎪∂∂∂⎝⎭⎝⎭⎝⎭⎛⎫⎛⎫∂∂∂⎛⎫ ⎪⎪ ⎪∂∂∂⎝⎭⎝⎭⎝⎭上述两个方程变换得:()1122323...23n nnn nn n j j j j jj j T T T T T t T t T o t t tt t t ++--⎛⎫⎛⎫∂∆∂∆∂⎛⎫=--=+∆ ⎪ ⎪ ⎪∂∆∂∂∆⎝⎭⎝⎭⎝⎭ (2)223123...23nnnn n j j jj j T T T x T x T x xx x --⎛⎫⎛⎫∂∆∂∆∂⎛⎫=-- ⎪ ⎪ ⎪∂∆∂∂⎝⎭⎝⎭⎝⎭()1232422342222...3!4!nnnn nnj j j jj j T T T T x T x T x x x x x x +-⎛⎫⎛⎫⎛⎫∂∂∆∂∆∂⎛⎫=--- ⎪ ⎪ ⎪ ⎪∂∆∆∂∂∂⎝⎭⎝⎭⎝⎭⎝⎭ ()()21122222-n n n j j j T T T T o x x x+--+⎛⎫∂=+∆ ⎪∆∂⎝⎭ (3)将上述式子(2)(3)代入(1)得:12112222()nnn nn n n j j j j j j jT T T T T T T O t x t x t x αα+-+--+⎛⎫∂∂⎛⎫-=-+∆∆ ⎪ ⎪∂∂∆∆⎝⎭⎝⎭, (4)2. 方程的相容性和稳定性讨论:上述方程截项为:2233242334()...4...23!3!4!n n n n j jj j t T t T x T x TO t x t t x x α⎛⎫⎛⎫⎛⎫⎛⎫⎛⎫∆∂∆∂∆∂∆∂ ⎪∆∆=--++ ⎪ ⎪ ⎪ ⎪ ⎪∂∂∂∂⎝⎭⎝⎭⎝⎭⎝⎭⎝⎭, 由于(),0,0lim x t o t x ∆∆→∆∆=所以方程有相容性其经过傅里叶变换后,只有当,t x ∆∆满足下列条件时,方程具有较好的稳定性:2220sin 12m k xt x α∆∆≤≤∆ 其中m Nk Lπ=N 为节点个数,L 为边界长度由于:22sin sin 122m k x N x L π∆∆⎛⎫== ⎪⎝⎭所以当20.5ts x α∆=≤∆时方程具有稳定性3. 说明该方程的类型和定解条件,如何在程序中实现这些定解条件。

利用matlab程序解决热传导问题

利用matlab程序解决热传导问题

哈佛大学能源与环境学院课程作业报告作业名称:传热学大作业——利用matlab程序解决热传导问题院系:能源与环境学院专业:建筑环境与设备工程学号:姓名:盖茨比2015年6月8日一、题目及要求1.原始题目及要求2.各节点的离散化的代数方程3.源程序4.不同初值时的收敛快慢5.上下边界的热流量(λ=1W/(m℃))6.计算结果的等温线图7.计算小结题目:已知条件如下图所示:二、各节点的离散化的代数方程各温度节点的代数方程ta=(300+b+e)/4 ; tb=(200+a+c+f)/4; tc=(200+b+d+g)/4; td=(2*c+200+h)/4 te=(100+a+f+i)/4; tf=(b+e+g+j)/4; tg=(c+f+h+k)/4 ; th=(2*g+d+l)/4ti=(100+e+m+j)/4; tj=(f+i+k+n)/4; tk=(g+j+l+o)/4; tl=(2*k+h+q)/4tm=(2*i+300+n)/24; tn=(2*j+m+p+200)/24; to=(2*k+p+n+200)/24; tp=(l+o+100)/12 三、源程序【G-S迭代程序】【方法一】函数文件为:function [y,n]=gauseidel(A,b,x0,eps)D=diag(diag(A));L=-tril(A,-1);U=-triu(A,1);G=(D-L)\U;f=(D-L)\b;y=G*x0+f;n=1;while norm(y-x0)>=epsx0=y;y=G*x0+f;n=n+1;end命令文件为:A=[4,-1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0;-1,4,-1,0,0,-1,0,0,0,0,0,0,0,0,0,0;0,-1,4,-1,0,0,-1,0,0,0,0,0,0,0,0,0;0,0,-2,4,0,0,0,-1,0,0,0,0,0,0,0,0;-1,0,0,0,4,-1,0,0,-1,0,0,0,0,0,0,0;0,-1,0,0,-1,4,-1,0,0,-1,0,0,0,0,0,0;0,0,-1,0,0,-1,4,-1,0,0,-1,0,0,0,0,0;0,0,0,-1,0,0,-2,4,0,0,0,-1,0,0,0,0;0,0,0,0,-1,0,-1,0,4,0,0,0,-1,0,0,0;0,0,0,0,0,-1,0,0,-1,4,-1,0,0,-1,0,0;0,0,0,0,0,0,-1,0,0,-1,4,-1,0,0,-1,0;0,0,0,0,0,0,0,-1,0,0,-2,4,0,0,0,-1;0,0,0,0,0,0,0,0,-2,0,0,0,24,-1,0,0;0,0,0,0,0,0,0,0,0,-2,0,0,-1,24,-1,0;0,0,0,0,0,0,0,0,0,0,-2,0,0,-1,24,-1;0,0,0,0,0,0,0,0,0,0,0,-1,0,0,-1,12];b=[300,200,200,200,100,0,0,0,100,0,0,0,300,200,200,100]';[x,n]=gauseidel(A,b,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]',1.0e-6) xx=1:1:4;yy=xx;[X,Y]=meshgrid(xx,yy);Z=reshape(x,4,4);Z=Z'contour(X,Y,Z,30)Z =139.6088 150.3312 153.0517 153.5639108.1040 108.6641 108.3119 108.1523 84.1429 67.9096 63.3793 62.4214 20.1557 15.4521 14.8744 14.7746 【方法2】>> t=zeros(5,5);t(1,1)=100;t(1,2)=100;t(1,3)=100;t(1,4)=100;t(1,5)=100;t(2,1)=200;t(3,1)=200;t(4,1)=200;t(5,1)=200;for i=1:10t(2,2)=(300+t(3,2)+t(2,3))/4 ;t(3,2)=(200+t(2,2)+t(4,2)+t(3,3))/4;t(4,2)=(200+t(3,2)+t(5,2)+t(4,3))/4;t(5,2)=(2*t(4,2)+200+t(5,3))/4;t(2,3)=(100+t(2,2)+t(3,3)+t(2,4))/4;t(3,3)=(t(3,2)+t(2,3)+t(4,3)+t(3,4))/4; t(4,3)=(t(4,2)+t(3,3)+t(5,3)+t(4,4))/4; t(5,3)=(2*t(4,3)+t(5,2)+t(5,4))/4;t(2,4)=(100+t(2,3)+t(2,5)+t(3,4))/4;t(3,4)=(t(3,3)+t(2,4)+t(4,4)+t(3,5))/4;t(4,4)=(t(4,3)+t(4,5)+t(3,4)+t(5,4))/4;t(5,4)=(2*t(4,4)+t(5,3)+t(5,5))/4;t(2,5)=(2*t(2,4)+300+t(3,5))/24;t(3,5)=(2*t(3,4)+t(2,5)+t(4,5)+200)/24;t(4,5)=(2*t(4,4)+t(3,5)+t(5,5)+200)/24;t(5,5)=(t(5,4)+t(4,5)+100)/12;t'endcontour(t',50);ans =100.0000 200.0000 200.0000 200.0000 200.0000 100.0000 136.8905 146.9674 149.8587 150.7444 100.0000 102.3012 103.2880 103.8632 104.3496 100.0000 70.6264 61.9465 59.8018 59.6008 100.0000 19.0033 14.8903 14.5393 14.5117【Jacobi迭代程序】函数文件为:function [y,n]=jacobi(A,b,x0,eps)D=diag(diag(A));L=-tril(A,-1);U=-triu(A,1);B=D\(L+U);f=D\b;y=B*x0+f;n=1;while norm(y-x0)>=epsx0=y;y=B*x0+f;n=n+1;end命令文件为:A=[4,-1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0;-1,4,-1,0,0,-1,0,0,0,0,0,0,0,0,0,0; 0,-1,4,-1,0,0,-1,0,0,0,0,0,0,0,0,0; 0,0,-2,4,0,0,0,-1,0,0,0,0,0,0,0,0;-1,0,0,0,4,-1,0,0,-1,0,0,0,0,0,0,0; 0,-1,0,0,-1,4,-1,0,0,-1,0,0,0,0,0,0; 0,0,-1,0,0,-1,4,-1,0,0,-1,0,0,0,0,0;0,0,0,-1,0,0,-2,4,0,0,0,-1,0,0,0,0;0,0,0,0,-1,0,-1,0,4,0,0,0,-1,0,0,0;0,0,0,0,0,-1,0,0,-1,4,-1,0,0,-1,0,0;0,0,0,0,0,0,-1,0,0,-1,4,-1,0,0,-1,0;0,0,0,0,0,0,0,-1,0,0,-2,4,0,0,0,-1;0,0,0,0,0,0,0,0,-2,0,0,0,24,-1,0,0;0,0,0,0,0,0,0,0,0,-2,0,0,-1,24,-1,0;0,0,0,0,0,0,0,0,0,0,-2,0,0,-1,24,-1;0,0,0,0,0,0,0,0,0,0,0,-1,0,0,-1,12];b=[300,200,200,200,100,0,0,0,100,0,0,0,300,200,200,100]'; [x,n]=jacobi(A,b,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]',1.0e-6); xx=1:1:4;yy=xx;[X,Y]=meshgrid(xx,yy);Z=reshape(x,4,4);Z=Z'contour(X,Y,Z,30)n =97Z =139.6088 150.3312 153.0517 153.5639108.1040 108.6641 108.3119 108.152384.1429 67.9096 63.3793 62.421420.1557 15.4521 14.8744 14.7746四、不同初值时的收敛快慢1、[方法1]在Gauss 迭代和Jacobi 迭代中,本程序应用的收敛条件均为norm(y-x0)>=eps ,即使前后所求误差达到e 的-6次方时,跳出循环得出结果。

有限差分 matlab

有限差分 matlab

有限差分matlab有限差分方法是一种常用的数值计算技术,用于求解偏微分方程。

在本文中,我们将介绍有限差分方法在Matlab中的实现步骤。

有限差分方法的基本思想是将求解区域离散化为有限个网格点,并使用差分近似代替微分运算,从而将原问题转化为代数方程组的求解。

在Matlab 中,我们可以通过以下步骤来实现有限差分方法。

第一步:初始化求解区域和边界条件首先,我们需要确定求解区域的大小和边界条件。

在Matlab中,我们可以使用矩阵来表示求解区域,其中每个元素代表一个网格点。

例如,如果求解区域的大小为NxM,我们可以创建一个大小为NxM的矩阵来表示求解区域。

同时,我们还需要确定边界条件。

边界条件可以分为三类:Dirichlet边界条件,Neumann边界条件和混合边界条件。

对于Dirichlet边界条件,我们可以将边界网格点的值直接设置为给定的边界值。

对于Neumann边界条件,我们可以使用差分近似来计算边界网格点的值。

对于混合边界条件,我们需要根据具体情况来确定如何处理。

第二步:离散化方程接下来,我们需要将求解的偏微分方程离散化。

具体来说,我们需要使用差分近似来替代微分运算。

有限差分方法主要有两种形式:前向差分和中心差分。

在前向差分中,我们使用当前时刻的值来代替时间导数的近似值。

在中心差分中,我们使用当前时刻和上一个时刻的值来代替时间导数的近似值。

在Matlab中,我们可以使用矩阵运算来同时对整个求解区域进行离散化。

具体来说,我们可以使用矩阵乘法和矩阵加法来表示离散化的方程。

例如,对于一个二维的偏微分方程,我们可以使用矩阵乘法来表示空间导数近似的部分,然后使用矩阵加法来表示时间导数近似的部分。

第三步:构建代数方程组离散化后的偏微分方程可以被表示为一个代数方程组。

通常,我们可以使用线性代数的方法来求解这个方程组。

在Matlab中,我们可以使用矩阵和向量的运算来表示代数方程组。

具体来说,我们可以使用矩阵乘法和向量的加法来表示代数方程组的求解过程。

有限差分法matlab程序一维热传导

有限差分法matlab程序一维热传导

有限差分法matlab程序一维热传导有限差分法是一种常用的数值解法,用于模拟和求解热传导问题。

本文将介绍如何使用MATLAB编写一维热传导的有限差分法程序。

热传导是指在物体内部或跨越物体表面的热量传递过程。

一维热传导是指热量在一个维度上传导,例如在杆状物体中的热传导。

通过有限差分法,我们可以离散化连续问题,将其转化为离散的点上的计算问题。

我们需要定义问题的边界条件和初始条件。

在一维热传导问题中,我们通常需要指定杆的长度、时间步长、温度边界条件和初始温度分布。

假设杆的长度为L,我们将其分割为N个网格点,每个网格点之间的距离为Δx = L/N。

时间步长为Δt。

我们用u(i, j)表示在第i个网格点上的温度值,其中i表示网格点的索引,j表示时间步的索引。

有限差分法的基本思想是使用差分逼近导数,将偏导数转化为有限差分的形式。

在一维热传导问题中,我们可以使用向前差分法或中心差分法来逼近偏导数。

对于一维热传导问题,我们可以使用显式差分格式来求解。

在每个时间步长上,我们可以使用网格点的前一时间步长的温度值来计算当前时间步长的温度值。

具体计算步骤如下:1. 初始化网格点上的温度值,包括初始温度分布和边界条件。

2. 根据初始温度分布和边界条件,计算第一个时间步长上网格点的温度值。

3. 对于每个时间步长j,根据第j-1个时间步长上的温度值,使用差分格式计算第j个时间步长上网格点的温度值。

4. 重复步骤3,直到计算到所需的时间步长。

在MATLAB中,我们可以使用for循环来实现这个计算过程。

首先,我们需要定义模拟所需的参数,如杆的长度、时间步长、温度边界条件和初始温度分布。

然后,我们可以使用嵌套的for循环来计算每个时间步长上的温度值。

我们可以将计算得到的温度值可视化,以便更直观地观察热传导过程。

我们可以使用MATLAB中的plot函数来绘制温度随时间和位置的变化曲线,或使用MATLAB中的surf函数来绘制三维温度分布图。

一维热传导MATLAB模拟

一维热传导MATLAB模拟

一维热传导MATLAB模拟昆明学院2015届毕业设计(论文)设计(论文)题目一维热传导问题的数值解法及其MATLAB模拟子课题题目无姓名伍有超学号 2所属系物理科学与技术系专业年级 2011级物理学2班指导教师王荣丽2015 年 5 月摘要本文介绍了利用分离变量法和有限差分法来求解一维传导问题的基本解,并对其物理意义进行了讨论。

从基本解可以看出,在温度平衡过程中,杠上各点均受初始状态的影响,而且基本解也满足归一化条件,表示在热传导过程中杆的总热量保持不变。

通过对一维杆热传导的分析,利用分离变量法和有限差分法对一维热传导进行求解,并用MATLAB 数学软件来对两种方法下的热传导过程进行模拟,通过对模拟所得三维图像进行取值分析,得出由分离变量法和有限差分法绘制的三维图基本相同,且均符合热传导过程中温度随时间、空间的变化规律,所以两种方法均可用来解决一维热传导过程中的温度变化问题。

关键词:一维热传导;分离变量法;有限差分法;数值计算;MATLAB 模拟AbstractIn this paper, the method of variable separation andfinite difference method are introduced to solve the problem of one-dimensional heat conduction problems, and the physical significance of numerical methods for heat conduction problems are discussed. From the basic solution, we can see the temperature on the bar are affected by the initial state during the process of temperature balance, and basic solution also satisfy the normalization condition which implied the invariance of the total heat in the bar during the heat conduction process. Through the analysis of the one-dimensional heat conduction, by taking use of variable separation method and finite difference method, we simulated the one-dimensional heat conduction problem by MATLAB. The three-dimensional images of the simulation results obtained by the method of separation of variables and finite difference method are similar to each other, and the temperature curve is in accordance with the law of temperature variation during heat conduction. Thus, we can go to the conclusion that both methods can be used to deal with the one-dimensional heat conduction problems.Keywords: One-dimensional heat conduction; method of variableseparation; finite difference method; numerical2method; MATLAB simulation目录第一章绪论11.1热传导的概念......................................................... .. (1)1.2热质的运动和传递......................................................... (1)第二章一维热传导问题的两种数值解法32.1一维热传导问题的初值问题32.2一维热传导问题的分离变量法42.3一维热传导问题的有限差分法63第三章一维有界杆热传导问题的MATLAB模拟9 3.1一维有界杆热传导问题93.2分离变量法的MATLAB模拟93.3有限差分法的MATLAB模拟12第四章总结与展望18参考文献19谢辞204第一章绪论1.1热传导的概念由于温度分布不均匀,热量从介质中温度高的地方流向温度低的地方称为热传导。

有限差分法解热传导问题

有限差分法解热传导问题

y

0Hale Waihona Puke y xx y 4tm,n

2tm1,n

2x
qw
tm,n1
tm,n1
Φm,n
x2

1
(2) 外部角点
qw

y 2
tm1,n tm,n x

y 2 qw

x 2
qw


x 2
tm,n1 y
tm,n

Φ m,n
x 2

y 2

x2 m,n
x 2
同样可得:
2t tm,n1 2tm,n tm,n1 o(y2 )
y2 m,n
y 2
建立离散方程
对于二维稳态导热问题,在直角坐标中,其导热 微分方程为:
2t x 2

2t y 2
v
0
其节点方程为:
ti1, j
2ti, j
x2
= 流出控制体的总热流量+控制体内能的增量
建立离散方程
内部节点:Φm1,n Φm1,n Φm,n1 Φm,n1 0
(m,n+1)
y
Φ上 Φ下 Φ左+Φ右 0
y
y o
(m-1,n)
x
x
(m, n) (m,n-1)
x
(m+1,n)
建立离散方程
Φ上 Φ下 Φ左+Φ右 Φv 0
NDSolve[{D[u[x,t],t]=D[u[x,t],{x,2}],u[x,0]=-x*(1x),Derivative[1,0][u][0,t]=0,Derivative[1,0][u][1,t]=3u[1,t],u,{x,0,1},{t,0,0.3}]

一维导热方程有限差分法matlab实现

一维导热方程有限差分法matlab实现

第五次作业(前三题写在作业纸上)一、用有限差分方法求解一维非定常热传导方程,初始条件和边界条件见说明.pdf 文件,热扩散系数α=const ,22T T t xα∂∂=∂∂ 1. 用Tylaor 展开法推导出FTCS 格式的差分方程2. 讨论该方程的相容性和稳定性,并说明稳定性要求对求解差分方程的影响。

3. 说明该方程的类型和定解条件,如何在程序中实现这些定解条件。

4. 编写M 文件求解上述方程,并用适当的文字对程序做出说明。

(部分由网络搜索得到,添加,修改后得到。

)function rechuandaopde%以下所用数据,除了t 的范围我根据题目要求取到了20000,其余均从pdf 中得来 a=0.00001;%a 的取值xspan=[0 1];%x 的取值范围tspan=[0 20000];%t 的取值范围ngrid=[100 10];%分割的份数,前面的是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);%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;if sta>0,sta<2fprintf('\n%s\n','有稳定性')elsefprintf('\n%s\n','没有稳定性')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)for j=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);%画网格for j=2:nfor i=2:m-1for g=1:m-1Ue(j,i)=100-(400/(2*g-1)/pi)*sin((2*g-1)*pi*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);%边界条件U(:,m)=g2(t);U(1,:)=f(x);%初值条件%差分计算for j=2:nfor i=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);endend5. 将温度随时间变化情况用曲线表示x t T6. 给出3000、9000、15000三个时刻的温度分布情况,对温度随时间变化规律做说明。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

有限差分和pde 函数求解一维定态热传导方程分别用有限差分方法和pde 函数求解一维定态热传导方程,初始条件和边界条件,热扩散系数α=0.00001,22T T t x α∂∂=∂∂ (1) 求解过程:1. 用Tylaor 展开法推导出FTCS 格式的差分方程首先对T 进行泰勒展开得到如下两式子:23123123...232!3!23...232!3!nnnn n j j jj j nnnn n j jjjjttT T t x x TTx T T T t t t T T T x x x ++∆∆=+∆+++∆∆=+∆+++⎛⎫⎛⎫∂∂∂⎛⎫⎪ ⎪⎪∂∂∂⎝⎭⎝⎭⎝⎭⎛⎫⎛⎫∂∂∂⎛⎫⎪⎪ ⎪∂∂∂⎝⎭⎝⎭⎝⎭上述两个方程变换得:()1122323...23nnn n n n n j j j j j j jT T T T T t T t T o t t t t t t ++--⎛⎫⎛⎫∂∆∂∆∂⎛⎫=--=+∆ ⎪ ⎪ ⎪∂∆∂∂∆⎝⎭⎝⎭⎝⎭(2)223123...23nnn n n j j jj j T T T x T x T x x x x --⎛⎫⎛⎫∂∆∂∆∂⎛⎫=-- ⎪ ⎪ ⎪∂∆∂∂⎝⎭⎝⎭⎝⎭ ()1232422342222...3!4!nnnn n n j j j j j j T T T T x T x T x x x x x x +-⎛⎫⎛⎫⎛⎫∂∂∆∂∆∂⎛⎫=--- ⎪ ⎪ ⎪ ⎪∂∆∆∂∂∂⎝⎭⎝⎭⎝⎭⎝⎭()()21122222-n n n j j j T T T To x x x+--+⎛⎫∂=+∆ ⎪∆∂⎝⎭(3)将上述式子(2)(3)代入(1)得:12112222()nnn nn n n j j j j j j jT T T T T T T O t x t x t x αα+-+--+⎛⎫∂∂⎛⎫-=-+∆∆ ⎪ ⎪∂∂∆∆⎝⎭⎝⎭,(4)2.方程的相容性和稳定性讨论:上述方程截项为:2233242334()...4...23!3!4!n nn n j j j jt T t T x T x T O t x t t x x α⎛⎫⎛⎫⎛⎫⎛⎫⎛⎫∆∂∆∂∆∂∆∂ ⎪∆∆=--++ ⎪ ⎪ ⎪ ⎪ ⎪∂∂∂∂⎝⎭⎝⎭⎝⎭⎝⎭⎝⎭, 由于(),0,0lim x t o t x ∆∆→∆∆=所以方程有相容性其经过傅里叶变换后,只有当,t x ∆∆满足下列条件时,方程具有较好的稳定性:2220sin 12m k xt x α∆∆≤≤∆ 其中m Nk Lπ=N 为节点个数,L 为边界长度由于:22sin sin 122m k x N x L π∆∆⎛⎫== ⎪⎝⎭所以当20.5ts x α∆=≤∆时方程具有稳定性3. 说明该方程的类型和定解条件,如何在程序中实现这些定解条件。

由式(4)得:1111122(12)n n n j j j n n n n n jjj j j T T T TT tsT s T sT x α-++-+-+≈+∆=+-+∆要想知道下一个时刻1n t +下的温度,则必须知道在n t 时刻下该点以及相邻两点的温度,如下图所示:所以需要知道的是在各个时刻x 轴两侧的温度,以及初始时刻x 轴上各点温度。

下述各题求解过程中,均采用0max 0.000010(1,2...1)j T j j α===-,0100n T =,作为边界条件。

边界条件是由外界给定,本身对过程求解,精度无影响4. 编写M 文件求解上述方程 M 文件的编写见附录所示。

在matlab 中调用heat_conduct(0.00001,15000,500,0.1),得到如下结果: rms error is rms = 0.7959∆∆分别为0.1和500,时间最终给定为15000 说明:1.上述结果采用的,x t当(),x t∆∆为(0.01,5)时的结果附录1,传热方程有限差分的M文件编写function heat_conduct(alpha,Timemax,dt,dx)%方程需要输入的参数有,最大时刻数,alpha,dt,dx,实际Tmax=Timemax/dt+1;%时刻数JMAX=1/dx+1;%x轴上的差分点个数J=JMAX-1;MAXEX=J;T=zeros(Tmax,JMAX);%构造温度矩阵TE=zeros(Tmax,JMAX);%实际温度矩阵%设定边界条件T(:,1)=100;T(:,JMAX)=100;s=alpha*dt/dx/dx;%计算各个点的温度for i=1:(Tmax-1)for j=2:JT(i+1,j)=s*T(i,j+1)+(1-2*s)*T(i,j)+s*T(i,j-1);endend%计算实际值%画图z=0:dx:1;t=0:(Tmax-1);a=3000/dt+1;b=9000/dt+1;subplot(1,2,1)plot(z,T(a,:),'g*',z,T(a,:),'g',z,T(b,:),'o',z,T(b,:),'r',z,T(Tmax,:),'b')xlabel('x方向')ylabel('温度T')title('3000,9000,15000时刻的温度分布')%画整体分布图for i=1:JMAXX(:,i)=t; end; for j=1:Tmax Y(j,:)=z; endsubplot(1,2,2) mesh(X,Y,T); view([-1 1 1]); xlabel('时刻t'); ylabel('方向x'); zlabel('温度T'); title('整体分布')二、调用MATLAB 函数完成上述计算1. 编写M 文件求解上述方程,并用适当的文字对程序做出说明。

Matlab 中自带的pdepe 函数可直接求解一般偏微分方程。

其调用格式为: T=pdepe(m,@pdefun,@pdeic,@pdebc,x,t);其中T 为输出结果,在本题中,其输出格式为一个二维数组,分别表示一维空间和时间上的温度;x ,t ,分别为所需输入的时间和空间数组;为达到该pdepe 函数求解要求,将上述方程转化为如下函数:即@pdefun 所要求的函数的描写格式:,,,,,,,,m mT T T c x t x x f x t u s x t u x t x x x -∂∂∂⎡∂⎤∂⎛⎫⎛⎫⎛⎫=+ ⎪ ⎪ ⎪⎢⎥∂∂∂∂∂⎝⎭⎝⎭⎝⎭⎣⎦本题中,在描述@pdefun 时,,,1T c x t x ∂⎛⎫= ⎪∂⎝⎭;10mx m -=⇒=;,,,T T f x t u x x α∂∂⎛⎫= ⎪∂∂⎝⎭;,,,0s x t u x ∂⎛⎫= ⎪∂⎝⎭@pdeic 为初值条件,其描述的标准格式为:()00,0T x =@pdebc 为边界条件,本题要求边界温度为100℃,其描述的标注格式为:()(),,,,*,,,0T p x t T q x t T f x t u x ∂⎛⎫+= ⎪∂⎝⎭所以左右边界的(),,p x t T 与(),,q x t T 分别表示为:(),,100p x t T T =-边界边界;()q x t T,,=0边界上述程序编写见附录2heat_conduct1(0.1,500,15000)得到如下结果所示:附录2:Matlab PDE求解上述一维传热方程%带求解函数function [c,f,s]=pdefun(x,t,T,dT)c=1;f=0.00001*dT;s=0;%边值条件,a为左边界,b为右边界,都为100℃function [pa,qa,pb,qb]=pdebc(xa,Ta,xb,Tb,t)pa=100-Ta;qa=0;pb=100-Tb;qb=0;%初值设定为0function T0=pdeic(x)T0=0;调用求解函数function heat_conduct1(dx,dt,Timemax)clcx=0:dx:1;t=0:dt:Timemax;m=0;T=pdepe(m,@pdefun,@pdeic,@pdebc,x,t);figure('numbertitle','off','name','PDE Demo——by Matlabsky')subplot(1,2,2)surf(x,t,T(:,:))title('solution')xlabel('X')ylabel('t')zlabel('T')subplot(1,2,1)plot(x,T(7,:),'b',x,T(19,:),'g*',x,T(19,:),'g',x,T(31,:),'ro',x,T(31,:),'r')title('3000,9000,15000时刻温度')xlabel('X')ylabel('T')end最新文件---------------- 仅供参考--------------------已改成-----------word文本--------------------- 方便更改赠人玫瑰,手留余香。

相关文档
最新文档