You are on page 1of 6

维普资讯 http://www.cqvip.

com

第 21卷 第 2期  桂 林 工 学 院 学 报  Ⅷ 21
  2 

2 
0 01 年 4 月  JOURNAL 
OFGUI
LIN 
INSTI
TUTE 
OF TECHNOLOGY  ADr.
  2001
 

文章编号 :
1006—54
4X(
2001)
02—01
04—06
 

MATLAB在有 限差分法 中的应用 


熊 彬 , 阮百 尧 
(桂林 工学 院资振 与环 境工程 系 .广西桂林 541
004)
 

摘 要 :将 MATLM3应用 于有限差 分法 的正 演计 算 中.充 分发 挥 了其 强大 而 方 便 的 功能。


 
通过对二维稳定电流场模型的试算表明,MATLAB在解决实际的工程和数学问题 中,与其 
它计 算机 程序 设计 语言  FORTRAN相 比,具有使 用更 为简便 、语 句 功能更 强,用 户界 面 
良好的 特点,适台 于在工 程计算 .尤 其是物 探数据 处理领域 推广应 用。
 
关键 词 :MATLM3;有 限差 分 ;正演计 算 ;二 维 电场 
中图分类 号 :P631
 322
  文献标 识码 :A 


  MATLAB概述 … 
MATLAB是一 个为科 学和 工 程计 算 而 专 门设 计 的高 级 交互 式 的软 件 包。 它 集 数值 分 析、矩 阵运 
算、信号处理和图形显示于一体,构成 了一个方便的、界面友好的用户环境。在这个环境下,对所要 
求解 的问题 ,用户只需 简单 的列 出数学表 达式 ,其 结果 便 以数 值 或 图形方 式 显 示 出来 。例 如, 为解 用 
矩 阵/向量形式 表达 的形 如 A.
z: b的线性 方程 组, 首先生 成 系数 矩阵 A和 右 侧 的 b.然 后 简单地 敲 八 
z=A/b即可 。
 
MAⅡ AB中有 大量 的命令和 事先定 义的可用 函数集 ,也 可通 称 为 MATLAB 
M 文 件 ,这就使 得 用 
它来求解 问题通常比传统编程快得多;另外一点,也是它最重要的特点,易于扩展。它允许用户 自行 
建立 完成指定 功能 的 M 文 件.从而 构成适 合于其它领 域 的工具箱 。
 
MATLAB既是一种编程环境,又是一种程序设计语言。它与其它高级程序设计语言 C、Fo
rtr
an等 

样,也有其内定的规则,但其规则更接近于数学表示,使用起来更为方便,避免 了诸如 C、Fo r


trn 

语 言的许 多 限制 , 比方说 ,变 量 、矩 阵无须 事先 定 义 ;其 次 , 它的语 句 功能 之 强大 ,是 其 它 语言所 无 
法 比拟 的,例如 ,一条 f
ft语句就 可完成 对指定数 据 的快 速傅 氏变换 .这就相 当于几 十条甚 至于几 百条 
c或 Fo
rtr
n 语言语句的功能;再者,也是广大程序爱好者所梦寐 以求 的,MATLAB提供 了良好的用 

户界 面,许多 函数 本身会 自动绘 制 出图形,而且 会 自动选取 坐标刻度 。
 

2 稳 定 电流 场 的边 值 问题 
在数学 上解各 种物探 方法 的正演 问题.通 常需 要求解 相应 的物理 场所 满足 的数学物 理 方程 。其 中,
 
最常遇到 的是 下列椭 圆型 偏微分 方程  :
 

(pV 
U)  qU = f
 

收{
斋日期 :20
00  06
 17;修订 日期 :2000 07—14 
基金项目:教育部 高等学校 骨干教师 资助计 划资助项 目 (
桂 [
200
0]41
3);广西 自然科学 基金资助 项 目 (
桂科 白
 
000702
4);广西 培养新 世 纪学 术 和技术带 头人专 项资金 资助项 目 (
99216)
 
作者简介:熊 彬 (
197
4 )
.男.湖北剂州人,在读硕士研究生.地球探测与信息技术专业,主要从事电阻率法的正演 
模 拟研究 。
 
维普资讯 http://www.cqvip.com

第 21卷 第 2期  熊 彬 等 :M.


&TLAB在有 限差 分法 中的应 用 

式中:u一物理场的标量位或矢量位 ;
  ,q
一表征介质性的参数 ;严 场源项。
 它们 一 般 都 是空 间 坐 
标 的函数 。微 分算 子加在标 量 之前表示 梯度  而 加在 矢量 之前 ,则表 示取 散度 。
 
椭 圆型方程最 简单 的形式  就是 La
pla
ce方程 
a2u/Ox +a2¨/a  = 0 
和 Poi
sson方 程 

2u/a
  +a
2u/a, =f(
 , )
  (
2) 
其 中 :为  z.
 )已知 函数 。本 文主要 以(1)
