第1章 前 言
1.1问题背景
在史策教授的《一维热传导方程有限差分法的MATLAB实现》和曹刚教授的《一维偏微分方程的基本解》中,对偏微分方程的解得MATLAB实现问题进行过研究,但只停留在一维中,而实际中二维和三维的应用更加广泛。诸如粒子扩散或神经细胞的动作电位。也可以作为某些金融现象的模型,诸如布莱克-斯科尔斯模型与Ornstein-uhlenbeck过程。热方程及其非线性的推广形式也被应用与影响分析。
在科学和技术发展过程中,科学的理论和科学的实验一直是两种重要的科学方法和手段。虽然这两种科学方法都有十分重要的作用,但是一些研究对象往往由于他们的特性(例如太大或太小,太快或太慢)不能精确的用理论描述或用实验手段来实现。自从计算机出现和发展以来,模拟那些不容易观察到的现象,得到实际应用所需要的数值结果,解释各种现象的规律和基本性质。
科学计算在各门自然科学和技术科学与工程科学中其越来越大的作用,在很多重要领域中成为不可缺少的重要工具。而科学与工程计算中最重要的内容就是求解科学研究和工程技术中出现的各种各样的偏微分方程或方程组。
解偏微分方程已经成为科学与工程计算的核心内容,包括一些大型的计算和很多已经成为常规的计算。为什么它在当代能发挥这样大的作用呢?第一是计算机本身有了很大的发展;第二是数值求解方程的计算法有了很大的发展,这两者对人们计算能力的发展都是十分重要的。
1.2问题现状
近三十年来,解偏微分方程的理论和方法有了很大的发展,而且在各个学科技术的领域中应用也愈来愈广泛,在我国,偏微分方程数值解法作为一门课程,不但在计算数学专业,而且也在其他理工科专业的研究生的大学生中开设。同时,求解热传导方程的数值算法也取得巨大进展,特别是有限差分法方面,此算法的特点是在内边界处设计不同于整体的格式,将全局的隐式计算化为局部的分段隐式计算。而且精度上更好。
目前,在欧美各国MATLAB的使用十分普及。在大学的数学、工程和科学系科,MATLAB
1
苏佳园:二维热传导方程有限差分法的MATLAB实现
被用作许多课程的辅助教学手段,MATLAB也成为大学生们必不可少的计算工具,甚至是一项必须掌握的基本技能。
在我国,MATLAB在各大专院校的应用日益普遍,许多专业已把MATLAB作为基本计算工具。在科研机构和工业界,MATLAB正得到越来越广泛的应用。
MATLAB具有强大的图形绘制功能,为科学计算和图形处理提供了很大的方便。我们只需制定的绘图方式,再提供绘图数据,有程序指令就可以得到形象、直观的图形结果。因此,近些年越来越多的人开始使用MATLAB来求解数值计算和图形处理技术,我们也可以绘制出热传导方程数值解的二维、三维图形,从而可以更好的理解热传导方程的意义。
1.3 问题解决
目前,对于求解偏微分方程有很多方法,但差分法和有限元离散法式主要解决问题的两种方法。一般来说,用差分法来接偏微分方程,解得得结果就是方程的准确解函数再借点上的近似值。而用变分近似的方法求解,是将近似解表示成有限维子空间中基函数的线性组合。有限元法也是基于变分原理,由于选择了特殊的基函数,使它能适用于一般的区域。这种基函数是与区域的剖分有关的,近似解u表示为基函数的线性组合,二线性组合中的系数,又是剖分节点上u或其导数的近似值。
有关一维热传导方程的有限差分法求解的MATLAB实现,西安建筑科技大学的史策教授已经解决,本文借鉴史老师的求解思想,对二维热传导方程进行转换,再对解法编程实现,从而进一步对热传导方程进行探讨。二维热传导方程求解在现实生活中的应用也更加广泛,所以有很好的现实意义。
2
第2章 预备知识
定义2.1[8] 含有未知函数u(x1,x2,?,xn,t)的偏导数的方程称为偏微分方程。 定义2.2[8] 方程
?u??u??u?(k1)???(kn)?F(x,t), ?t?x1?x1?xn?xn
称热传导方程(或扩散方程)。
其中,u?u(x,t)是固体的传热过程中在x处、t时刻的温度。系数ki称为热传导系数,当k1?k2???kn?a(a?0)时,方程为
?u?a?u?F(x,t), ?t?2?2?2其中??2?2???2,n为维数。
?x1?x2?xn定义2.3[8] 在特定条件下求解方程的解。这样的条件成为定解条件。给出了方程和定结条件,就构成了定解问题。 定义2.4[1] 一般说,边界条件有下列形式
?(x,y)u(x,y)??(x,y)?u(x,y)??(x,y),?n
其中
?u为边界的外法向导数。有如下几种特殊形式 ?n(1)Dirichlet(或第一类)条件:??0,即u值给定;
(2)Neumann(或第二类)条件:??0.即u的外法向导数给定; (3)Robbins(或第三类)条件:??0,??0。
定 义2.5[8] 只有出事条件而没有边界条件的定解问题。 定 义2.6[8] 只有边界条件而没有初值条件的定解问题。 定 义2.7[8] 既有边值条件又有初值条件的定解问题。
2??定 义2.7[8] 定义在???,???上的函数v?x?的一个关系式,设??v(x)dx??,有关?系式
v(x)?21???????????v(?)e?i?(??x)d?d?,
以上变换称为Fourier变换。 其中i??1是虚数单位。
?1定义2.9[8] 由第n个时间层推进到第n?1个时间层时差分方程提供了逐点直接计算unj
3
苏佳园:二维热传导方程有限差分法的MATLAB实现
的表达式,我们称次差分方程为显式格式。
定义2.10[8] 有限差分格式在新的时间层上包含有多于一个的节点,这种有限差分格式称为隐式格式。 定义2.11[11]
??tv(x,t)?v(x,t??t)?v(x,t), ??xv(x,t)?v(x??x,t)?v(x,t).
称为向前差分。 定义2.12[11]
??tv(x,t)?v(x,t)?v(x,t??t),
??xv(x,t)?v(x,t)?v(x??x,t).
称为向后差分。 定义2.13[11]
?tv(x,t)?v(x,t?1?t)?v(x,t?1?t),
22?xv(x,t)?v(x?1?x,t)?v(x?1?x,t).
22称为中心差分。 定义2.14
[11]
用微分方程的解代替差分方程的全部近似解,这样得到的方程两边的差就
是截断误差。
定理2.1[8] 给定一个适定的线性初值问题以及与其相容的差分格式,则差分格式的稳定性是差分格式收敛性的充要条件。
4
第3章 求解二维热传导方程的基本思想
基本思想是把连续的定解区域用有限个离散点构成网格来代替,这些离散点称作网格的节点;把连续定解区域上的连续变量的函数用在网格上定义的离散变量函数的近似;把原方程和定解条件中的微商用差商来近似,积分用积分来近似,于是原微分方程和定解条件近似的代之以代数方程,即优先差分方程组,解此方程组就可以得到原问题在离散点上的近似解。下面是有限差分法数值计算的基本步骤:
3.1区域的离散
用有限差分方法求解偏微分方程问题必须把连续问题进行离散化。为此首先要对求解区域给出网格剖分,由于求解的问题不同,因此求解区域也不尽相同。下面用例子来说明不同区域的剖分离散。并引入一些常用术语。
例3.1 双曲型和抛物型方程的初值问题,求解区域是
D1??(x,t)???x???,t?0?.
我们在x?t的上半平面画出两族平行于坐标轴的直线,把上班平面分成矩形网格。其交点称为节点(或网格点)。可设距离?x?0,称其为空间步长,平行线的距离按具体问题而定。可设距离?t?0,称其为时间步长。这样两族网格线可以写作
x?xj?j?x?jh,j?0,?1,?2?,
t?t?n?t?n?,n?0,1,2?
n网格节点有时记为(xx,tn)。
例3.2 双曲型和抛物型方程的初边值问题,设求解区域是
D2?(x,t)0?x?l,t?0,
??这个区域的网格由平行于t轴的直线族
x?xj,j?0,1,?J
与平行于x轴的直线族
t?tn,n?0,1,2,?
5