1、 毕业论文 开题报告 信息与计算科学 求解非线性方程组和最优化的 MATLAB GUI 设计 一、选题的背景、意义 1.选题的背景 由于计算机的发展和普及,科学计算已成为解决各类科学技术问题的重要手段。因此,掌握科学计算的基本原理和方法是当今科学技术工作者不可缺少的本领和技能之一。并且经过不断的研究和累积,在现今科学研究和工程实践中,数值计算已经发展成为一门用来分析数据,解决实际问题的重要学科,成为继理论分析、实验之后又一个重要的研究方法。 MATLAB 是一种数值计算环境和编程语言,主要包括 MATLAB 和 Simulink 两大部分。 MATLAB 基于矩阵运算, 具有强大的数值分析、矩
2、阵计算、信号处理和图形显示功能,其强大的数据处理能力和丰富的工具箱使得它的编程极为简单。 MATLAB 既能进行科学计算,又能开发出所需要的图形界面。 1 2选题的意义 人类为了认识自然与改造自然,需要不断地对自然界的各种现象进行测量和研究,由于实验方法和实验设备的不完善,周遭环境的影响,以及受人们认识能力所限等,测量和实验所得数据和被测量的真值之间,不可避免地存在着差异,这在数值上即表现为误差。同时在计算中,总是用近似值代替真值进行计算,这也会产生误差。为了充分认识并尽量减小或消除误差,必须对测量过程和科学实验中始终存在的误差进行研究。 2研究误差就要研究误差的来源、分类、基本概念和误差的传
3、播。而在研究误差时,要进行一些复杂的计算,同时怎样形象的表示误差又是一个问题,所 以运用 MATLAB 的计算能力和 MATLAB GUI 的图形显示功能就能给研究误差带来很大的方便。 二、研究的基本内容与拟解决的主要问题 2.1 MATLAB 软件介绍 2.1.1 MATLAB 软件概况 3、 4 MATLAB 是矩阵实验室( Matrix Laboratory)之意。除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。 MATLAB的基本数据单位是矩阵,它的指令表达式与数学 ,工程中常用的形式十分相似 ,故用 MATLAB来解算问题要比用 C
4、,FORTRAN 等 语 言 完 相 同 的 事 情 简 捷 得 多 . 当前流行的MATLAB 5.3/Simulink 3.0 包括拥有数百个内部函数的主包和三十几种工具包 (Toolbox).工具包又可以分为功能性工具包和学科工具包 .功能工具包用来扩充 MATLAB 的符号计算 ,可视化建模仿真 ,文字处理及实时控制等功能 .学科工具包是专业性比较强的工具包 ,控制工具包 ,信号处理工具包 ,通信工具包等都属于此类 . 开放性使 MATLAB 广受用户欢迎 .除内部函数外 ,所有 MATLAB 主包文件和各种工具包都是可读可修改的文件 ,用户通过对源程序的修改或加入自己编写程序构 造新
5、的专用工具包 . “ MATLAB” 是“ Matrix Laboratory” 的缩写。MATLAB 的第一个版本是 LINPACK 和 EISPACK 库的程序的一个接口,用来分析线性方程组。随着 MATLAB 的演化,除了线性代数外,它还支持许多其他的程序。 MATLAB 的核心仍然是基于命令行的交互式分析工具。用户可以用类 Fortran 语言扩展交互环境。交互环境中的程序以命令行的形式执行。 MATLAB 用户接口包括下拉菜单和对话框,任何个人电脑使用者对这一接口都很熟悉。菜单命令支持文件操作、打印、程序编辑和用户接口定制。 MATLAB 的数值计算是通过在命令窗口输入命令,并不是通
6、过菜单操作进行的。 MATLAB 是一个基本的应用程序,它有一个称为标准工具箱的巨大程序模块库。 MATLAB工具箱包括解决实际问题的扩展库,如:求根、插值、数值积分、线性和非线性方程组求解以及常微分方程组求解。由于继承了 LINPACK、 EISPACK 和 LAPACK 的特性, MATLAB 对数值线性代数来说是一个高可靠的优化系统。许多数值作业能够用线性代数语言精确地表示。MATLAB 和线性代数的密切关系是程序员能够用很短的 MATLAB 语言来解决复杂的数值作业。标准工具箱还包括数据可视化的扩展图形库,有简单的点、线和复杂的三维图形和动画。所有的 MATLAB 程序都可以使用这些函
7、数,这样就可以在所有程序和程序集中分析并生成达到出版质量的图示。对图形的快速访问能有效地提高用户的效率。诊断点有助于调试程序和检验算法是否正确执行。低级的图形函数为自定义图形用户接口的分析代码提供了扩展空间。除了标准工具箱,可以使用其他的工具箱,如:信号处理、图像处理、优化、统计分析、偏微分方程的求解和许多数值计算的应用。 2.1.2 MATLAB 语言特点 5、 6。 7 一种语言之所以能如此迅速地普及,显示出如此旺盛的生命力,是由于它有着不同于其他语言的特点,正如同 FORTRAN 和 C 等高级语言使人们摆脱了需要直接对计算机硬件资源进行操作一样,被称作为第四代计算机语言的 MATLAB
8、,利用其丰富的函数资源,使编程人员从繁琐的程序代码中解放出来。 MATLAB 最突出的特点就是简洁。 MATLAB 用更直观的,符合人们思维习惯的代码,代替了 C 和 FORTRAN 语言的冗长代码。 MATLAB 给用户带来的是最直观,最简洁的程序开发环境。以下简单介绍一下 MATLAB 的主要特点。 1)。语言简洁 紧凑,使用方便灵活,库函数极其丰富。 MATLAB 程序书写形式自由,利用起丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。由于库函数都由本领域的专家编写,用户不必担心函数的可靠性。可以说,用 MATLAB 进行科技开发是站在专家的肩膀上。 2)运算符丰富。由
9、于 MATLAB 是用 C 语言编写的, MATLAB 提供了和 C 语言几乎一样多的运算符,灵活使用 MATLAB 的运算符将使程序变得极为简短。 3) MATLAB 既具有结构化的控制语句(如 for 循环, while 循环, break 语句和 if 语句),又有面向对象编程的特性。 4)程序限制不严格,程序设计自由度大。例如,在 MATLAB 里,用户无需对矩阵预定义就可使用。 5)程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。 6) MATLAB 的图形功能强大。在 FORTRAN 和 C 语言里,绘图都很不容易,但在MATLAB 里,数据的可视化非常
10、简单。 MATLAB 还具有较强的编辑图形界面的能力。 7) MATLAB 的缺点是,它和其他高级程序相比,程序的执行速度较慢。由于 MATLAB的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢。 8)功能强大的工具箱是 MATLAB 的另一特色。 MATLAB 包含两个部分:核心部分和各种可选的工具箱。核心部分中有数百个核心内部函数。其工具箱又分为两类:功能性工具箱和学科性工具箱。功能性工具箱主要用来扩充其符号计算功能,图示建模仿真功能,文字处理功能以及与硬件实时交互功能。功能性工具箱用于多种学科。而学科性工具箱是专业性比较强的,如 control,toolbox,s
11、ignl proceessing toolbox,commumnication toolbox 等。这些工具箱都是由该领域内学术水平很高的专家编写的,所以用户无需编写自己学科范围内的基础程序,而直接进行高,精,尖的研究。 9)源程序的开放性。开放性也许是 MATLAB 最受人们欢迎的特点。除内部函数以外,所有 MATLAB 的核心文件和工具箱文件都是可读可改的源文件,用户可通过对源文件的修改以及加入自己的文件构成新的工具箱。 2.1.3 MATLAB GUI 介绍 7、 8 一个可以发布的应用程序通常都需要有一个友好的图形用户界面( Graphical User Interface)。程序的用
12、户界面是用户与计算机程序的交互方式,用户通过键盘、鼠标等输入设备与计算机交换信息。图形用户界面( GUI)是包含图形对象,如窗口、图标、菜单和文本的用户界面。用户以某种方式选择或激活这些对象,会引起动作或发生变化,例如调用计算程序或者绘图等。 图形用户界面通常是一种包含多种图形对象的界面,典型的图像界面包括图形显示区域,功能按钮控件以及用户自定义的功能菜单等。为了让界面实现各种功能,需要对各个图形对象进行布局和事件编程。当用户激活对应的 GUI 对象时,就能执行相应的时间行为。 GUI 也是一种 Matlab 对象,可以使用 M 文件来创建 M 文件,这也是最基础的,使用其他方法创建时,也需要
13、编写相应的程序代码。除了使用 M 文件来创建 GUI 对象外, Matlab还为用户开发图形界面提供一个方便高效的继承开发环境: Matlab 图形用户界面开发环境( Matlab Graphical User Interface Development Environment,GUIDE)。其主要是一个界面设计工具集,他将所有 GUI 所支持的用户控件都集成起来,同时提供界面外观、属性和行为响应方法的设置方法。除了可以使用 GUIDE 创建 GUI 之外 ,还可以将设计好的 GUI 界面保存为一个 FIG 资源文件,同时自动生成对应的 M 文件。该 M 文件包含了 GUI 初始化代码和组建界
14、面布局的控制代码。 使用 GUIDE 创建 GUI 对象执行效率高,可以交互式的进行组件布局,还能生成保存和发布 GUI 的对应文件。 2.2 求解非线性方程组 2.2.1 Newton 方法 9 为了构造在一维情况下相应的不动点方法的算法,需找出一个函数 满足性质 ( ) ( ) ( )g x x x f x 使函数 g 能平方收敛于不动点 p (见 2.4 节)。由此条件, Newton 方法选择函数 ()x =1/ ()fx,这里假设 ()fx 0。 在 n 维情况下使用类似的方法要用到矩阵 1 1 1 2 12 1 2 2 212( ) ( ) ( )( ) ( ) ( )()( )
15、( ) ( )nnn n n na x a x a xa x a x a xAxa x a x a x其中,每个元素 ()ijax都是从 nR 到 R 的函数。需要求解 ()Ax 以使得 1( ) ( ) ( )G x x A x F x 平方收敛于 ()Fx=0 的解,这里假设 ()Ax 在 G 的不动点 p 处是非奇异的。 2.2.1 拟牛顿方法 10 设 (0)x 是 F(x)=0 的解 p 的初始近似以 Newton 方法同样的方式来计算下一个近似 (1)x ,或者若不便于精确确定 (0)()Jx ,则使用式( 10.10)给出的差分方程来近似计算偏微分。然而,计算 (2)x 就不能用
16、 Newton 方法而是用一元非线性方程的正割方法来求。正割方法用近似值 101 10( ) ( )() f x f xfx xx 来代替 Newton 方法中的 1()fx。对于非线性方程组, (1) (0)xx 是一个向量,相应的商未定义。可类似地继续该方法,对方程组用矩阵 1A 代替 Newton 方法的矩阵 (1)()Jx , 1A 具有性质 ( 1 ) ( 0 ) ( 1 ) ( 0 )1 ( ) ( ) ( )A x x F x F x nR 中的任意非零向量可写作 (1) (0)xx 的乘积和 (1) (0)xx 的正交补向量乘积的和。所以,为了唯一定义矩阵 1A ,需要说明它如
17、何作用于 (1) (0)xx 德正交补向量上。因为没有在 F上与 (1) (0)xx 正交的方向上关于 F 变化的可用信息,因此就要求 (0)1 ()Az J x z ,其中 (1) (0)( ) 0tx x z 这样,与 (1) (0)xx 正交的任意向量不受 (0)()Jx 更新的影响,由此计算 (1)x 以及用来确定 1A的 (2)x 。 由条件( 10.11)和( 10.12)可唯一地定义 1A 为(见参考文献 DM) ( 1 ) ( 0 ) ( 0 ) ( 1 ) ( 0 ) ( 1 ) ( 0 )( 0 )1 2( 1 ) ( 0 )2 ( ) ( ) ( ) ( ) ( )()
18、tF x F x J x x x x xA J xxx 用该矩阵取代 (1)()Jx 来确定 (2)x ,有 ( 2 ) (1) 1 (1)1 ()x x A F x 一旦确定了 (2)x ,重复该方法来确定 (3)x ,用 1A 取代 0A (0)()Jx ,用 ( 2 ) x 和 (1)x 取代 (1)x和 (0)x 。一般地,一旦确定了 ()ix , ( 1)ix 可以通过 11 22ti i ii i iiy A sA A ss ( 和 ( 1 ) ( ) 1 ( )()i i iix x A F x 来计算,其中记号 ( ) ( 1)( ) ( )iiiy F x F x 和 ( )
19、 ( 1)iiis x x 用来简化方程。 2.2.2 最速下降法 11 从 nR 到 R 的函数的最小值和非线性方程组的解之间的关系基于这样一个事实,当形式 为 1 1 2( , , , ) 0nf x x x 2 1 2( , , , ) 0nf x x x 12( , , , ) 0nnf x x x 的方程组在 x = 12( , , , )tnx x x 有一个解,此时恰为由 21 2 1 21( , , , ) ( , , , )nn i nig x x x f x x x 定义的函数 g 有最小是 0。 对任意从 nR 到 R 的函数 g 求局部最小值的最速下降方法可被只管地描述
20、如下 : 1. 用初始近似 ( 0 ) ( 0 ) ( 0 ) ( 0 )12( , , ) tnx x x x 计算 g 。 2. 从 (0)x 处确定使 g 值下降的一个方向。 3. 按该方向移动适当值并且调用新值 (1)x 。 4. 用 (1)x 替换 (0)x 并重复步骤 1 至 3. 2.2.3 同伦和延拓法 10 非线性方程组的 同伦 或者 延拓 法包含在问题集合中求解的问题。特别地,为了求解形如 ( ) 0Fx 的问题,它有一个未知解 *x ,考虑一系列使用假设在 0,1上的参数 来描述的问题。有已知解 (0)x 的问题对应于 0 ,有未知解 *(1)xx 的问题对应于 1 。
21、例如,假设 (0)x 是 *( ) 0Fx 的解的初始近似值。定义 : 0 ,1 nnG R R 其方程形式为 ( , ) ( ) ( 1 ) ( ) ( (0 ) ) ( ) ( 1 ) ( (0 ) )G x F x F x F x F x F x ( 10.19) 对不同的 值,可以确定 ( , ) 0Gx 的解。当 0 ,此方程假定形如 0 (0 , ) ( ) ( (0 ) )G x F x F x 且 (0)x 是一个解。当 1 时,方程假定形如 0 (1, ) ( )G x F x 且 *(1)xx 是一个解。 2.2.4 一类不动点迭代法的求解 ( 1)反函数方法 12 因为
22、()xx ,有 111 ( ) ()x x ,则当 , x ab 时, 1 1 ( ) 1x L ,所以方程()xx 可写成等价形式 1()xx ,从而构造迭代格式 11 ()kkxx ( 0,1, )k 。很明显, 11 ()kkxx 满足收敛条件。 ( 2)牛顿( Newton)迭代法 13 把 ()xx 化为 ( ) ( ) 0f x x x ,采用 Newton 迭代格式有 1 11( ) ( ) ( ) , ( 0 , 1 , )1 ( ) 1 ( )k k k k kkk kkx x x x xx x kxx ( 3)埃特金 (Aitken)加速法 根据 Aitken 加速算法,对
23、迭代格式 1 ()kkxx ( 0,1, )k ,进行如下修改: 221( ( ) ) ( )() ( ( ) )2 ( ( ) ) 2 ( )kkkkk k kk k k k k kxxzyx z xz y x x x x ( 4)松弛法 14 将 ()xx 化成等价形式 (1 ) ( ) ,x x x 为松弛因子,迭代函数为( ) (1 ) ( )x x x ,迭代格式为 1 (1 ) ( )k k kx x x 记 minmin ( )mx, max ( )a x bMx,有如下结论: 当 ( ) 1xL , 取 2 01M 时,迭代格式( 3)收敛; 当 ( ) 1xL , 取 20
24、1 m 时,迭代格式( 3)收敛; 当 ( ) 1xL , 取 11 1 mm 时,迭代格式( 3)收敛,并比迭代格式1 ()kkxx 收敛快。 一个方程的迭代格式不是唯一的,且迭代也不都是收敛的,其收敛性质取决于迭代函数()x 和初值 0x 。关于迭代的收敛性,已经有如下的结论 15-16 若 ()x 满足下列条件:( 1) , x ab 时, ( ) , x a b ;( 2)对任意 , x ab ,存在01L,使 ( ) 1xL ,则方程 ()xx 在 , ab 上有惟一的根 *x ,且对任意初值 0 , x ab ,迭代序列 1 ()kkxx ( 0,1,2 )k 收敛于 *x 。 三
25、、研究的方法与技术路线、研究难点,预期达到的目标 1、研究内容 ( 1)掌握 Matlab 的基本语法、基本命令、 Matlab 函数及程序设计,学习 Matlab GUI图形用户界面的设计; ( 2)熟悉求解非线性方程组的解法和求不动点的方法; ( 3) 用 Matlab GUI 图形用户界面求解非线性方程组。 2、研究方法及技术路线 本论文主要以查找资料,以现有的知识水平,在前人的研究论述基础上,应用 Matlab来进行数值计算 ,并运用 Matlab GUI 图形用户界面功能实现求解非线性方程组。采取了从大量阅读已有的数据资料 然后对这些内容进行总结 最后运用相关知识来编程求解的技术路线
26、 。 3、研究难点 ( 1)对编程的熟练程度及对 Matlab GUI 的学习和掌握程度有待加强; ( 2)论文题目比较深奥,想做到详细地概述和更加具体的求解; ( 3)非线性方程组的解法还有好多,本文没有更加具体的叙述。 4、预期达到的目标 通过这次论文的撰写更好的掌握 Matlab 的基本语法、基本命令, Matlab 函数程序设计,会用 Matlab 编写程序实现数值计算,并会运用 Matlab GUI 进行用户界面设计,同时用Matlab GUI 来求解非线性方程组。除此,对 MATLAB 的掌握更进一步,对于相关或类似的问题也能很好的处理,并且用软件来求解更多的问题。 四、论文详细工
27、作进度和安排 第一阶段( 2010 年 11 月 18 日 2010 年 11 月 25 日): 确定毕业论文题目,查阅文献,收集相关信息、资料。 第二阶段( 2010 年 11 月 26 日 2010 年 12 月 3 日): 对所收集资料进行加工整理,形成系统材料,并在其基础上 完成文献检索、开题报告及外文翻译的撰写。 第三阶段( 2010 年 1 月 17 日 2010 年 2 月 19 日): 撰写毕业论文初稿。 第四阶段( 2010 年 2 月 20 日 2010 年 5 月 4 日): 进入实习单位进行毕业实习,同时撰写毕业论文。 第五阶段 ( 2010 年 5 月 5 日 201
28、0 年 5 月 23 日 ) 将完成毕业论文交给指导教师审阅 。 第五阶段( 2010 年 5 月): 准备并进行毕业论文答辩。 五、主要参考文献: 1 拉克唐瓦尔德 . 数值方法和 MATLAB 实现与应用 M. 北京:机械工业出版社 .2004 2 费业泰 .误差理论与数据处理 M.第 4 版 北京:机械工业出版社 .2005 3拉克唐瓦尔德 .数值方法和 MATLAB 实现与应用 M.北京:机械工业出版社 .2004 4John H.Mathews,Kurtis D.Fink.Numerical Methods Using MATLABM.BeiJing: Publishing Hous
29、e of Electronics Industry.2005 5 王素立,高洁,孙新德 .MATLAB 混合编程与工程 M.北京:清华大学出版社 .2008 6周小阳 .数学软件与 MATLABM.武汉:华中科技大学出版社 .2002 7陈垚光,毛涛涛,王正林,王玲 .精通 MATLAB GUI 设计 M.北京:电子工业出版社 .2008 8施晓红,周佳 .精通 MATLAB 图形界面编程 .北京:电子工业出版社 .2008 9John H.Mathews,Kurtis D.Fink.数值方法( MATLAB 版) .北京:电子工业出版社。 2005 10Richad L Burden,J.D
30、ouglas Faries.数值分析(第七版) .北京:高等教育出版社。 2001 11吴锋 ,李秀梅 ,朱旭辉 ,黄哲华 .最速下降法的若干重要改进 .广西 南宁:广西大学学报:自然科学版。 2101 12WANG D R,WU YJ.Some modifications of the parallel Halley iteration method and their convergence JComputing.1987 13EHRLICH L W.A modified Newton method for polynomials J.Comm.ACM,1967 14高尚 .不动点迭代法的一点注记 .大学数学 J.2003 15李信真 .计算方法 M.西安 : 西北工业大学出版社 , 2004. 16高培 .计算方法典型例题与解 法 M.北京 : 国防科技大学出版社 , 2003.