和(2)为模 型研究椭 圆型方 程边值 问题 的差分解 法。
 
为 了减 少计算量 _
4],在解 正演 问题 时通 常把计 算 范 围 限定在 一 个有 限的求 解 区内。 这样 ,便 需要 
在 求解 区的边界上对 电位 函数 规定某些 边值条 件。常 见 的边界条件 有下列 3种 形式 :
 
① 第 一边界 条件 :在一部分 边界 r、上给定 电位值 
u J
 
r =  1
(  ),
  ∈ n  (
3) 

② 第二边界条件:在另一部分边界  上给定电位的外法向微商值 


 =诬(
 ),
  ∈
  (
4)
 
③ 第三边界条件 :在其余边界  上给定电位及其外法向微商的线性组合值 

a“/
an十矗
u]i
  =  (
 ),
  ∈ r]
  (
5) 
其中:
  是常 数 ;
  l,
  和 伽 是 点坐 标的 已知 函数 ; rl
,  和  之和 构成 求解 区 的全 部边界 r;n 
为边界 的外法 向。
 

3 有 限差分 的求解方法 
有限差分 法是一种网格法。其基本思想  是以差商代替导数,将偏微分方程直接转化成代数方程 
组,然后对 其求 解。这是 一种离 散近似 的计算 方 法,所 要 寻求 的不 是域 内的连 续 函数,而 是 域 内各 节 
点上 函数 的近似值 。
 
3.1 区域 离散作 网格 剖分 
不 失一般性 , 为衙 略 起见 ,取 沿 z轴和 Y轴 
方向的步长均为 h,作两簇分别与  轴和  轴平 
行 的直线 
z = z.= i
h,(i= 0,1,2,一.M )
 
=   =  
, (J= 0,1,
2,… .N )
 
这样 , z—  平面就 被这 两簇平 行线构成 的网格 所 
覆盖 。每 个 正 方 形 为 一 个 单 元 .其 边 长 为步 长,
 
网格的交点为节点,任一节点的坐标 (
 ,  )可 
表示为 (i
h,
  ) ,或简记 为 (i
,J)
,图 1示 出 
了区域 的网格 剖分 。
 
3.2 微 分方 程离散 化  图 l 区域 网格剖分 

如图 2所示。假设 图中节点 (i
,J)的电位  ng 1
  Di
vis
ion 
of 
regi
on 

函数值 用 “ (“  ) = u.表 示 ,与 点 (i


. , ,j)
 
直接相邻的节点 (i一1.j)
, (i+1
,J)
, (i
,J一1)
. (i
,j+1)上的电位 函数值分别用 “
 _l
_
 
u  , u  _l
_ “  +l
表示 。在通过 节点 (
 ,  )且 平行于 z轴 的直线 上 的任 意 点 z的 电位 值  ,可 
用二元 函数的 泰勒公式 在 (i
,J)点 的展开为 【
 】
 

~_

+( l


 ~  (
罄 如~ +
 (骞  ~  ・
 
维普资讯 http://www.cqvip.com

桂 林 工 学 院 学 报  2
001芷 

在 节点 (2十1. J), _
丁= I
丁 .十h, 这 一 点 的 电位 是 



十l
 =
_  +h

  +
  喜  l…



{ 
 ̄u

“ +-
 
- (
6)
 
在节点 (
  1, J), _
丁=  .一h,这一 点的 电位 是 

一 h

  +
 (喜 一
 (  +.


  (
7)
 
当 h很 小 时即正方 形网格很 多 时,式 (6)和 (
7)中的三 次项及 三次 以上 的项都可 忽 略。
 
由式 (6) 一 (7).可得 


塞)  (
8)
 
这表明,节点 (i
, J) 的平 均 中心差 商近 似等于 该点 的偏 导数 。 h越 小 ,近似 的精确 度就 越高。
 

由式(
6)
十(7
),
可得 h
2(
券)  “
m,
 +I


-l
,j
一2u

,  (
9)
 
同理 可写出,通 过节 点 (
 ,J)且平行 于  轴 的直 线 上 的任 意点  的电位值 

^ (
  )
  =  rl十 “ r  
2  (1
0) 

由式 (
9)和式 (1
0)加 .则有 


喜十 )

_
 =  l
  l
 4“
  …)
 
由式 (
2)及式 (1)
, 在节点 (i
,J)分 别有 


妻十嘉)

 =
_   (

2)
 

 a +  =o
  (1
3) 
z  a  …  

将上述二式 分别代人 式 (11)中,便得 到在 节点 (i


,j)的有 限差分 方程 

=  + u +l+  l
lJ十  一1一 h ^.
 ]  (14)
 

=  u  J十  +1十  _l
 十  川 ]
