二重积分计算的MATLAB GUI 设计[文献综述]

二重积分计算的MATLAB GUI 设计[文献综述]
二重积分计算的MATLAB GUI 设计[文献综述]

文献综述

信息与计算科学

二重积分计算的MATLAB GUI 设计

一、前言部分

1.1 写作目的

在科学研究和工程应用中,人们通常希望将数据、设计或计算结果用交互式图形表示,以使数据的特征或性能能够清晰、直观地以GUI方式展现。通常,快捷方便地绘制图形,尤其是不规则图形,需要对绘图工具、语言有较为深入的了解,需要熟练使用这些工具或编写程序,而这通常是一项入门缓慢、熟练精通时间较长的工作。

MATLAB在提供强大计算功能的同时,近年来还大力发展了面向对象的图形技术和GUI技术,使用户可以轻松实现数据的交互式显示。MATLAB的图形绘制、图形高级操作以及GUI这些方面的应用日益普遍。使用MATLAB提供的图形设计技术,用户无须了解图形实现的细节内容,有时甚至只需几个简单的函数就可以绘制非常复杂的图。另外,用户还可以根据需要来规划、设计MATLAB 的图形外观,不断调整完善,直至绘图结果完全符合用户要求。总之,利用MATLAB提供的GUI设计工具或编写程序,可以简单、便捷地设计出美观、方便的菜单化和控制式的人机交互界面。[1] MATLAB是一种数值计算环境和编程语言,主要包括MATLAB和Simulink两大部分。MATLAB基于矩阵运算,具有强大的数值分析、矩阵计算、信号处理和图形显示功能,其强大的数据处理能力和丰富的工具箱使得它的编程极为简单。 MATLAB既能进行科学计算,又能开发出所需要的图形界面。图形用户界面(GUI)是由窗口、光标、按键、菜单、文字说明等对象(Objects)构成的一个用户界面。用户通过一定的方法选择、激活这些图形对象,使计算机产生某种动作或变化,比如实现计算、绘图等。[2]

在高等数学的学习中,经常面临一些有关图形和计算问题。但是很多函数的表达和计算过于抽象,而使用MATLAB可以通过GUI设计很好地解决这些问题,并且可以对相关的函数利用MATLAB 的强大数值计算功能进行进一步分析,同时可以执行一些动作或变化来满足用户的需求。如本文要讨论的二重积分的计算问题,在计算二重积分时,通常是把二重积分化为定积分,在实际计算化二重积分为二次积分的过程中往往会遇到原函数无法用初等函数表示的情形,这时需要考虑二重积分的近似计算方法。以下介绍论文涉及到的有关概念:

1.2 二重积分的定义[3]

二重积分是数学分析的重要内容之一,关于二重积分的定义,这里简述如下:

