资源描述:
《matlab在有限差分法中的应用new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第21卷 第2期 桂林工学院学报Vol.21No.22001年4月 JOURNALOFGUILININSTITUTEOFTECHNOLOGYApr.2001文章编号:1006-544X(2001)02-0104-06MATLAB在有限差分法中的应用熊 彬,阮百尧(桂林工学院资源与环境工程系,广西桂林 541004)摘 要:将MATLAB应用于有限差分法的正演计算中,充分发挥了其强大而方便的功能。通过对二维稳定电流场模型的试算表明,MATLAB在解决实际的工程和数学问
2、题中,与其它计算机程序设计语言C、FORTRAN相比,具有使用更为简便、语句功能更强,用户界面良好的特点,适合于在工程计算,尤其是物探数据处理领域推广应用。关键词:MATLAB;有限差分;正演计算;二维电场中图分类号:P6311322文献标识码:A[1]1MATLAB概述MATLAB是一个为科学和工程计算而专门设计的高级交互式的软件包。它集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一个方便的、界面友好的用户环境。在这个环境下,对所要求解的问题,用户只需简单的列出数学表达式,其结果便以数值或图形
3、方式显示出来。例如,为解用矩阵/向量形式表达的形如Ax=b的线性方程组,首先生成系数矩阵A和右侧的b,然后简单地敲入x=A/b即可。MATLAB中有大量的命令和事先定义的可用函数集,也可通称为MATLABM文件,这就使得用它来求解问题通常比传统编程快得多;另外一点,也是它最重要的特点,易于扩展。它允许用户自行建立完成指定功能的M文件,从而构成适合于其它领域的工具箱。MATLAB既是一种编程环境,又是一种程序设计语言。它与其它高级程序设计语言C、Fortran等一样,也有其内定的规则,但其规则更接近于数学
4、表示,使用起来更为方便,避免了诸如C、Fortran语言的许多限制,比方说,变量、矩阵无须事先定义;其次,它的语句功能之强大,是其它语言所无法比拟的,例如,一条fft语句就可完成对指定数据的快速傅氏变换,这就相当于几十条甚至于几百条C或Fortran语言语句的功能;再者,也是广大程序爱好者所梦寐以求的,MATLAB提供了良好的用户界面,许多函数本身会自动绘制出图形,而且会自动选取坐标刻度。2 稳定电流场的边值问题 在数学上解各种物探方法的正演问题,通常需要求解相应的物理场所满足的数学物理方程。其中,[
5、2]最常遇到的是下列椭圆型偏微分方程:¨·(p¨U)+qU=f 收稿日期:2000-06-17;修订日期:2000-07-14基金项目:教育部高等学校骨干教师资助计划资助项目(桂[2000]413);广西自然科学基金资助项目(桂科自0007024);广西培养新世纪学术和技术带头人专项资金资助项目(99216)作者简介:熊 彬(1974-),男,湖北荆州人,在读硕士研究生,地球探测与信息技术专业,主要从事电阻率法的正演模拟研究。©1994-2007ChinaAcademicJournalElectroni
6、cPublishingHouse.Allrightsreserved.http://www.cnki.net第21卷 第2期 熊 彬等:MATLAB在有限差分法中的应用105式中:U—物理场的标量位或矢量位;p,q—表征介质性的参数;f—场源项。它们一般都是空间坐标的函数。微分算子加在标量之前表示梯度;而加在矢量之前,则表示取散度。[3] 椭圆型方程最简单的形式就是Laplace方程22229u/9x+9u/9y=0(1)和Poisson方程22229u/9x+9u/9y=f(x,y)(
7、2)其中:为f(x,y)已知函数。本文主要以(1)和(2)为模型研究椭圆型方程边值问题的差分解法。[4] 为了减少计算量,在解正演问题时通常把计算范围限定在一个有限的求解区内。这样,便需要在求解区的边界上对电位函数规定某些边值条件。常见的边界条件有下列3种形式: ①第一边界条件:在一部分边界Γ1上给定电位值u
8、Γ=φ1(p),p∈Γ1(3)1 ②第二边界条件:在另一部分边界Γ2上给定电位的外法向微商值9u=φ2(p),p∈Γ2(4)9nΓ2 ③第三边界条件:在其余边界Γ3上给定电位及其外法向微商
9、的线性组合值[9u/9n+ku]Γ=φ3(p),p∈Γ3(5)3其中:k是常数;φ1,φ2和φ3是点坐标的已知函数;Γ1,Γ2和Γ3之和构成求解区的全部边界Γ;n为边界的外法向。3 有限差分的求解方法[3] 有限差分法是一种网格法。其基本思想是以差商代替导数,将偏微分方程直接转化成代数方程组,然后对其求解。这是一种离散近似的计算方法,所要寻求的不是域内的连续函数,而是域内各节点上函数的近似值。3.1 区域离散作网格剖分 不失一般性,为简