_   O5)
 


 3 线性方程组的形成与求解 
从上述 的推导过程 可 以看 出,在 (i
.J)点用 一个有 限差分方  、
 t.j r】)
 

程近 似地代替  该点 的泊 橙方 程或 拉 普拉 斯方 程。对 于边 界 节点 .
 
其相应 的差分方 程 可根 据 边界 条 件 给 出。 全 部节 点 所建 立 差 分 方 

  (』 .
力  (
 
程 (1
4)和 (15)的总和 .可分别写成  下矩 阵形 式 ]
  “ 
[A]・j
  l= {F}
  (16)
 
Ii.
 f—i)
 
和  [A]・
  nl= 0  (1
7) 

 

其中:[
A:是方程组的系数矩阵; {
“-是 电位 “的列 向量,其分 
图 2 节点分布图 
量为所有节 点上的 电位 ;j
 Fl是常 向量 。
 
飚 2  ns
tr ̄
but
ion。j
 node
 

4 试算效果 

  I 算倒 
设有一个截面为矩形的无限延伸导体槽 .槽 的宽为 1
6 m,高为 1
0 m,槽 的盖板 (
导体)同两侧面 
绝缘,盖板电位是 1
00 
V,周边电位均为 0,如图 3所示.试分析槽内的电位分布[
 。 
分析:这是一个二维稳定电场问题。在求解区内 (
无场源 P
,=O)
,电位函数满足拉普拉斯方程 :
 
维普资讯 http://www.cqvip.com

第 21卷 第 2期  熊 彬等 :MATLAB在 有 限差 分法 中的应用 

v  :  +  : 一 出 : 0 
a  a 

可以应用前述 差 分格 式 (1
5),然 后 具 体给 出求解 区 
边界上节 点 电位 的 表达 式 , 以构 成 完 整 的差 分 方 程 

盖板上利用第一类边界条件 ;其余 3个边上,利用 
第 二类边界 条件 .并取 啦 (P) =0)
。具 体计算 时笔 
者不采用联 立求解有 限差 分方程 组的方 法,而是 首先 
对每一 节 点 上 的 电位 赋 以初 值 (零 级 近似 ), 尔后 ,
 
根据某个 内节点相 邻 4个点 的电位值 (包括 已知的边 
值)按差分 方 程直 接 计 算 出该 点 电位 下 一级 的近 似 
值,通过多次迭代,不断修正,直到相邻两级近似值  图 3 方形截面导体槽 
的变化在允许范围之内,就可认为节点上的电位值趋  F  3  Re
etan
gul
ar.

ect
ion 
conduc
tor
 sl
om 

于精 确。根 据上述 算 法 ,采用 MATLAB程序语 言 编 


制了
,一方便 易懂 的有 限差分法 源程序 。
 
4  2 程序框 图 
程序框 图见图 4。
 
4.3
  MATLAB程序 编 制及 说明 
h=1;
  //步 长 
∞ =1
00;
  //导体槽 盖电位 
ha-
=15*h+1
  //网格横 向节 点数 

9*h+1:
  //网格纵 向节 点数 
设置零 级近似值 一 一一 一一 一一一一 一 
一 一 一 一 一 一 一 一 一 一 一   一 一 一 一 一 一

vl=ze
ros
  ,
ha-
):  //用 零矩 阵对阿格各 节点 电位进 行初值化 
vl(
 , )=oi
le
8f1,
  )*硼  //对沿盖 板各节 点赋初值 1
