1、毕业论文 开题报告 信息与计算科学 数值积分的 MATLAB GUI 设计 一、选题的背景、意义 1.选题的背景 由于计算机的发展和普及,科学计算已成为解决各类科学技术问题的重要手段。因此,掌握科学计算的基本原理和方法是当今科学技术工作者不可缺少的本领和技能之一。并且经过不断的研究和累积,在现今科学研究和工程实践中,数值计算已经发展成为一门用来分析数据,解决实际问题的重要学科,成为继理论分析、实验之后又一个重要的研究方法。 MATLAB 是一种数值计算环境和编程语言,主要包括 MATLAB 和 Simulink 两大部分。 MATLAB 基于矩阵运算, 具有强大的数值分析、矩阵计算、信号处理和
2、图形显示功能,其强大的数据处理能力和丰富的工具箱使得它的编程极为简单。 MATLAB 既能进行科学计算,又能开发出所需要的图形界面。 1 2选题的意义 数值积分是数值逼近的重要内容,也是函数插值的最直接应用。在工程计算中,由于许多函数的不定积分无法用简单函数表达出来,甚至函数本身都无法详尽地描述,而代之以表格的形式给出一些离散点上的函数值,或者定义为某个无法用显式表示的微分方程的解。在上述这些情况下,我们必须采用数值积分。 2数值积分 的运算比较繁琐,而且怎样形象地把数值积分表达出来也是一个问题,所以运用 MATLAB 强大的计算能力和 MATLAB GUI 图形显示功能就可以给研究数值积分提
3、供很大的方便。 二、研究的基本内容与拟解决的主要问题 2.1 MATLAB 软件介绍 2.1.1 MATLAB 软件概况 3、 4 MATLAB 是一种用于科学技术计算的高性能语言。它将计算、可视化和程序设计集成在一个非常容易使用的环境中,使用我们熟悉的数学符号表示问题与答案。 MATLAB 的应用范围广泛,包括数学与计算;算法开发;数据采集;建模与模拟;数据分析、 研究和可视化;科学和工程图形;应用程序开发,包括图形用户界面的建立。 MATLAB 是一个交互系统,它的基本数据元素是数组,尤其适合解决用矩阵和向量组织数据的科学技术计算问题。 MATLAB 很重要的特点,是附加了一个解决专门问题
4、的应用程序大家族,叫做工具箱。它对于 MATLAB 用户是非常重要的,能让用户学习和应用专门的技术。工具箱是 MATLAB 函数的全面集合,扩展了 MATLAB 解决特殊类型问题的环境。工具箱可应用的领域包括信号处理、控制系统、神经网络、模糊逻辑、子波、模拟等方面。 期望“精通” Matlab 似乎不 太现实,它涉及到太多的数学领域。但如果熟知有关领域的数学内容,掌握相应的工具箱或在此基础上进行新的开发是比较容易的, Matlab 设有 C语言和 Fortran 语言接口,这使得开发更为方便灵活。 2.1.2 MATLAB 语言特点 5、 6 Matlab 现在已经广泛地应用于工程设计的各个领
5、域,而它之所以能够在各个方面都表现得如鱼得水,其原因就在于它实用性的语言特点。 1. 功能强大 MATLAB 4.0 以上 (不包括 4.0 版本 )的各版本,不仅正数值计算上继续保持着相对其他同类软件的绝对优势,而且还开发了自己的符号运算功能。 特别是 MATLAB6J 版本在符号运算功能上丝毫不逊于其他各类软件,如 MathCAD, Mathematica 等。这样,用户就不必像以前的计算人员那样在掌握 MATLAB 的同时还要学习另一种符号运算软件。用户只要学会了 MATLAB 6.x,就可以方便地处理诸如矩阵变换及运算、多项式运算、微积分运算、线性与非线性方程求解、常微分方程求解、偏微
6、分方程求解、插值与拟合、统计与优化等问题了。 做过数学计算的人可能知道,在计算中最难处理的就是算法的选择,这个问题在MATLAB 面前释然而解。 MATLAB 中许多功能函数都带有算 法的自适应能力,且算法先进,大大解决了用户的后顾之忧。同时,这也大大弥补了 MATLAB 程序因非可执行文件而影响其速度的缺陷,因为在很多实际问题中,计算速度对算法的依赖程度大大高于对运算本身的依赖程度。另外, MATLAB 提供了一套完善的图形可视化功能,为用户向别人展示自己的计算结果提供了广阔的空间。 2. 语言简单 无论一种语言的功能多么强大,如果语言本身是艰涩而蹩脚的,那么它绝非一个成功的语言,而 MAT
7、LAB 是成功的,它允许用户以数学形式的语言编写程序,比 BASIC、 FORTRAN和 C 等语言更接近于书写计算公式的 思维方式。它的操作和功能函数指令就是以平时计算机和数学书上的一些简单英文单词表达的。由于它在很长一段时间内是用 C 语言开发的,它的不多的几个程序流控制语句同 C 语言差别甚微,初学者很容易掌握。 MATLAB 语言的帮助系统也近乎完备,用户可以方便地查询到想要的各种信息。 另外, MATLAB 还专门为初学者 (包括其中某一个工具箱的初学者 )提供了功能演示窗口,用户可以从中得到感兴趣的例子及演示。 3. 扩充能力强、可开发性强 MATLAB 能发展到今天这种程度,它的
8、可扩充性和可开发性起着不可估量的作用。MATLAB 本身就像一个 解释系统,对其中的函数程序的执行以一种解释执行的方式进行。这样最大的好处是 MATLAB 完全成了一个开放的系统,用户可以方便地看到函数的源程序,也可以方便地开发自己的程序,甚至创建自己的“库”。 另外, MATLAB 并不“排他”, MATLAB 可以方便地与 FORTRAN, C 等语言接口,以充分利用各种资源。用户只需将已有的 EXE 文件转换成 MEX 文件,就可以方便地调用有关程序和子程序。 MATLAB 还和 Maple 有很好的接口,这也大大扩充了 MATLAB 的符号运算功能。 4 编程易、效率高 从形式上看,
9、MATLAB 程序文件 是一个纯文本文件,扩展名为 m。用任何字处理软件都可以对它进行编写和修改,因此程序易调试,人机交互性强。 2.1.3 MATLAB GUI 介绍 7、 8 图形用户界面图形用户界面 (GUI)是使用图形对象 (例如按钮、文本框、滚动条和菜单等 )创建的用户界面。通常这些对象对计算机用户而言都有明确的含义,例如移动滚动条将会改变数值,按下 OK 按钮将完成并应用用户的设置,同时设置对话框消失。当然用户必须保证这些不同对象间能够协调地工作。 MATLAB 用一个包含多种不同风格用户控件对象的图形窗口代表用户界面。用户必须对每一 个对象进行编程,使用户在 GUI 中的行为能够
10、达到相应的目的。 实现一个 GUI 的过程包括两个基本任务:一是 GUI 的组件布局,另一个是 GUI 组件编程。另外,用户还必须能够保存并发布自己的 GUI,使得用户开发的图形界面能够真正得到应用。所有这些功能都能通过图形用户界面开发环境 GUIDE 来完成。 GUIDE 首先是一个组件布局工具集,能够生成用户所需的组件资源并保存在一个 FIG 文件中:其次, GUIDE 还将生成一个包含 GUI 初始化和发布控制代码的 M 文件,该文件为回调函数 (用户在图形界面中激活某一控件时要执行的函数 )提供了一 个框架。事实上,用户也可以通过编写调用组件函数的 M 文件来实现 GUI 中所有组件的
11、布局,但是使用 GUIDE 交互式的组件布局功能将会大大减小工作量。 GUIDE 可以为 GUI 同时生成以下两个文件: 一个 FIG 文件:该文件包括 GU 的图形窗口和所有子对象 (包括用户控件和坐标轴 )的完全描述以及所有对象的属性值。 一个 M 文件:该文件包括用户用来发布和控制界面和回调函数 (这里作为子函数 )的各种函数。该文件中不包含任何组件的布置信息。 一个好的 GUI 能够使程序更加容易使用。它提供给用户一个常见的界面,还提供一些控件,例如按钮、列 表框、滑块、菜单等。用户图形界面应当是易理解且操作是可以预告的,所以当用户进行某一项操作时,它知道如何去做。例如,当鼠标在一个按
12、钮上发生了单击事件,利用消息驱动机制,用户图形界面初始化它的操作,并在按钮的标签上对这个操作进行描述。 2.2 数值积分 2.2.1 梯形公式 9、 10 设 ()ba f x dx为所求定积分。对积分区间 , ab 作 n 等分: 0 1 2 na x x x x b , 步长 bah n , ix a ih , ()iiy f x , 0,1,2, ,in , 11( ) ( )iinbxaxif x dx f x dx . (1) 对于 1,2, ,in ,在小区间 1 , iixx 上以 ()fx的线性 (拉格朗日 )插值 1,()iLx近似替代()fx,即 11 , 1 1 1111
13、( ) ( ) ( ) ( ) iii i i i i i ii i i ix x x xf x L x y y x x y x x yx x x x h , 1 1 11 1 11( ) ( ) ( ) ( )2i i ii i ix x xi i i i i ix x xhf x d x y x x d x y x x d x y yh , 代入 (1)式得 0 1 1 2 2 3 1( ) ( ) ( ) ( ) ( ) 2b nna hf x d x y y y y y y y y , 即 10 1 2 1 0 111( ) ( ) ( ) ( )22nbn n n ia if x d
14、x h y y y y y h y y y . (12-4) 当 f 在 , ab 上连续且非负时,公式 (12-4)有明显的几何意义: ()ba f x dx表示由()y f x ,x 轴及直线 xa ,xb 所确定的曲边梯形的面积。等分 , ab ,把曲边梯形分成 n 个小曲边梯形,以连结 11( , )iixy,( , )iixy 的线段替代曲边得到小梯形,公式 (12-4)表示以所有小梯形面积的和来作为积分 ()ba f x dx的近似值,因此将这种方法称为梯形法。 梯形公式的精度为 1n 。 2.2.2 Simpson 公式 11、 12 当区间 (, )ab 内插 入奇数个等分点,
15、即 n 为偶数时常用 Simpson 公式: (6.3.4) (6.3.4)式又称为抛物线公式,因为它可以通过在 02 , xx , 24 , xx , , 2 , nnxx各小区间上用抛物线近似替代曲线 ()y f x 得到。例如在小区间 02 , xx 是用经过三点00( , ( )x f x , 11( , ( )x f x , 22( , ( )x f x 的抛物线 ()y sx 替代曲线 ()y f x 。 容易验证, Simpson 公式的代数 精确度是 3,故它对 3 次多项式是精确成立的。 2.2.3 高斯求积公式 13、 14 n 阶 Newton-Cotes 求积公式,当
16、n 为偶数时,其代数精度可达到 1n ,能否通过选择合适的积分结点使求积公式的代数精度达到最高,本节将讨论这个问题。 考察 1n 个结点的求积公式, 0( ) ( ) ( )nbkka kx f x dx A f x (9-4-1) 其中 ()x 为 , ab 上的权函数。 注意到若 2 2 2 21 0 1( ) ( ) ( ) ( ) ( )nnf x w x x x x x x x 时 22110( ) ( ) 0 ( )nbn k na kx w x d x A w x 故式 (9-4-1)最高的代数精度为 21n 。若选取参数 kx , kA , 0kn ,可使式 (9-4-1)的代
17、数精度达到 21n ,就称式 (9-4-1)为高斯 (Gauss)型求积公式。简称为 Gauss 公式。此时称结点 0,nxx为 Gauss 点, ( 0 )kA k n 为 Gauss 系数。 Gauss 公式的精度至少是 21n 三、研究的方法与技术路线、研究难点, 预期达到的目标 1、研究内容 ( 1)掌握 Matlab 的基本语法、基本命令、 Matlab 函数及程序设计,学习 Matlab GUI图形用户界面的设计; ( 2)熟悉数值积分的各种计算公式; ( 3) 用 Matlab GUI 图形用户界面实现数值积分。 2、研究方法及技术路线 本论文主要以查找资料,根据现有的知识,在前
18、辈的研究基础上,运用 Matlab 工具进行数值运算,并运用 Matlab GUI 图形界面功能实现数值积分的可视化。采用了大量阅读现有的资料 对这些内容进行归纳整理 最后运用相关知识来编程求解的路线。 3、研 究难点 (1)数值积分有很多种求解方法,本文只讨论最经典的几种方法; (2)由于论题比较深奥,很难有突破或创新之处; (3)对编程的熟练程度及对 Matlab GUI 的学习和掌握程度有待加强。 4、预期达到的目标 通过这次论文的撰写更好的掌握 Matlab 的基本语法、基本命令, Matlab 函数程序设计,会用 Matlab编写程序实现数值计算,并会运用 Matlab GUI 进行
19、用户界面设计,同时用 Matlab GUI 来实现数值积分的可视化。除此,对 MATLAB 的掌握更进一步,对于相关或类似的问题也能很好的处理,并且 用软件来解决更多的问题。 四、论文详细工作进度和安排 第 7 学期第 9 周( 2010 年 11 月 5 号)至第 7 学期第 19 周( 2011 年 1 月 10 号) 完成毕业论文文献检索、文献综述、外文文献翻译及开题报告。 第 7 学期第 19 周( 2011 年 1 月 10 号)至第 8 学期第 3 周( 2011 年 3 月 11 号) 完成毕业论文的数据收集、论文初稿。 第 8 学期第 3 周( 2011 年 3 月 11 号)
20、至第 8 学期第 11 周( 2011 年 5 月 3 号) 1、进入实习单位进行毕业实习,对论文进行修改; 2、第 11 周( 2011 年 5 月 3 日)前必须返校,完成毕业实习返 校,并递交毕业实习报告,进一步完善毕业论文; 第 8 学期第 14 周( 2011 年 5 月 23 号 2011 年 5 月 28 号)完成第一轮毕业论文答辩; 第 8 学期第 15 周( 2011 年 5 月 28 号 2011 年 6 月 3 号) 第一轮毕业论文答辩未通过的学生完成第二轮毕业论文答辩,并随机抽取部分完成较好地毕业论文进行校级答辩 五、主要参考文献: 1 拉克唐瓦尔德 . 数值方法和 M
21、ATLAB 实现与应用 M. 北京:机械工业出版社, 2004.9: 6 7 2 蒋尔雄,赵风光 . 数值逼近 M. 上海:复旦大学出版社 , 1996: 137 3 董振海 . 精通 MATLAB 7 编程与数据库应用 M. 北京:电子工业出版社, 2007.08. 4 周晓阳 . 数学实验与 MatlabM. 武汉:华中科技大学出版社 , 2002. 5 王华等 . Matlab 在电信工程中的应用 M. 北京:中国水利水电出版社 , 2001: 1 6 王沫然 . MATLAB 与科学计算 M. 北京:电子工业出版社 , 2003: 1 3 7 施晓红,周佳 . 精通 GUI 图形界面编
22、程 M. 北京:北京大学出版社 , 2003: 35 36 8 陈垚光 ,毛涛涛等 . 精通 MATLAB GUI 设计 M. 北京:电子工业出版社 , 2008: 17 9 实用高等数学编写组 . 实用高等数学 第 2 册 M. 苏州:苏州大学出版社 , 2008. 10 John H.Mathews, Kurtis D.Fink.Numerical Methods Using MATLABM.BeiJing: Publishing House of Electronics Industry.2005. 11 李国莹等 . 应用数学基础 M. 上海:复旦大学出版社 , 2003. 12 黄明游 ,刘播 ,徐涛 . 数值计算方法 M. 北京:科学出版社 .2005. 13 张晓丹 . 应用计算方法教 M. 北京:机械工业出版社 , 2008: 261 14 Jeffery J.Leader.Numerical Analysis and Scientific ComputationM.北京:清华大学出版社, 2008.5 15 李显宏 . MATLAB7.X 界面设计与编译技巧 M.北京:电子工业出版社, 2006: 1 10