1、 本科毕业论文(设计) ( 201 届) 求解非线性方程组和最优化的 MATLAB GUI 设计 所在学院 专业班级 信息与计算科学 学生姓名 学号 指导教师 职称 完成日期 年 月 本科生毕业论文(设计) I 摘要 :本文首先介绍了 MATLAB GUI,以及在求解非线性方程组方面的应用。接着叙述了求解 非线性方程的一系列方法,其中包括拟牛顿方法、最速下降法、同伦和延拓。然后叙述了对一类不动点迭代的求解。在本论文中重点介绍了Newton法和二分法在求解非线性方程中的应用。应用 MATLAB编写程序求解非线性方程组和最优化的问题,最后用 MATLAB GUI 绘制图形使数据可视化,即用MATL
2、AB GUI实现。 关键词 :MATLAB GUI;求解非线性方程; Newton法;二分法; 本科生毕业论文(设计) II Solving nonlinear equations and Optimization by MATLAB GUI design Abstract: In this paper the software of MATLAB GUI and the application of MATLAB in numerical computation are introduced. Then the method of solving nonlinear equations,in
3、cluding Quasi-Newton Methods,Steepest descent method,homotopy continuation.Then a class of fixed point iteration to solve is introduced. In this thesis focuses on the Newton method and the bisection method for solving nonlinear equations .Application of MATLAB programming for solving nonlinear equat
4、ion and optimization problems,at last the graphics data is visualized by MATLAB GUI. That is using the MATLAB GUI to implement solving nonlinear equations. Keywords:Matlab Gui;Solving nonlinear equations;Newton method;Dichotomy 本科生毕业论文(设计) III 目 录 1 绪 论 . 1 1.1 问题的背景、意义 . 1 1.1.1 背景 . 1 1.1.2 意义 . 1
5、 2 MATLAB软件介绍 . 2 2.1 MATLAB介绍 . 2 2.1.1 MATLAB软件 概况 . 2 2.1.2 MATLAB语言特点 . 2 2.2 MATLAB GUI 介绍 . 3 3 求解非线性方程组的方法 . 5 3.1 牛顿法 . 5 3.2 拟牛顿方法 . 5 3.3 最速下降法 . 6 3.4 同伦和延拓法 . 7 3.5 一类不动点迭代法的求解 . 8 4.1 用 Newton法求解非线性方程 . 10 4.2 用二分法求解非线性方程组 . 13 5 结 论 . 16 致 谢 . 错误 !未定义书签。 参考文献 . 17 本科生毕业论文(设计) 1 1 绪 论 1
6、.1 问题的背景、意义 1.1.1 背景 由于计算机的发展和普及,科学计算已成为解决各类科学技术问题的重要手段。因此,掌握科学计算的基本原理和方法是当今科学技术工作者不可缺少的本领和技能之一。并且经过不断的研究和累积,在现今科学研究和工程实践中,数值计算已经发展成为一门用来 分析数据,解决实际问题的重要学科,成为继理论分析、实验之后又一个重要的研究方法。 MATLAB是一种数值计算环境和编程语言,主要包括 MATLAB和 Simulink两大部分。 MATLAB 基于矩阵运算, 具有强大的数值分析、矩阵计算、信号处理和图形显示功能,其强大的数据处理能力和丰富的工具箱使得它的编程极为简单。 MA
7、TLAB 既能进行科学计算,又能开发出所需要的图形界面 1。 1.1.2 意义 人类为了认识自然与改造自然,需要不断地对自然界的各种现象进行测量和研究,由于实验方法和实验设备的不完善,周遭环境的影响,以及受人们认识能力所限等,测量和实验所得数据和被测量的真值之间,不可避免地存在着差异,这在数值上即表现为误差。同时在计算中,总是用近似值代替真值进行计算,这也会产生误差。为了充分认识并尽量减小或消除误差,必须对测量过程和科学实验中始终存在的误差进行研究 2。研究误差就要研究误差的来源、分类、基本概念和误差的传播。而在研究误差时,要进行一些复杂 的计算,同时怎样形象的表示误差又是一个问题,所以运用
8、MATLAB的计算能力和 MATLAB GUI的图形显示功能就能给研究误差带来很大的方便。 本科生毕业论文(设计) 2 2 MATLAB 软件介绍 2.1 MATLAB 介绍 2.1.1 MATLAB 软件概况 3、 4 “ MATLAB” 是“ Matrix Laboratory” 的缩写。 MATLAB的第一个版本是 LINPACK和 EISPACK库的程序的一个接口,用来分析线性方程组。随着 MATLAB 的演化,除了线性代数外,它还支持许多其他的程序。 MATLAB 的核心仍然是基于命令行的 交互式分析工具。用户可以用类Fortran语言扩展交互环境。交互环境中的程序以命令行的形式执行
9、。 MATLAB 是一个基本的应用程序,它有一个称为标准工具箱的巨大程序模块库。 MATLAB工具箱包括解决实际问题的扩展库。由于继承了 LINPACK、 EISPACK和 LAPACK的特性, MATLAB对数值线性代数来说是一个高可靠的优化系统。 2.1.2 MATLAB 语言特点 5、 6 MATLAB语言有不同于其他高级语言的特点,它被称为第四代计算机语言, MATLAB 语言的最大特点就是简单和直接。它丰富的函数使开发者 无须重复编程,只要简单的调用和使用即可。 MATLAB语言的主要特点可概括如下: ( 1) 以矩阵和数组为基础的运算 MATLAB 是以矩阵为基础的,不需要预先定义
10、变量和矩阵 (包括数组 )的维数,可以方便地进行矩阵的算术运算、关系运算和逻辑运算等。 ( 2) 简单易学,使用方便 MATLAB 被称为 “ 草稿式 ” 语言,这是因为其函数名和表达更接近我们书写计算公式的思维表达方式,编写 MATLAB 程序犹如在草稿纸上排列公式与求解问题,因此可以快速地验证工程技术人员的算法。此外 MATLAB还是一种解释性语言,不需要专门的编译器。 ( 3) 强大 的图形技术 MATLAB 具有非常强大的以图形化显示矩阵和数组的能力,同时它能给这些图形增加注释并且打印这些图形。 (4) 编程效率极高 MATLAB 是一种面向科学和工程计算的高级语言。它以矩阵运算为基础
11、,极少的代码即可实现复杂的功能。 (5) 可扩充性强,具有方便的应用程序接口 MATLAB 不仅有丰富的库函数,而且用户还可以根据需要方便地编写和扩充新的函数库。 本科生毕业论文(设计) 3 2.2 MATLAB GUI 介绍 7、 8 MATLAB 是一套高性能的数值计算和可视化软件,它作为新兴的编程语言和可视化工具,有 着其他编程语言所不能比拟的优势,如 Fortan 语言是一种专用于科学计算的语言,但其图形界面的功能比较弱,利用其开发的程序,用户界面不友好,使用起来不方便,而VB、 VC等可视化编程语言开发出来的程序界面友好,但由于其不是专用于科学计算的语言,因此其科学计算功能较弱。 而
12、 MATLAB同时具备这两方面的优势,既能进行科学计算,又能开发出所需要的图形界面,特别是 Mathworks 公司推出的 MATLAB 6及以上的版本更是加强了图形界面编程功能。 图形用户界面( Graphical User Interface)是由 窗口、光标、按键、菜单、文字说明等对象( Objects)构成的一个用户界面。程序的用户界面是用户与计算机程序的交互方式,用户通过键盘、鼠标等输入设备与计算机交换信息。用户以某种方式选择或激活这些对象,会引起动作或发生变化,例如调用计算程序或者绘图等。 创建 MATLAB用户界面必须具有以下 3个基本元素 : (1) 组件 在 MATLAB G
13、UI 中的每一个项目(按钮、标签、编辑框等)都是一个图形化组件。组件可分为 3类:图形化控件 (按钮、编辑框、列表、滚动条等 )、静态元素(窗口和文本字符串)、菜单和坐标系。 ( 2) 图形窗口 GUI的每一个组件都必须安排在图像窗口中。在画图像时,图像窗口通常会被自动创建。但还可以用函数 figure来创建空图像窗口,空图像窗口经常用于放置各种类型的组件。 ( 3) 回应 如果用户用鼠标单击或者用键盘输入一些信息,那么程序就要有相应的动作。鼠标单击或输入信息是一个事件,如果 MATLAB程序运行相应的函数,那么 MATLAB函数肯定会有所反应。 实现一个 GUI的过程包括两个基本任务:一是
14、GUI的组件布局,另一个是 GUI 组件编程。 GUI 也是一种 Matlab 对象,可以使用 M 文件来创建 M 文件,这 也是最基础的,使用其他方法创建时,也需要编写相应的程序代码。除了使用 M 文件来创建 GUI 对象外, Matlab还为用户开发图形界面提供一个方便高效的继承开发环境: Matlab 图形用户界面开发环境( Matlab Graphical User Interface Development Environment,GUIDE)。其主要是一个界本科生毕业论文(设计) 4 面设计工具集,他将所有 GUI所支持的用户控件都集成起来,同时提供界面外观、属性和行为响应方法的设
15、置方法。除了可以使用 GUIDE创建 GUI之外,还可以将设计好的 GUI界面保存为一个 FIG 资源文件,同时自动生成对应的 M 文件。该 M 文件包含了 GUI 初始化代码和组建界面布局的控制代码。 MATLAB 是一种面向对象的高级计算机语言,其数据可视化技术中的各种图形元素,实际上都是抽象图形对象的实例, MATLAB 中由图形命令产生的每一件东西都是图形对象。它们包括图形窗口,还有坐标轴、线条、曲面、文本和其他。各种图形对象和其间的关系如下图所示。 r o o t 根 对 象( 计 算 机 屏 幕 )图 形 框 架 窗 口( f i g u r e )坐 标 轴 对 象注 释 坐 标
16、 轴( 隐 藏 )U I ( m e n u , c o n t r o l ) 对 象矩 形 对 象片 块 对 象线 条 对 象图 像 对 象 文 本 对 象 表 面 对 象 光 源 对 象组 对 象绘 制 对 象父子关系兄 弟 关 系本科生毕业论文(设计) 5 3 求解非线性方程组的方法 3.1 牛顿法 为了构造在一维情况下相应的不动点方 法的算法,需找出一个函数 满足性质 ( ) ( ) ( )g x x x f x 使函数 g 能平方收敛于不动点 p (见 2.4 节)。由此条件, Newton 方法选择函数 ()x =1/ ()fx,这里假设 ()fx 0。 在 n 维情况下使用类似
17、的方法要用到矩阵 1 1 1 2 12 1 2 2 212( ) ( ) ( )( ) ( ) ( )()( ) ( ) ( )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 处是非奇异的。 3.2 拟牛顿方法 10 设 (0)x 是 ( ) 0Fx 的解 p 的初始近似以 Newton 方法同样的方式来计算下一个近似(1)x ,或者若不便于精确
18、确定 (0)()Jx ,则使用式( 10.10)给出的差分方程来近似计算偏微分。然而,计算 (2)x 就不能用 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
19、) (0)xx 的乘积和 (1) (0)xx 的正交补向量乘积的和。所本科生毕业论文(设计) 6 以,为 了唯一定义矩阵 1A ,需要说明它如何作用于 (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 ) (
20、 0 ) ( 1 ) ( 0 ) ( 1 ) ( 0 )( 0 )1 2( 1 ) ( 0 )2 ( ) ( ) ( ) ( ) ( )() 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 和 ( ) ( 1)iiis x x 用来简化方程。 3.3 最速下降法 11 从 nR 到 R 的函数的最小值和非线性方程组的解之间的关系基于这样一个事实,当形式 为 1 1 2( , , , ) 0nf x x x 2 1 2( , , , ) 0nf x x x 12( , , , ) 0nnf x x x
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。