00 
1(
2:  一1,2:}
 一1)=o
nes
  一2, h 一2)*
 O/
2; /
/对内节点赋一任意初值 
位 =zer
os(
 . k );
  //初 值化结果 变量 
以  1开始 迭代计算  2一一一一 一一 一 
一 一 一 一 一 一 一 一 一 一 一 一 一 一 一 一 一 一


or i= 1:
by 


or J= 1;
ha-
 


f i= = hy 

20,
J)= 加  //盖板 电位 100
 

lse
 if
 i==1l
j==1l
 
J= = 
v2矗,
J):0  //周 边 电位 O 
el
se 

以 0,
J)  1
 ,J一1)+vl
 ,J+1)
 
+vl“一1.
J)+vl
 0+1
 ))
/4 
end 

//拉普 拉斯方 程 

用 2代替 1,
以 1循环迭代计算 2一一
 

or&= 1.
500  //循环 次数 
维普资讯 http://www.cqvip.com


08  桂 林 工 学 院 学 报  20
01年 

以   v2 


or i= 1
 


or ,= 1:
 


f  =  输入 同格削丹参数 

 
v2 .
j)= 0;
  //盖板 电位 l
O0 
l初始他结果输出变量 
el
sei
f i= =1I
 
J==1I
 
J= = 

 
v2 .
j)=0  //周边 电位 0
  蛤 罔格中各节点赋电位初值 
el
se  ●
 
v2
 .J)=  1“,
J一1)+。1
 .J+1)
  l设置总的遗代次数 

+  1
  一1
 J)+  1“+1.
J))
/4;
  回±
  
end 
t 
//拉普拉斯 方程 
end 

end 
end 
一 一 一 一 一 一 一 一 一 一 一 一

结果成 图 一 一一一 一一一一 一一 



ubpl
of1,
2,1)
  //分 割 图形 窗 口为 1×2个子 坐 标 系 ,且 第 1
  输 出各节 点的电位 
个 为当前坐标 系 
me
sh(v2)
  //绘 三维 曲面 图 
hl=r
nes
h(以 );
 

et(h1.’
Line
Widt
h,1、。
Edge
Col
or’,。
b‘)
 

ext
(一6,
10.1
20.‘
 。,。
Font
Siz
e。,
10);
 
图 4 程序框图 

ext
(一4.
12.
0,‘h‘.‘
Font
Siz
e‘,1
0);
  Fi
g 4
  Fr
ame— p
ict
ure
 of
 pr
ogr
am 

ext
(18,
0,0.
  b。
,‘Font
Siz
e。,10);
 
hol
d oi
l 


xis
([0,1
7.0,
10.
0,100]);
 

ubpl
ot(1,
2,2)
 

ont
our
(v2.‘
  一’)
  //绘 等值线 图 

ext
(一2,
10.‘
h’,‘
Font
Siz
e’,
10);
 

ext(1
7,1,‘
b’.
 Font
¥iz
e ,
10);
 
h0l
d oi
l 

4 4 计算 结果 
图 5为程序计算结果,图 a底面为槽 截面.纵轴为 电位 ;图 b为槽截面的电位分布。结果表明,
 
有 限差分 法 作为一 种数值计算 方法 ,用其 差分方 程来 近似地 代替 偏 微分 方 程是 能 有 效地解 决 问题。在 
本例 中,如果需要更高的精度.还可以继续计算下去,直到各点的电位数值不再改变为止。但是,如 
果不 缩小 h(网格线 之 间的距离 ).
不会 得到很 高精 确度,因为差分公 式 本身 的近 似程 度就 决 定于 h的大 
小 。随着 网格节点 的增多 ,内节点 也增多 ,可以计算 出更多 的点 上的 电位 ,工作 量也 将太大增 加 。
 

5 结 论 
通过 以上 的初 步探讨 ,可 以看 出 MATLAB在有 限差分 法 的计 算 中.或 者 说是 在 工 程计 算 和 数据 
处理 中.确 实具备 如下优 点 :
 

1)较其它高级程序设计语言,MATLAB程序语言的规则更为接近数学表示[
 。 
维普资讯 http://www.cqvip.com

第 21卷 第 2期  熊 彬等 :I
VI
ATLAB在有跟差分 法 中的应 用  1
09 

0   日  5   4  2  

图 5 槽内电位分布三维曲面图 (
a)殛措内电位等值线图 (
b) 
Fi
g 5
  3 D mes
h of
 pot
ent
ialN ̄f
ibmt
on f
 
a)and 
ecmt
our。f
 pot
