解线性代数方程组迭代法的MATLAB GUI设计[毕业论文].doc

上传人:文初 文档编号:47031 上传时间:2018-05-19 格式:DOC 页数:24 大小:932.39KB
下载 相关 举报
解线性代数方程组迭代法的MATLAB GUI设计[毕业论文].doc_第1页
第1页 / 共24页
解线性代数方程组迭代法的MATLAB GUI设计[毕业论文].doc_第2页
第2页 / 共24页
解线性代数方程组迭代法的MATLAB GUI设计[毕业论文].doc_第3页
第3页 / 共24页
解线性代数方程组迭代法的MATLAB GUI设计[毕业论文].doc_第4页
第4页 / 共24页
解线性代数方程组迭代法的MATLAB GUI设计[毕业论文].doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

1、 本科 毕业论文 ( 设计 ) ( 20 届) 解线性代数方程组迭代法的 MATLAB GUI 设计 所在学院 专业班级 信息与计算科学 学生姓名 学号 指导教师 职称 完成日期 年 月 摘要 :本文首先介绍了 MATLAB GUI,以及在数值计算方面的应用。接着介绍了向量、矩阵范数、谱半径的 基本概念,叙述了迭代法的一般形式与收敛性定理,随后介绍了Jacobi 方法、 Gauss-Seidel 方法、松弛法、最速下降法以及共轭梯度法等典型的收敛方法。最后应用 MATLAB 编写程序实现用各种迭代法来求解线性代数方程组,并用MATLAB GUI设计图形用户界面实现数据可视化。 关键词 :MAT

2、LAB GUI; Jacobi 方法; Gauss-Seidel 方法;最速下降法;共轭梯度法 Iterative Methods for Solving Linear Systems of MATLAB GUI Design Abstract: In this paper the software of MATLAB GUI and the application of MATLAB in numerical computation are introduced. Then the vector, matrix norm, spectral radius, general form of i

3、terative methods and theorems about iterative method convergence are described. Some classic iterative methods such as the Jacobi iterative method, Gauss-Seidel method, relaxation method, steepest descent method and conjugate gradient method are described. Finally using some iterative methods to sol

4、ve linear systems are realized by compiling coding with MATLAB. And use MATLAB GUI to design graphical user interface to realize the data visualization. Keywords: MATLAB GUI ; the Jacobi iterative method; the Gauss-Seidel method; the steepest descent method; the conjugate gradient method 目录 1 绪论 . 1

5、 1.1 问题的背景、意义 . 1 1.1.1 背景 . 1 1.1.2 意义 . 1 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 迭代法的一般形式与收敛性定理 . 7 3.3 Jacobi 方法与 Gauss-Seidel 方法 . 8 3.4 松弛法 . 9 3.5 最速下降法、共轭梯度法 . 10 4 MATLAB GUI在迭代法解线性代数方程组中的应

6、用 . 12 5 结论 . 19 致 谢 . 错误 !未定义书签。 参考文献 . 20 1 1 绪论 1.1 问题的背景、意义 1.1.1 背景 由于计算机的发展和普及,科学计算已成为解决各类科学技术问题的重要手段。因此,掌握科学计算的基本原理和方法是当今科学技术工作者不可缺少的本领和技能之一。科学计算是人类从事科学活动和解决科学技术问题不可缺少的手段。在计算技术与计算机得到迅猛发展的今天,人们有了快速数字电子计算机的工具,科学计算被推向科学活动的前沿,上升为一种重要的科学方法 1。 MATLAB 是 用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括 MA

7、TLAB 和 Simulink 两大部分。图形用户界面( Graphical User Interfaces , GUI)则是由窗口、光标、按键、菜单、文字说明等对象构成的一个用户界面。用户通过一定的方法(如鼠标或键盘)选 择、激活这些图形对象,使计算机产生某种动作或变化,比如实现计算、绘图等。 GUI是 向别人提供应用程序,进行某种技术、方法的演示,制作一个供反复使用且操作简单的专用工具 的 最好的选择之一 2。 1.1.2 意义 我们似乎都碰到过这样的问题,为了求得某个线性方程组的解而花费大量的时间和计算量,还容易出错,而应用迭代法求解线性代数方程组的解则可以解决这个问题。一个收敛的迭代法

