1、 本科 毕业论文 ( 设计 ) ( 20 届) 解线性代数方程组直接法的 MATLAB GUI 设计 所在学院 专业班级 信息与计算科学 学生姓名 学号 指导教师 职称 完成日期 年 月 本科生毕业论文(设计) 摘要 : 本文首先介绍了 MATLAB GUI,以及它在数值计算方面的一些应用。然后介绍了线性代数的起源及 线性代数方程组的一些相关知识。再接着介绍了解线性代数方程组直接法的几种方法,如 Gauss 消元法,矩阵的 LU 分解,选主元的消元法,特殊矩阵的消元法等。最后应用 MATLAB 编写程序实现用几种直接法来求解线性代数方程组,并用 MATLAB GUI设计图形用户界面实现数据可视
2、化。 关键词 :MATLAB GUI;线性方程组; Gauss 消元法 ; LU分解 本科生毕业论文(设计) Solving Linear Algebra Equations Direct Method of MATLAB GUI Design Abstract: In this paper the software of MATLAB GUI and the application of MATLAB in numerical are introduced. Then the origin of linear algebra and some introduction about linea
3、r algebra equations are introduced. And then the linear algebra equations about direct method is introduced. For example, the matrix Gauss elimination method,LU decomposition, Pivoting elimination method,special matrix the elimination method, etc. Finally several linear algebra equations are solved
4、by MATLAB programming,and the data is visualized by drawing graphics with MATLAB GUI. Keywords: MATLAB GUI, Linear equations ,Gauss elimination method, LU decomposition. 本科生毕业论文(设计) 目录 1 绪论 . 1 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 MA
5、TLAB语言特点 . 2 2.2 MATLAB GUI 介绍 . 3 3解线性代数方程组的直接法 . 5 3.1线性代数的起源 . 5 3.2线性代数方程组的介绍 . 6 3.3解线性方程组的直接法 . 7 3.4 Gauss消元法 . 8 4 MATLAB GUI在直接法解线性代数方程组中的应用 . 15 5结论 . 20 致 谢 . 错误 !未定义书签。 参考文 献 . 21 本科生毕业论文(设计) 1 1 绪论 1.1 问题的背景、意义 1.1.1 背景 由于计算机的发展和普及,科学计算已成为解决各类科学技术问题的重要手段。因此,掌握科学计算的基本原理和方法是当今科学技术工作者不可缺少的
6、本领和技能之一。并且经过不断的研究和累积,在现今科学研究和工程实践中,数值计算已经发展成为一门用来分析数据,解决实际问题的重要学科,成为继理论分析、实验之后又一个重要的研究方法。 MATLAB是一种数值计算环境和编程语 言,主要包括 MATLAB和 Simulink两大部分。 MATLAB 基于矩阵运算, 具有强大的数值分析、矩阵计算、信号处理和图形显示功能,其强大的数据处理能力和丰富的工具箱使得它的编程极为简单。 MATLAB 既能进行科学计算,又能开发出所需要的图形界面 1。 1.1.2 意义 人类为了认识自然与改造自然,需要不断地对自然界的各种现象进行测量和研究,由于实验方法和实验设备的
7、不完善,周遭环境的影响,以及受人们认识能力所限等,测量和实验所得数据和被测量的真值之间,不可避免地存在着差异,这在数值上即表现为误差。同时 在计算中,总是用近似值代替真值进行计算,这也会产生误差。为了充分认识并尽量减小或消除误差,必须对测量过程和科学实验中始终存在的误差进行研究 2。研究误差就要研究误差的来源、分类、基本概念和误差的传播。而在研究误差时,要进行一些复杂的计算,同时怎样形象的表示误差又是一个问题,所以运用 MATLAB的计算能力和 MATLAB GUI的图形显示功能就能给研究误差带来很大的方便。 本科生毕业论文(设计) 2 2 MATLAB 软件介绍 2.1 MATLAB 介绍
8、2.1.1 MATLAB 软件概况 3、 4 “ MATLAB” 是“ Matrix Laboratory” 的缩写。 MATLAB 的第一个版本是 LINPACK 和EISPACK 库的程序的一个接口,用来分析线性方程组。随着 MATLAB 的演化,除了线性代数外,它还支持许多其他的程序。 MATLAB 的核心仍然是基于命令行的交互式分析工具。用户可以用类 Fortran语言扩展交互环境。交互环境中的程序以命令行的形式执行。 MATLAB 是一个基本的应用程序,它有一个称为标准工具箱的巨大程序模块库。 MATLAB工具箱包括解决实际问题的扩展库。由于继承了 LINPACK、 EISPACK和
9、 LAPACK的特性, MATLAB对数值线性代数来说是一个高可靠的优化系统。 2.1.2 MATLAB 语言特点 5、 6 MATLAB 语言有不同于其他高级语言的特点,它被称为第四代计算机语言, MATLAB 语言的最大特点就是简单和直接。它丰富的函数使开发者无须重复编程,只要简单的调用和使用即可。 MATLAB语言的主要特点可概括如下: ( 1) 以矩阵和数组为基础的运算 MATLAB 是以矩阵为基础的,不需要预先定义变量和矩阵 (包括数组 )的维数,可以方便地进行矩阵的算术运算、关系运算和逻辑运算等。 ( 2) 简单易学,使用方便 MATLAB 被称为 “ 草稿式 ” 语言,这是因为其
10、函数名和表达更接近我们书写计算公式的思维表达方式,编写 MATLAB 程序犹如在草稿纸上排列公式与求解问题,因此可以快速地验证工程技术人员的算法。此外 MATLAB还是一种解释性语言,不需要专门的编译器。 ( 3) 强大的图形技术 MATLAB 具有非常强大的以图形化显示矩阵和数组的能力,同时它能给这些图形增加注释并且打印这些图形。 (4)编程效率极高 MATLAB 是一种面向科学和工程计算的高级语言。它以矩阵运算为基础,极少的代码即可实现复杂的功能。 (5) 可扩充性强,具有方 便的应用程序接口 本科生毕业论文(设计) 3 MATLAB 不仅有丰富的库函数,而且用户还可以根据需要方便地编写和
11、扩充新的函数库。 2.2 MATLAB GUI 介绍 7、 8 MATLAB 是一套高性能的数值计算和可视化软件,它作为新兴的编程语言和可视化工具,有着其他编程语言所不能比拟的优势,如 Fortan 语言是一种专用于科学计算的语言,但其图形界面的功能比较弱,利用其开发的程序,用户界面不友好,使用起来不方便,而VB、 VC等可视化编程语言开发出来的程序界面友好,但由于其不是专用于科学计算的语言,因此其科学计算功能较弱。 而 MATLAB同时具备这两方面的优势,既能进行科学计算,又能开发出所需要的图形界面,特别是 Mathworks 公司推出的 MATLAB 6及以上的版本更是加强了图形界面编程功
12、能。 图形用户界面( Graphical User Interface)是由窗口、光标、按键、菜单、文字说明等对象( Objects)构成的一个用户界面。程序的用户界面是用户与计算机程序的交互方式,用户通过键盘、鼠标等输入设备与计算机交换信息。用户以某种方式选择或激活这些对象,会引起动作或发生变化,例如调用计算程序或者绘图等。 创建 MATLAB用户界 面必须具有以下 3个基本元素 : (1) 组件 在 MATLAB GUI 中的每一个项目(按钮、标签、编辑框等)都是一个图形化组件。组件可分为 3类:图形化控件 (按钮、编辑框、列表、滚动条等 )、静态元素(窗口和文本字符串)、菜单和坐标系。
13、( 2)图形窗口 GUI的每一个组件都必须安排在图像窗口中。在画图像时,图像窗口通常会被自动创建。但还可以用函数 figure来创建空图像窗口,空图像窗口经常用于放置各种类型的组件。 ( 3)回应 如果用户用鼠标单击或者用键盘输入一些信息,那么程序就要有相应的动作。鼠标单击或输入信息是一个事件, 如果 MATLAB程序运行相应的函数,那么 MATLAB函数肯定会有所反应。 实现一个 GUI的过程包括两个基本任务:一是 GUI的组件布局,另一个是 GUI 组件编程。 GUI 也是一种 Matlab 对象,可以使用 M 文件来创建 M 文件,这也是最基础的,使用其他方法创建时,也需要编写相应的程序
14、代码。除了使用 M 文件来创建 GUI 对象外, Matlab本科生毕业论文(设计) 4 还为用户开发图形界面提供一个方便高效的继承开发环境: Matlab 图形用户界面开发环境( Matlab Graphical User Interface Development Environment,GUIDE)。其主要是一个界面设计工具集,他将所有 GUI所支持的用户控件都集成起来,同时提供界面外观、属性和行为响应方法的设置方法。除了可以使用 GUIDE创建 GUI之外,还可以将设计好的 GUI界面保存为一个 FIG 资源文件,同时自动生成对应的 M 文件。该 M 文件包含了 GUI 初始化代码和组
15、建界面布局的控制代码。 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 ) 对 象矩 形 对 象片 块 对 象线 条 对 象图 像 对 象 文 本 对 象 表 面 对 象
16、光 源 对 象组 对 象绘 制 对 象父子关系兄 弟 关 系本科生毕业论文(设计) 5 3 解线性代数方程组的直接法 3.1 线性代数的起源 线性代数( Linear Algebra)是数学的一个分支,它的研究对象是向量,向量空间(或称线性空间),线性变换和有限维的线性方程组。向量空间是现代数学的一个重要课题;因而,线性代数被广泛地应用于抽象代数和泛函分析中;通过解析几何,线性代数得以被具体表示。线性代数的理论已被泛化为算子理论。由于科学研究中的非线性模型 通常可以被近似为线性模型,使得线性代数被广泛地应用于自然科学和社会科学中 。 线性代数起源于对二维和三维直角坐标系的研究。 在这里,一个向
17、量是一个有方向的线段,由长度和方向同时表示。这样向量可以用来表示物理量,比如力,也可以和标量做加法和乘法。这就是实数向量空间的第一个例子 。 现代线性代数已经扩展到研究任意或无限维空间。一个维数为 n 的向量空间叫做 n 维空间。在二维和三维空间中大多数有用的结论可以扩展到这些高维空间。尽管许多人不容易想象 n 维空间中的向量,这样的向量(即 n 元组)用来表示数据非常有效。 由于作为 n 元组,向量是 n 个元素的 “有序 ”列表,大多数人可以在这种框架中有效地概括和操纵数据。比如,在经济学中可以使用 8 维向量来表示 8 个国家的国民生产总值( GNP)。当所有国家的顺序排定之后,比如 (
18、中国 , 美国 , 英国 , 法国 , 德国 , 西班牙 , 印度 , 澳大利亚 ),可以使用向量 (v1, v2, v3, v4, v5, v6, v7, v8) 显示这些国家某一年各自的 GNP。这里,每个国家的 GNP 都在各自的位置上。 作为证明定理而使用的纯抽象概念,向量空间(线性空间)属于抽象代数的一 部分,而且已经非常好地融入了这个领域。一些显著的例子有: 不可逆线性映射或矩阵的群,向量空间的线性映射的环。 线性代数也在数学分析中扮演重要角色,特别在 向量分析中描述高阶导数,研究张量积和可交换映射等领域。 向量空间是在域上定义的,比如实数域或复数域。线性算子将线性空间的元素映射到
19、另一个线性空间(也可以是同一个线性空间),保持向量空间上加法和标量乘法的一致性。所有这种变换组成的集合本身也是一个向量空间。如果一个线性空间的基是确定的,所有线性变换都可以表示为一个数表,称为矩阵。对矩阵性质和矩阵算法的深入研究 (包括行列式和特征向量)也被认为是线性代数的一部分。 本科生毕业论文(设计) 6 我们可以简单地说数学中的线性问题 -那些表现出线性的问题 是最容易被解决的。比如微分学研究很多函数线性近似的问题。 在实践中与非线性问题的差异是很重要的。 线性代数方法是指使用线性观点看待问题,并用线性代数的语言描述它、解决它(必要时可使用矩阵运算)的方法。这是数学与工程学中最主要的应用
20、之一 9。 3.2 线性代数方程组的介绍 ( 1)定义 : 称 个方程 个未知数的方程组 ( 1) 为一 (阶)线性(代数)方程组。当 错误 !未找到引用源。 不全为 0时,称方程组( 1)为非齐次线性方程组;当 错误 !未找到引用源。 全为 0时,称方程组( 1)为齐次线性方程组。如果方程组( 1)有解,则称( 1)是相容的线性方程组,否则称为矛盾的(或不相容的,或无解的)线性方程组。 称矩阵1 1 1 2 12 1 2 2 212mmm m m mAa a aa a aa a a 为方程组( 1)的系数矩阵, 称矩阵1 1 1 2 1 12 1 2 2 2 212mmm m m m na a a ba a a baaBab 称为方程组( 1)的 增广矩阵。 列向量12nbbbb 称为方程组( 1)的 右端项 或 常向量 或 右端向量 。 列向量12nxxxx 称为方程组( 1)的 未知向量 。 ( 2)线性方程组的初等变换 : 以下三种变换称为方程组的初等变换 : 交换两个方程的位置, 用非零数 乘某一个方程,
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。