设D 为xoy 平面上可求面积的有界闭区域,),(y x f 为定义在D 上的函数。

用任意的曲线把D 分成n 个可求面积的小区域

n σσσ ,,21

以i σ?表示小区域i σ的面积,这些小区域构成D 的一个分割T ,以i d 表示小区域i σ的直径,称i n

i d T ≤≤=1max ||||为分割T 的细度。在每个i σ上任取一点),(i i ηξ,作和式 i n i i

i f σηξ?∑=1),(

称它为函数),(y x f 在D 上属于分割T 的一个积分和。

定义1:设),(y x f 是定义在可求面积的有界闭区域D 上的函数,J 是一个确定的数,若对任给的正数ε,总存在某个正数δ,使对于D 的任何分割T ,当它的细度δ<||||T 时,属于T 的所有积分和都有

εσηξ<-?∑=|),(|1J f i n i i

i ,

则称),(y x f 在D 上可积,数J 称为函数),(y x f 在D 上二重积分,记作

??=D

d y x f J σ),(,

其中),(y x f 称为二重积分的被积函数,y x ,称为积分变量,D 称为积分区域。

当0),(≥y x f 时,二重积分??D

d y x f σ),(在几何上就表示以),(y x f z =为曲顶,D 为底的

曲顶柱体的体积,当),(y x f =1时,二重积分??D

d y x f σ),(的值就等于积分区域D 的面积。

这篇论文主要应用MATLAB GUI 设计图形用户界面,实现二重积分计算的数据可视化,而二重积分图形可视化会显示求函数积分的过程,通过图形来表达二重积分的顺序及其含义,我们可以认真观察积分变量的依次积分情况来体会二重积分概念的内涵,同时这对加强自身的计算机编程能力和数学分析能力有一定的指导作用。

二、主题部分

2.1 MATLAB 软件概况

2.1.1 MATLAB软件简介[4,5]

MATLAB是Matrix Laboratory(矩阵实验室)的缩写,由美国Mathworks 公司开发。MATLAB 语言是当今国际上科学界 (尤其是自动控制领域) 最具影响力、也是最有活力的科学计算软件。它起源于矩阵运算,并已经发展成一种高度集成的计算机语言。它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、便捷的与其他程序和语言接口的功能。MATLAB 语言在各国高校与研究单位正扮演着重要的角色。在美国的一些大学里,MATLAB 正在成为对数值线性代数以及其他一些高等应用数学课程进行辅助教学的有益工具。在工程技术界,MATLAB 也被用来解决一些实际课题和数学模型问题。它在其他科学与工程领域的应用也是越来越广,并且有着更广阔的应用前景和无穷无尽的潜能。

MATLAB用户接口包括下拉菜单和对话框,任何个人电脑使用者对这一接口都很熟悉。菜单命令支持文件操作、打印、程序编辑和用户接口定制。MATLAB的数值计算是通过在命令窗口输入命令,并不是通过菜单操作进行的。

MATLAB是一个基本的应用程序,它有一个称为标准工具箱的巨大程序模块库。MATLAB工具箱包括解决实际问题的扩展库,如:求根、插值、数值积分、线性和非线性方程组求解以及常微分方程组求解。由于继承了LINPACK、EISPACK和LAPACK的特性,MATLAB对数值线性代数来说是一个高可靠的优化系统。许多数值作业能够用线性代数语言精确地表示。MATLAB和线性代数的密切关系是程序员能够用很短的MATLAB语言来解决复杂的数值作业。标准工具箱还包括数据可视化的扩展图形库,有简单的点、线和复杂的三维图形和动画。所有的MATLAB程序都可以使用这些函数,这样就可以在所有程序和程序集中分析并生成达到出版质量的图示。对图形的快速访问能有效地提高用户的效率。诊断点有助于调试程序和检验算法是否正确执行。低级的图形函数为自定义图形用户接口的分析代码提供了扩展空间。除了标准工具箱,可以使用其他的工具箱,如:信号处理、图像处理、优化、统计分析、偏微分方程的求解和许多数值计算的应用。

2.1.2 MATLAB语言特点[6,7]

MATLAB语言有不同于其他高级语言的特点,它被称为第四代计算机语言,MATLAB语言的最大特点就是简单和直接。正如第三代计算机语言使人们摆脱对计算机硬件操作一样,MATLAB语言使人们从烦琐的程序代码中解放出来。它丰富的函数使开发者无须重复编程,只要简单的调用和使用即可。MATLAB语言的主要特点可概括如下:

(1)以矩阵和数组为基础的运算

MATLAB 是以矩阵为基础的,不需要预先定义变量和矩阵(包括数组)的维数,可以方便地进行矩阵的算术运算、关系运算和逻辑运算等。

(2)简单易学,使用方便

MATLAB 被称为“草稿式”语言,这是因为其函数名和表达更接近我们书写计算公式的思维表达方式,编写MATLAB程序犹如在草稿纸上排列公式与求解问题,因此可以快速地验证工程技术人员的算法。此外MATLAB还是一种解释性语言,不需要专门的编译器。

(3)强大的图形技术

MATLAB具有非常强大的以图形化显示矩阵和数组的能力,同时它能给这些图形增加注释并且打印这些图形。MATLAB 的图形技术既包括一些可以方便产生二维、三维科技专业图形的高级绘图函数,又包括一些可以让用户灵活控制图形特点的低级绘图命令。另外,用户还可以利用MATLAB的句柄图形技术创建图形用户界面。

(4) 编程效率极高

MATLAB 是一种面向科学和工程计算的高级语言。它以矩阵运算为基础,极少的代码即可实现复杂的功能。

(5) 可扩充性强,具有方便的应用程序接口

MATLAB 不仅有着丰富的库函数,在进行复杂的数学运算时可以直接调用。而且用户还可以根据需要方便地编写和扩充新的函数库。通过混合编程用户可以方便地在MATLAB环境中调用其他用Fortran 或者 C 语言编写的代码,也可以在 C 语言或者 Fortran 语言程序中调用MATLAB 计算引擎来执行MATLAB代码。

2.1.3 MATLAB GUI介绍 [1、8]

一个可以发布的应用程序通常都需要有一个友好的图形用户界面(Graphical User Interface)。程序的用户界面是用户与计算机程序的交互方式,用户通过键盘、鼠标等输入设备与计算机交换信息。图形用户界面(GUI)是包含图形对象,如窗口、图标、菜单和文本的用户界面。用户以某种方式选择或激活这些对象,会引起动作或发生变化,例如调用计算程序或者绘图等。

图形用户界面通常是一种包含多种图形对象的界面,典型的图像界面包括图形显示区域,功能按钮控件以及用户自定义的功能菜单等。为了让界面实现各种功能,需要对各个图形对象进行布局和事件编程。当用户激活对应的GUI对象时,就能执行相应的时间行为。

GUI也是一种Matlab对象,可以使用M文件来创建M文件,这也是最基础的,使用其他方法创建时,也需要编写相应的程序代码。除了使用M文件来创建GUI对象外,Matlab还为用户开发图形界面提供一个方便高效的继承开发环境:Matlab图形用户界面开发环境(Matlab Graphical User Interface Development Environment,GUIDE)。其主要是一个界面设计工具集,他将所有GUI 所支持的用户控件都集成起来,同时提供界面外观、属性和行为响应方法的设置方法。除了可以使

用GUIDE 创建GUI 之外,还可以将设计好的GUI 界面保存为一个FIG 资源文件,同时自动生成对应的M 文件。该M 文件包含了GUI 初始化代码和组建界面布局的控制代码。

使用GUIDE 创建GUI 对象执行效率高,可以交互式的进行组件布局,还能生成保存和发布GUI 的对应文件。

在MATLAB 中提供了图形用户界面设计向导,利用该向导,用户可以非常方便和快捷地设计一个图形用户界面,如同在一张纸上绘图。可以把图形界面的外观,包括所有的按钮以及图形的位置确定下来,然后就可以利用MATLAB 的回调程序编辑器来编写其函数代码,从而可以使该图形界面完成预定的任务。

MATLAB 中的图形用户界面设计向导包括以下5个工具[9]

(1)对象设计编辑器(Layout Editor ):提供了9种不同的图形控制对象和一个坐标轴对象,可以使用户按照自己的需要在图形上非常方便地添加和删除图形控制对象。

(2)菜单编辑器(Menu Editor ):可创建、设置、修改下拉式菜单和内容式菜单。

(3)对象属性编辑器(Property Editor ):可查看每个对象的属性值,也可修改、设置对象的属性值。

(4)位置调整工具(Alignment Tool ):用来调整图形窗口中各个图形对象的位置的工具。

(5)对象浏览编辑器(Object Browser ):可观察当前设计阶段的各个句柄图形对象。 2.2 二重积分的计算方法

计算二重积分的方法是:从几何上, 把二重积分理解为曲顶柱体的体积, 将二重积分的计算问题转化为求累次积分的问题。

2.2.1 矩形区域],[],[d c b a D ?=上的二重积分计算[3]

定理 2.1 设),(y x f 在矩形区域],[],[d c b a D ?=上可积,且对每个],[b a x ∈,积分?d

c dy y x f ),(存在,则累次积分

??b a d c dy y x f dx ),(

也存在,且 ????=D b a d c dy y x f dx d y x f ),(),(σ

同理有

定理2.2 设),(y x f 在矩形区域],[],[d c b a D ?=上可积,且对每个],[d c y ∈,积分

?b

a dx y x f ),(存在,则累次积分

??d c b

a dx y x f dy ),(

也存在,且

????=D d c b

a dx y x f dy d y x f ),(),(σ

2.2.2 一般区域上的二重积分计算[10]

定义 2.1 如果积分区域D 是由两条连续曲线)(1x y y =和)(2x y y =, b x a ≤≤,

以及两条直线x=a, x=b 所限制,则称积分区域D 为 X-型区域。图形如下:

X-型区域

定理 2.3 在X-型区域上的积分是先对y 积分, 后对x 积分,即

????=D b a x y x y dy y

x f dx d y x f )