8、不仅具有程序设计简单,适于自动计算的优点,而且较直接法而言用更少的计算量就可以获得满意的解。因此迭代法是求解线性代数方程组,尤其是求解具有大型系数矩阵的线性方程组的主要方法之一。而 MATLAB的计算能力和 MATLAB GUI的图形显示功能就能给研究特别是形象表示线性方程组的解带来了很大的方便。 2 2 MATLAB 软件介绍 2.1 MATLAB 介绍 2.1.1 MATLAB 软件概况 3 MATLAB是矩阵实验室( Matrix Laboratory)的简称,是美国 MathWorks公司出品的商业 数学软件 ,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环

9、境,主要包括 MATLAB 和 Simulink两大部分。 20 世纪 70 年代,美国新墨西哥大学计算机科学系主任 Cleve Moler 为了减轻学生编程的负担,用 FORTRAN 编写了最早的MATLAB。 1984 年由 Little、 Moler、 Steve Bangert 合作成立了的 MathWorks 公司正式把 MATLAB 推向市场。到 20 世纪 90 年代, MATLAB 已成为国际控制界的标准计算软件。 MATLAB 和 Mathematica、 Maple 并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。 MATLAB 可以进行矩阵运算、绘制函

10、数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测金融建模设计与分析等领域。 MATLAB 的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似 ,故用 MATLAB 来解算问题要比用 C, FORTRAN 等语言完成相同的事情简捷得多,并且 mathwork也吸收了像 Maple等软件的优点 ,使 MATLAB成为一个强大的数学软件。在新的版本中也加入了对 C, FORTRAN, C+ , JAVA 的支持。可以直接调用 ,用户也可以将自己编写的实用程序导入到 MATLAB 函数库中方便自己以后调用,此

11、外许多的MATLAB 爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。 MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析 以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用 MATLAB 函数集)扩展了 MATLAB 环境,以解决这些应用领域内特定类型的问题。 2.1.2 MATLAB 软件的优势 ( 1)友好的工作平台和编程环境 MATLAB 由一系列工具组成。这些工具方便用户使用 MATLAB 的函数和文件,其中许多工具采用的是图形用户界面。包括 MATLAB 桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于

12、用户浏览帮助、工作空间、文件的浏览器。随着MATLAB 的商业化以及软件本身的不断升级, MATLAB 的用户 界面也越来越精致,更加3 接近 Windows 的标准界面,人机交互性更强,操作更简单。而且新版本的 MATLAB 提供了完整的联机查询、帮助系统,极大的方便了用户的使用。简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析。 4 ( 2)简单易用的程序语言 Matlab 一个高级的矩阵 /阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。而且这种语言可移植性好、可拓展性极强,这也是 MATLAB

13、能够深入到科学研究及工程计算各个领域的重 要原因 4。 ( 3)强大的科学计算机数据处理能力 MATLAB 是一个包含大量计算算法的集合。在计算要求相同的情况下,使用 MATLAB的编程工作量会大大减少 4。 ( 4)出色的图形处理功能 MATLAB 自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印 4。 ( 5)应用广泛的模块集合工具箱 MATLAB 对许多专门的领域都开发了功能强大的模块集和工具箱。一般来说,它们都是由特定领域的专家开发的,用户可以直接使用工具箱学习、应用和评估不同的方法而不需要自 己编写代码 4。 ( 6)实用的程序接口和

14、发布平台 新版本的 MATLAB 可以利用 MATLAB 编译器和 C/C+数学库和图形库,将自己的MATLAB 程序自动转换为独立于 MATLAB 运行的 C 和 C+代码。允许用户编写可以和MATLAB 进行交互的 C 或 C+语言程序。另外, MATLAB 网页服务程序还容许在 Web 应用中使用自己的 MATLAB 数学和图形程序 4。 ( 7)应用软件开发(包括用户界面) 在开发环境中,使用户更方便地控制多个文件和图形窗口;在编程方面支持了函数嵌套,有条件中断等;在图形化方面,有了更强大 的图形标注和处理功能,包括对性对起连接注释等;在输入输出方面,可以直接向 Excel 和 HDF

15、5 进行连接 4。 2.2 MATLAB GUI 介绍 GUI 是 Graphical User Interfaces 的简称,是由窗口、光标、按键、菜单、文字说明等对象构成的一个用户界面。用户通过一定的方法(如鼠标或键盘)选择、激4 活这些图形对象,使计算机产生某种动作或变化。 GUI 是向别人提供应用程序,进行某种技术、方法的演示,制作一个反复使用且操作简单的专用工具的最好选择之一 5。 一个好的 GUI 能够使程序更加容易使用。 它提供给用户一个常见的界面,还提供一些控件,例如按钮、列表框、滑块、菜单等。用户图形界面应当是易理解且操作是可以预告的,所以当用户进行某一项操作时,它知道如何去