ent

al(
b)i
n s
lot
s 
注 :图 a与 图 b均为 MATLRB消 隐图,考 虑到印刷质 量 ,此处 均采用 黑色实 线 


2)语 句 简洁明 了,表意却 出乎 意料的 丰富。 比如,上 面程序 中函数 mes
h、c
ont
oL!

"、s
ubpl
ot等 等,就 
出现 了“
一句顶几百旬”
其它语言的生动场面,
这一点是 C、
For
tra
n等程序设计语言所无法比拟的。
 

3)在有大量数据的处理过程当中,避免  变量、矩阵的事先定义,MATLAB会 自动获取所需 
的存储 空 间【
7l。
 

4)提供 了良好 的用户 界 面,许多 函数 本身会 自动绘 制出 图形 ,而 且会 自动选取 坐 标刻度  可 以 
使用户大大节约设计时间,提高设计质量。  
此外 ,本 文 由于讨 论 问题所 限,还未 涉及到其 它 易于 扩展 的功 能。这 一 功能 可 以方 便 地构 造 出专 
用函数,从而大大地扩展 MATL
AB的应用范围。
 
综 上所述  MATLAB工 具软件 在 数据 的处理和 结果成 图方 面都是极具 潜力 的。
 

参考文献 :
 


1] Ev
a  En ̄l
der
,Ande
ts 
Sjo ̄r
g Th
e MATI
_ ̄ 5 
Handb∞k [M] Be
ij
ing:Chi
na 
Mach
ine 
lho
, ̄
s.2000
  1~6 

2]  罗延钟  有 限差分 法 [
J] 物 化探 电子计算技 术,1982,6 (1):75-88
 

3]  王新民.地学中的近代计算方法 [
  姜佩仁 , M].长春:吉林大学出版社.1
993
 23
5-2
43 
[4]
  罗延钟 ,
 张桂青 电子 计算机在 电法 勘探中 的应 用 [
M].武汉 :武汉 地质 学院 出版社, 1
987
 17~30 
【5]
  毕德 显  电磁场理 论 [M] 北 京 :电子 工业 出版社, 1
985+190~19
8 

6’  傅 良魁 应 用地球 物理 教程—— 电法 [M] 北京 :地质 出版社 ,1
990
 18-20
 

7]  于卫,囝华粱 MATLAB程序设计语言 【
  楼顺 天, M] 西安:西安电子科技大学出版杜,1
99g
 l~1
0 

The appl
icati
on 
ofM ATLAB t
o fi
nit
e diference method 

XI
ONG 
Bin,RUAN 
Bai
—ya
o 

(De
par
tment
 of Re
sourc
e and Envi
ronment
al Engi
nee
ring, C ̄i
lin I
nst
itut
e o
f Te
chnol
ogy, Gui
lin 
541
004  Chi
na)
 

Abst
ract: MA TLAB i
s appl
ied 
to the
 cal
cul
ati
on of
 FEM , a
n d i
ts adva
n tages of
 mi
ghty f
unc and si
mpl
ici
ty 
are 
broughti
ntoful
l 
play.Thr
ough t
he 
cal
cu
lat
ionon 
a2一D 
stabl
e el
ectri
cfi
eld,i
tisi
ndi
cated t
hatthi
ski
nd 

Of
 pr
ogr
am 
ln gua
a ge.c
ompa
red 
wit
h ot
her
a(C 
or 
For
trn .e
a te.)i
n t
he f
ie
ld 
of 
proj
ect
 and 
mat
h pr
obl
ems
, 
has f
oll
ow 
feature
s :usi
ng hri
ef
ly,power
ful
 lexi
cal
 funct
ion,f
riendl
y GB
ers i
nter
face.So 
it i
s pr
opi
tious t
o be 

ge
ner
li
a ze
d wi
del
y i
n t
he 
cal
cul
ati
on 
of 
pro
jec
t an
d es
pei
al
ly 
da
ta—pr
oce
ssi
g 
n of
 ge
ophys
ics.
 
Ke
y wor
ds:MA'
rLAE: f
ini
te 
d ̄f
ere
nce
 met
hod;f
orwa
rd 
cal
cul
ati
on;2一D 
elec
tri
c f
iel
d 

You might also like