1、 毕业论文 开题报告 信息与计算科学 二重积分计算的 MATLAB GUI 设计 一、选题的背景、意义 1.1 选题的背景 在科学研究和工程应用中,人们通常希望将数据、设计或计算结果用交互式图形表示,以使数据的特征或性能能够清晰、直观地以 GUI方式展现。通常,快捷方便地绘制图形,尤其是不规则图形,需要对绘图工具、语言有较为深入的了解,需要熟练使用这些工具或编写程序,而这通常是一项入门缓慢、熟练精通时间较长的工作。 MATLAB 在提供强大计算功能的同时,近年来还大力发展了面向对象的图形技术和 GUI技术,使用户可以 轻松实现数据的交互式显示。 MATLAB 的图形绘制、图形高级操作以及 GU
2、I这些方面的应用日益普遍。使用 MATLAB 提供的图形设计技术,用户无须了解图形实现的细节内容,有时甚至只需几个简单的函数就可以绘制非常复杂的图。另外,用户还可以根据需要来规划、设计 MATLAB 的图形外观,不断调整完善,直至绘图结果完全符合用户要求。总之,利用 MATLAB提供的 GUI 设计工具或编写程序,可以简单、便捷地设计出美观、方便的菜单化和控制式的人机交互界面。 1 在高等数学的学习中,经常面临一些有关图形和计算问题。但是很多函数的表 达和计算过于抽象,而使用 MATLAB 可以通过 GUI 设计很好地解决这些问题,并且可以对相关的函数利用 MATLAB 的强大数值计算功能进行
3、进一步分析,同时可以执行一些动作或变化来满足用户的需求。 1.2 选题的意义 积分理论是微积分学的重要内容之一,计算二重积分是计算重积分的基础 , 所以是数学分析课程的重点。由于二重积分是一种和式的极限 , 用定义来计算它是比较困难的。因此 ,二重积分的计算也是学习中的一个难点。 在计算二重积分时,通常是把二重积分化为定积分,在实际计算化二重积分为二次积分的过程中往往会遇到原函数无法 用初等函数表示的情形,这时需要考虑二重积分的近似计算方法。 运用 MATLAB 的计算能力和 用 MATLAB GUI 设计图形用户界面,实现二重积分计算的数据可视化,一方面二重积分图形可视化会显示求函数积分的过
4、程,通过图形来表达二重积分的顺序及其含义,观察积分变量的依次积分情况来体会二重积分概念的内涵,另一方面可以加强自身的计算机编程能力和数学分析能力。 二、研究的基本内容与拟解决的主要问题 2.1 MATLAB 软件概况 2.1.1 MATLAB 软件简介 4,5 MATLAB 是 Matrix Laboratory(矩阵实验室 )的缩写 ,由美国 Mathworks 公司开发。MATLAB 语言是当今国际上科学界 (尤其是自动控制领域 ) 最具影响力、也是最有活力的科学计算软件。它起源于矩阵运算,并已经发展成一种高度集成的计算机语言。它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化
5、与界面设计、便捷的与其他程序和语言接口的功能。 MATLAB 语言在各国高校与研究单位正扮演着重要的角色。在美国的一些大学里, MATLAB 正在成为对数值线性代数以及其他一些高等应用数学课程进行辅助教学的有益工具。在工程技术界, MATLAB 也被用来解决一些实际课题和数学模型问题。它在其他科学与工程领域的应用也是越来越广,并且有着更广阔的应用前景和无穷无尽的潜能。 MATLAB 用户接口包括下拉菜单和对话框,任何个人电脑使用者对这一接口都很熟悉。菜单命令支持文件操作、打印、程序编辑和用户接口定制。 MATLAB 的数值计算是通过在命令窗口输入命令,并不是通过菜单操作进行的。 MATLAB
6、是一个基本的应用程序,它有一个称为标准工具箱的巨大程序模块库。 MATLAB工具箱包括解决实际问题的扩展库,如: 求根、插值、数值积分、线性和非线性方程组求解以及常微分方程组求解。由于继承了 LINPACK、 EISPACK 和 LAPACK 的特性, MATLAB 对数值线性代数来说是一个高可靠的优化系统。许多数值作业能够用线性代数语言精确地表示。MATLAB和线性代数的密切关系是程序员能够用很短的 MATLAB语言来解决复杂的数值作业。标准工具箱还包括数据可视化的扩展图形库,有简单的点、线和复杂的三维图形和动画。所有的 MATLAB 程序都可以使用这些函数,这样就可以在所有程序和程序集中分
7、析并生成达到出版质量的图示。对图形的快速访问能 有效地提高用户的效率。诊断点有助于调试程序和检验算法是否正确执行。低级的图形函数为自定义图形用户接口的分析代码提供了扩展空间。除了标准工具箱,可以使用其他的工具箱,如:信号处理、图像处理、优化、统计分析、偏微分方程的求解和许多数值计算的应用。 2.1.2 MATLAB 语言特点 6,7 MATLAB 语言有不同于其他高级语言的特点,它被称为第四代计算机语言, MATLAB 语言的最大特点就是简单和直接。正如第三代计算机语言使人们摆脱对计算机硬件操作一样,MATLAB 语言使人们从烦琐的程序代码中解放出来。它丰富的函 数使开发者无须重复编程,只要简
8、单的调用和使用即可。 MATLAB语言的主要特点可概括如下: ( 1)以矩阵和数组为基础的运算 MATLAB 是以矩阵为基础的,不需要预先定义变量和矩阵 (包括数组 )的维数,可以方便地进行矩阵的算术运算、关系运算和逻辑运算等。 ( 2) 简单易学,使用方便 MATLAB 被称为 “ 草稿式 ” 语言,这是因为其函数名和表达更接近我们书写计算公式的思维表达方式,编写 MATLAB 程序犹如在草稿纸上排列公式与求解问题,因此可以快速地验证工程技术人员的算法。此外 MATLAB还是一种解释性语言,不需要专 门的编译器。 ( 3) 强大的图形技术 MATLAB 具有非常强大的以图形化显示矩阵和数组的
9、能力,同时它能给这些图形增加注释并且打印这些图形。 MATLAB 的图形技术既包括一些可以方便产生二维、三维科技专业图形的高级绘图函数,又包括一些可以让用户灵活控制图形特点的低级绘图命令。另外,用户还可以利用 MATLAB的句柄图形技术创建图形用户界面。 (4)编程效率极高 MATLAB 是一种面向科学和工程计算的高级语言。它以矩阵运算为基础,极少的代码即可实现复杂的功能。 (5) 可扩充性强,具有方便的应用程序接口 MATLAB 不仅有着丰富的库函数,在进行复杂的数学运算时可以直接调用。而且用户还可以根据需要方便地编写和扩充新的函数库。通过混合编程用户可以方便地在 MATLAB 环境中调用其
10、他用 Fortran 或者 C 语言编写的代码,也可以在 C 语言或者 Fortran 语言程序中调用 MATLAB 计算引擎来执行 MATLAB代码。 2.1.3 MATLAB GUI 介绍 1、 8 一个可以发布的应用程序通常都需要有一个友好的图形用户界面( Graphical User Interface)。程序的用户界面是用户与计算机程序的 交互方式,用户通过键盘、鼠标等输入设备与计算机交换信息。图形用户界面( GUI)是包含图形对象,如窗口、图标、菜单和文本的用户界面。用户以某种方式选择或激活这些对象,会引起动作或发生变化,例如调用计算程序或者绘图等。 图形用户界面通常是一种包含多种
11、图形对象的界面,典型的图像界面包括图形显示区域,功能按钮控件以及用户自定义的功能菜单等。为了让界面实现各种功能,需要对各个图形对象进行布局和事件编程。当用户激活对应的 GUI 对象时,就能执行相应的时间行为。 GUI 也是一种 Matlab 对象,可以使用 M 文件来创建 M 文件, 这也是最基础的,使用其他方法创建时,也需要编写相应的程序代码。除了使用 M 文件来创建 GUI 对象外, Matlab还为用户开发图形界面提供一个方便高效的继承开发环境: Matlab 图形用户界面开发环境( Matlab Graphical User Interface Development Environm
12、ent,GUIDE)。其主要是一个界面设计工具集,他将所有 GUI所支持的用户控件都集成起来,同时提供界面外观、属性和行为响应方法的设置方法。除了可以使用 GUIDE创建 GUI之外,还可以将设计好的 GUI界面保存为一个 FIG 资源文件,同时自动生成对应的 M 文件。该 M 文件包含了 GUI 初始化代码和组建界面布局的控制代码。 使用 GUIDE 创建 GUI 对象执行效率高,可以交互式的进行组件布局,还能生成保存和发布 GUI的对应文件。 在 MATLAB 中提供了图形用户界面设计向导,利用该向导,用户可以非常方便和快捷地设计一个图形用户界面,如同在一张纸上绘图。可以把图形界面的外观,
13、包括所有的按钮以及图形的位置确定下来,然后就可以利用 MATLAB 的回调程序编辑器来编写其函数代码,从而可以使该图形界面完成预定的任务。 MATLAB中的图形用户 界面设计向导包括以下 5个工具 9: ( 1)对象设计编辑器( Layout Editor):提供了 9种不同的图形控制对象和一个坐标轴对象,可以使用户按照自己的需要在图形上非常方便地添加和删除图形控制对象。 ( 2)菜单编辑器( Menu Editor):可创建、设置、修改下拉式菜单和内容式菜单。 ( 3)对象属性编辑器( Property Editor):可查看每个对象的属性值,也可修改、设置对象的属性值。 ( 4)位置调整工
14、具( Alignment Tool):用来调整图形窗口中各个图形对象的位置的工具 。 ( 5)对象浏 览编辑器( Object Browser):可观察当前设计阶段的各个句柄图形对象 。 2.2 二重积分的计算方法 计算二重积分的方法是:从几何上 , 把二重积分理解为曲顶柱体的体积 , 将二重积 分的计算问题转化为求累次积分的问题。 2.2.1 矩形区域 , dcbaD 上的二重积分计算 3 定理 2.1 设 ),( yxf 在矩形区域 , dcbaD 上可积,且对每个 , bax ,积分dc dyyxf ),( 存在,则累次积分 ba dc dyyxfdx ),(也存在,且 D ba dc
15、dyyxfdxdyxf ),(),( 同理有 定理 2.2 设 ),( yxf 在矩形区域 , dcbaD 上可积,且对每个 , dcy ,积分ba dxyxf ),( 存在,则累次积分 dc ba dxyxfdy ),(也存在,且 D dc ba dxyxfdydyxf ),(),( 2.2.2 一般区域上的二重积分计算 10 定义 2.1 如果积分区域 D是由两条连续曲线 )(1 xyy 和 )(2 xyy , bxa , 以及两条直线 x=a, x=b所限制,则称积分区域 D为 X-型区域。图形如下: X-型区域 定理 2.3 在 X-型区 域上的积分是先对 y积分 , 后对 x积分 ,
16、即 D a b x y o )(1 xyy)(2 xyy D ba xy xy dyyxfdxdyxf )( )(21 ),(),( 定义 2.2 如果积分区域 D是由两条连续曲线 )(1 yxx 和 )(2 yxx , dyc , 以及两条直线 y=c,y=d所限制,则称积分区域 D为 Y-型区域。图形如下: Y-型区域 定理 2.4 在 Y-型区域上的积分是先对 x积分 , 后对 y积分 ,即 D ba xy xy dyyxfdxdyxf )( )(21 ),(),( 定义 2.3 如果积分区域 D的边界为 )(1rr 和 )(2 rr , )( ,设 )(1r ,)(2r 都在 , 上连
17、续则称积分区域 D为 )(r 一型区域。 定理 2.5 在 )(r 型区域 上的积分为: drrD yxDryrxfddyxfD rr |),( ),(|)0,(),0,(),( )( )(21 2.3 计算步骤 2.3.1在直角坐标系下用二次积分计算二重积分的步骤: ( 1)作出区域 D 的图形 , 并认识它的类型即矩形区域、 X-型、 Y-型。 ( 2)若区域 D比较复杂 , 就把区域 D分成若干基本型区域进行计算。 ( 3)确定积分次序。不仅要考虑区域 D, 同时还要考虑被积函数 , 定出二次积分的上、D x y o )(1 yxx )(2 yxx c d 下限。 2.3.2在极坐标下用
18、二次积分计算二重积分的步骤: (1) 一般情况下 , 积分区域是圆域或其一部分 , 或者 D 的边界由极坐标方程给出较为简单 , 或者被积函 数含有 22 yx , xy 等表达式时 , 用极坐标比较简单。 (2) 作变量代换 , )s in (),c o s ( bryarx ,( a,b 为常数 , 由被积函数或区域来确定 ) 。 ( 3)改变面积元素 ( , )( , )D x yd d rdDr2.3.3 二重积分的一般变量替换的步骤: 在运用以上两种方法比较困难时考虑一般变量替换。 ( 1)作变量替换 ),(),( vuyyvuxx 或者 ),(),( yxvvyxu 。 ( 2)改
19、变面积元素( , )( , ) ( , )( , )1D x yd d ud v d ud vD u v D u vD x y 。 ( 3)区域 D作了变量替换后变成区域 D,再按照一、二种方法进行判断和计算。 三、研究的方法与技术路线、研究难点,预期达到的目标 3.1 研究内容 ( 1)掌握 MATLAB 的基本语法、基本命令、 MATLAB函数及程序设计,学习 MATLAB GUI图形用户界面的设计; ( 2)熟悉计算二重积分的各种方法:矩形区域、 X-型、 Y-型; ( 3)了解二重积分在各坐标系下的计算步骤以及一般变量替换的步骤; ( 4)应用 MATLAB GUI 设计 图形用户界面
20、,实现二重积分计算的数据可视化。 3.2 研究方法及技术路线 本论文主要以查找资料,以现有的知识水平,在前人的研究论述基础上,应用 MATLAB来 求解二重积分的问题, 并运用 MATLAB GUI 图形用户界面功能 绘制图形使数据可视化 。采取了从大量阅读已有的数据资料 然后对这些内容进行总结 最后运用相关知识来编程求解的技术路线 。 3.3 研究难点 ( 1)对 MATLAB GUI 之前没有接触过,因此要自己重新开始学习,并且这对计算机编程能力要求也比较高; ( 2)二重积分相对来说是数学分析中的一个难点 ,要充分掌握其中的知识有很大的难度,特别是那种无法找到原函数和积分区域不规则的二重
21、积分计算,得通过数值积分来求解; ( 3)该论题无论是对数学分析能力,还是计算机编程能力都有较高要求。 3.4、预期达到的目标 通过这次论文的撰写更好的掌握 MATLAB的基本语法、基本命令, MATLAB函数程序设计,会用 MATLAB 编写程序 求解二重积分 ,并会运用 MATLAB GUI 进行用户界面设计,同时用MATLAB GUI来实现 二重积分的计算,最后通过 MATLAB 绘制图形使数据可视化 。除此之外,更进一步掌握 MATLAB 软件的 各种功能,对于相关或类似的问题也能很好的处理,并且用软件来求解更多的问题。 四、论文详细工作进度和安排 第一阶段( 2010年 11 月 5
22、日 2011年 1月 6日): 确定毕业论文题目, 查阅文献,收集 相关信息、资料。 完成文献检索、开题报告及外文翻译的初稿。 第二阶段( 2011年 1月 6日 2011年 3月 11日): 完成毕业论文的数据收集、论文初稿。 第三阶段( 2011年 3月 11 日 2011年 5月 3日): 进入实习单位进行毕业实习,对论文进行修改, 将完成毕业论文交给指导教师审阅 。 第四阶段( 2011年 5月 23 日 2011年 5月 28 日): 准备并进行毕业论文答辩。 五、主要参考文献: 1陈垚光 ,毛涛涛等 .精通 MATLAB GUI设计 M.北京 :电子工业出版社 ,2008 2孙祥
23、,徐流美 ,吴清 .MATLAB 7.0基础教程 M.北京 :清华大学出版社 ,2005:1 4 3华东师范大学数学系 .数学分析(下册 第三版) .北京:高等教育出版社, 2001.6:211240 4拉克唐瓦尔德 .数值方法和 MATLAB实现与应用 M.北京 :机械工业出版社 ,2004.9:3 6 5John H.Mathews,Kurtis D.Fink.Numerical Methods Using MATLABM.BeiJing: Publishing House of Electronics Industry,2005 6王素立 ,高洁 ,孙新德 .MATLAB混合编程与工程
24、M.北京 :清华大学出版社 ,2008.5:1 20 7周小阳 .数学软件与 MATLABM.武汉 :华中科技大学出版社 ,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 13Marvin L.Bittinger.微积分及其应用 M.杨奇 毛云英 .北京 :机械工业出版社 ,2006.7: 484 487 14James Stewanrt.CalculusM.北京 :高等教育出版社 ,2004.7:1009 1018 15Curtis F.Gerald,Patrick O.Wheatley.Applied Numerical AnalysisM.北京 :高等教育出版社 :2006.1:271 288