16、做 5。 实现一个 GUI 的过程包括两个基本任务:一是 GUI 的组建布局,另一个是 GUI组件编程。另外,用户还必须能够保存并发布自己的 GUI,使得用户开发的图形用户界面真正得到应用。所用这些功能都可以通过图形用户界面开发环境来完成 5。 在 MATLAB 中 GUIDE 是一个组件布局工作集,能够生成用户所需的组件资源并保存在一个 FIG 文件中:其次, GUIDE 还可以生成一个包含 GUI 初始化和发布控制代码的 M 文件,该文件为回调函数(用户在图形界面中激活某一控件时要执行的函数)提供了一个框架。事实上,用户也可以通过调用组件函数 M 文件来实现 GUI 中所有组件的布局,但是

17、使用 GUIDE 交互式的组件布局将会大大减小工作量 6。 MATLAB 是一种面向对象的高级计算机语言,其数据可视化技术中的各种图形元素,实际上都是抽象图形对象的实例, MATLAB 中由图形命令产生的每一件东西都是图形对象。它们包括图形窗口,还有坐标轴、线条、曲面、文本和其他。各种图形对象和其间的关系如下图 所示。 r o o t 根 对 象( 计 算 机 屏 幕 )图 形 框 架 窗 口( f i g u r e )坐 标 轴 对 象注 释 坐 标 轴( 隐 藏 )U I ( m e n u , c o n t r o l ) 对 象矩 形 对 象片 块 对 象线 条 对 象图 像 对

18、象 文 本 对 象 表 面 对 象 光 源 对 象组 对 象绘 制 对 象父子关系兄 弟 关 系5 3 解线性代数方程组的迭代法 3.1 向量、矩阵范数与谱半径 7, 8, 9 定义 3.1 设 nxR (或 nxC ), ()N x x 为 x 的实值函数。若它满足下列条件: ( 1)非负性 0x , 00xx (零向量), ( 3.1.1) ( 2)齐次性 kx k x , k 为任意实数(或复数), ( 3.1.2) ( 3)三角不等式 , nx y x y x y R (或 nC ), ( 3.1.3) 则称 ()N x x 为 nR (或 nC )上的一个向量范数(或向量模), x

19、的值称为向量 x 的范数。 由三角不等式还可推出不等式 x y x y ( 3.1.4) 向量范数有多种,常见的有一下三种: 2 1/ 22 1()niixx , ( 3.1.5) 1 1niix x, ( 3.1.6) 1max iinxx , ( 3.1.7) 分别称为向量的 2 范数, 1 范数和无穷范数。直接验证即知它们都满足向量范数的定义。 2是我们熟知的 Euclid 空间中的向量长度,也叫 Euclid 模。容易得出,这三种范数满足关系 2 nx x x, ( 3.1.8) 1 nx x x. ( 3.1.9) 定义 3.2 设 ( ) ( ) ( ) ( )12 ( , , ,

20、 ) k k k k Tnx x x x 为 nR 上的一个向量序列( k =1,2, ),* * * *12( , , , )Tnnx x x x R.如果对 i =1,2, , n 有 6 ( ) *lim ,kiik xx 则称向量序列 ()kx 收敛于向量 *x 。 容易证明, ()kx 收敛于向量 *x 的充要条件是 ( ) *lim 0kk xx . 再由( 3.1.8)和( 3.1.9)式,上式成立的充要条件是 ( ) *2lim 0kk xx 或 ( ) *1lim 0kk xx . 这表明向量序列 ()kx 若按某种范数收敛,则按别的范数也收敛。 定义 3.3 设 nnAR

21、(或 nnC ), ()N A A 为 A 的实值函数,若它满足下列条件: ( 1) 非负性 0 , 0 0A A A (零矩阵), ( 3.1.10) ( 2) 齐次性 kA k A , k 为任意实数(或复数), ( 3.1.11) ( 3) 三角不等式 , nnA B A B A B R (或 nnC ), ( 3.1.12) 则称函 数 ()N x A 为 nnR (或 nnC )上的一个矩阵范数(或矩阵模), A 的值称为矩阵 A 的范数。 满足如下条件的叫相容范数: , , ,nnA B A B A B R ( 3.1.13) , , .n n nA x A x x R A R ( 3.1.14) A 的算子范数: 01m a x m a x ,ppPpxxpAxA A xx( 3.1.15) 定理 3.1 由( 3.1.15)所定义的矩阵范数为相容范数。 定理 3.2 对于由( 3.1.15)式所定义的矩阵范数,下列等式成立:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。