()(21),(),(σ 定义 2.2 如果积分区域D 是由两条连续曲线)(1y x x =和)(2y x x =, d y c ≤≤,

以及两条

直线y=c,y=d 所限制,则称积分区域D 为 Y-型区域。图形如下:

Y-型区域

定理 2.4 在Y-型区域上的积分是先对x 积分, 后对y 积分,即

????=D b a x y x y dy y x f dx d y x f )()(21),(),(σ

定义 2.3 如果积分区域D 的边界为)(1θr r =和)(2θr r =,)(βθα≤≤,设)(1θr ,

)(2θr 都在],[βα上连续则称积分区域D 为)(θr 一型区域。

定理2.5 在)(θr —型区域上的积分为:

dr r D y x D r y r x f d d y x f D r r |)

,(),(|)0,(),0,((),()()(21????=θθβαθθσ 2.3 计算步骤

2.3.1 在直角坐标系下用二次积分计算二重积分的步骤:

(1)作出区域D 的图形, 并认识它的类型即矩形区域、X-型、Y-型。

(2)若区域D 比较复杂, 就把区域D 分成若干基本型区域进行计算。

(3)确定积分次序。不仅要考虑区域D, 同时还要考虑被积函数, 定出二次积分的上、下限。

2.3.2 在极坐标下用二次积分计算二重积分的步骤:

(1) 一般情况下, 积分区域是圆域或其一部分, 或者D 的边界由极坐标方程给出较为简单, 或者被积函数含有22y x +, x

y 等表达式时, 用极坐标比较简单。 (2) 作变量代换, )sin(),cos(θθbr y ar x ==,

(a,b 为常数, 由被积函数或区域来确定)。

(3)改变面积元素θθσdrd r D y x D d )

,(),(= 2.3.3 二重积分的一般变量替换的步骤:

在运用以上两种方法比较困难时考虑一般变量替换。

(1)作变量替换),(),,(v u y y v u x x ==或者),(),,(y x v v y x u u ==。

(2)改变面积元素dudv y x D v u D dudv v u D y x D d )

,()

,(1),(),(==σ。 (3)区域D 作了变量替换后变成区域D ’,再按照一、二种方法进行判断和计算。

三、总结部分

本文首先介绍了MATLAB 软件,初步了解了MATLAB 的基本情况及其主要特点。MATLAB 一开始是专门用于矩阵数值计算的软件,随着MATLAB 主见市场化,MATLAB 不仅具有了数值计算功能,而且具有了数据可视化功能。MATLAB 自产生之日起,就以其强大的功能和良好的开放性而在科学计算诸多软件中独占鳌头。作为新兴的编程语言和可视化工具,有其他编程语言所不能比拟的优势。其主要特点也十分显著的,如编程效率高、使用方便、扩充能力强等。MATLAB GUI 是MATLAB 的图形用户界面,用户通过一定的方法选择、激活这些图形对象,使计算机产生某种动作或变化,比如实现计算、绘图等。而且它有友好的程序界面,再加上MATLAB 的强大计算能力,使得MATLAB 软件更受人们的欢迎。

接着,又介绍了二重积分的概念以及常用的计算方法,结合MATLAB 的强大的计算能力和MATLAB GUI 的友好图形界面,把二重积分的计算通过MA TLAB GUI 绘制图形后,可使得整个积分过程数据可视化,更加形象生动,更容易理解二重积分概念的内涵。

四、参考文献

[1]陈垚光,毛涛涛等.精通MATLAB GUI 设计[M].北京:电子工业出版社,2008

[2]孙祥,徐流美,吴清.MATLAB 7.0基础教程[M].北京:清华大学出版社,2005:1~4

[3]华东师范大学数学系.数学分析(下册 第三版).北京:高等教育出版社,2001.6:211~240

[4]拉克唐瓦尔德.数值方法和MATLAB 实现与应用[M].北京:机械工业出版社,2004.9:3~6

[5]John H.Mathews,Kurtis D.Fink.Numerical Methods Using MATLAB[M].BeiJing:

Publishing House of Electronics Industry,2005

[6]王素立,高洁,孙新德.MATLAB混合编程与工程[M].北京:清华大学出版社,2008.5:1~20

[7]周小阳.数学软件与MATLAB[M].武汉:华中科技大学出版社,2002

[8]施晓,周佳.精通MATLAB图形界面编程[M].北京:电子工业出版社,2008

[9]徐俊文,王强,金珩.MATLAB环境下的GUI编程[J].内蒙古民族大学学报,2006(21):640~641.

[10] 文武.关于二重积分的计算[J]. 川东学刊,1995(6):50~51

[11]南洋,周静等.基于MATLAB 的GUI 的界面设计[J].石油仪器,2008:76~78

[12]王沫然.MATLAB与科学计算[M].北京:电子工业出版社,2004

[13]Marvin L.Bittinger.微积分及其应用[M].杨奇毛云英.北京:机械工业出版社,2006.7:484~487

[14]James Stewanrt.Calculus[M].北京:高等教育出版社,2004.7:1009~1018

[15]Curtis F.Gerald,Patrick O.Wheatley.Applied Numerical Analysis[M].北京:高等教育出版社:2006.1:271~288

相关主题
相关文档
最新文档