矩阵特征值与特征向量计算的MATLAB GUI设计[毕业论文].doc

上传人:文初 文档编号:47038 上传时间:2018-05-19 格式:DOC 页数:23 大小:603.41KB
下载 相关 举报
矩阵特征值与特征向量计算的MATLAB GUI设计[毕业论文].doc_第1页
第1页 / 共23页
矩阵特征值与特征向量计算的MATLAB GUI设计[毕业论文].doc_第2页
第2页 / 共23页
矩阵特征值与特征向量计算的MATLAB GUI设计[毕业论文].doc_第3页
第3页 / 共23页
矩阵特征值与特征向量计算的MATLAB GUI设计[毕业论文].doc_第4页
第4页 / 共23页
矩阵特征值与特征向量计算的MATLAB GUI设计[毕业论文].doc_第5页
第5页 / 共23页
点击查看更多>>
资源描述

1、 本科 毕业论文 ( 设计 ) ( 20 届) 矩阵特征值与特征向量计算的 MATLAB GUI 设计 所在学院 专业班级 信息与计算科学 学生姓名 学号 指导教师 职称 完成日期 年 月 摘要 : 本文首先介绍了 MATLAB GUI,以及在数值计算方面的应用。接着叙述了矩阵特征值与特征向量 的计算方法。应用 MATLAB 编写程序求矩阵特征值与特征向量问题,最后用 MATLAB GUI 设计图形界面 ,使数据可视化,即用 MATLAB GUI实现求解矩阵特征值与特征向量。解决方法有乘幂法,反幂法,子空间迭代法,Jacobi 旋转法, Household 方法, QR 算法等等 ,本文举的两

2、个例子分别是规范化乘幂法和 Jacobi 旋转法。 关键词 :MATLAB GUI;特征值;特征向量;乘幂法 . Eigenvalue and Eigenvector Calculation of Matrix by MATLAB GUI Design Abstract: In this paper the software of MATLAB GUI and the application of MATLAB in numerical are introduced. Then the eigenvalue and eigenvector calculation of matrix are s

3、olved by MATLAB GUI. At last, the graphics data is visualized by MATLAB GUI. That is using the MATLAB GUI to implement the eigenvalue and eigenvector calculation of matrix. There are so many solutions, such as power method, inverse power method, the subspace iteration method, Jacobi rotaryprocess, H

4、ousehold, QR and so on. There are two examples: Standardization found method and Jacobi rotaryprocess. Keywords: MATLAB GUI; Eigenvalue; eigenvector calculation; found method. 目录 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.2 MATLAB

5、GUI 介绍 . 3 3 矩阵特征值与特征向量计算 . 5 3.1 乘幂法及其变体 . 5 3.2 子空间迭代法 . 6 3.3 Jacobi 旋转法 . 7 3.4 Householder 方法 . 8 3.5 QR 方法 . 9 4 MATLAB GUI 在矩阵特征值与特征向量中的应用 . 10 4.1 MATLBA GUI 在乘幂法中的应用 . 10 4.2 MATLBA GUI 在 Jacobi 旋转法中的应用 . 13 5 结论 . 18 致 谢 . 错误 !未定义书签。 参考文献 . 19 1 1 绪论 1.1 问题的背景、 意义 1.1.1 背景 由于计算机的发展和普及,科学计算

6、已成为解决各类科学技术问题的重要手段。因此,掌握科学计算的基本原理和方法是当今科学技术工作者不可缺少的本领和技能之一。并且经过不断的研究和累积,在现今科学研究和工程实践中,数值计算已经发展成为一门用来分析数据,解决实际问题的重要学科,成为继理论分析、实验之后又一个重要的研究方法。 MATLAB 是一种数值计算环境和编程语言,主要包括 MATLAB 和 Simulink 两大部分。 MATLAB 基于矩阵运算, 具有强大的数值分析、矩阵计算、信号处理和图形显示功能, 其强大的数据处理能力和丰富的工具箱使得它的编程极为简单。 MATLAB 既能进行科学计算,又能开发出所需要的图形界面 1。 1.1

7、.2 意义 方阵的特征值与特征向量是矩阵问题中最重要的内容之一 ,此类问题具有重要的理论价值与广泛的引用背景 .在工程技术中有许多与振动和稳定有关的问题 ,在数学中 ,解微分方程组及简化矩阵的计算等 ,也会遇到这样的问题 ,而这些问题的求解往往都可以转化为求矩阵的特征值和特征向量的问题 .求特征问题是科学与工程中提出的一类重要数学问题。如动力学系统和结构系统中的振动问题,需要求系统的频率与振 幅,又如物理学中的某些临界值的确定等 3。 2 2 MATLAB 软件介绍 2.1 MATLAB 介绍 2.1.1 MATLAB 软件概况 3、 4 “ MATLAB” 是“ Matrix Laborat

8、ory” 的缩写。 MATLAB 的第一个版本是 LINPACK 和EISPACK 库的程序的一个接口,用来分析线性方程组。随着 MATLAB 的演化,除了线性代数外,它还支持许多其他的程序。 MATLAB 的核心仍然是基于命令行的交互式分析工具。用户可以用类 Fortran 语言扩展交互环境。交互环境中的程序以命令行的 形式执行。 MATLAB 是一个基本的应用程序,它有一个称为标准工具箱的巨大程序模块库。 MATLAB工具箱包括解决实际问题的扩展库。由于继承了 LINPACK、 EISPACK 和 LAPACK 的特性, MATLAB对数值线性代数来说是一个高可靠的优化系统。 2.1.2

9、MATLAB 语言特点 5、 6 MATLAB 语言有不同于其他高级语言的特点,它被称为第四代计算机语言, MATLAB 语言的最大特点就是简单和直接。它丰富的函数使开发者无须重复编程,只要简单的调用和使用即可。 MATLAB 语言的主要特点可概括如下: ( 1) 以矩阵和数组为基础的运算 MATLAB 是以矩阵为基础的,不需要预先定义变量和矩阵 (包括数组 )的维数,可以方便地进行矩阵的算术运算、关系运算和逻辑运算等。 ( 2) 简单易学,使用方便 MATLAB 被称为 “ 草稿式 ” 语言,这是因为其函数名和表达更接近我们书写计算公式的思维表达方式,编写 MATLAB 程序犹如在草稿纸上排

10、列公式与求解问题,因此可以快速地验证工程技术人员的算法。此外 MATLAB 还是一种解释性语言,不需要专门的编译器。 ( 3) 强大的图形技术 MATLAB 具有非常强大的以图形化显示矩阵和数组的能力,同 时它能给这些图形增加注释并且打印这些图形。 (4)编程效率极高 MATLAB 是一种面向科学和工程计算的高级语言。它以矩阵运算为基础,极少的代码即可实现复杂的功能。 (5) 可扩充性强,具有方便的应用程序接口 MATLAB 不仅有丰富的库函数,而且用户还可以根据需要方便地编写和扩充新的函数库。 3 2.2 MATLAB GUI 介绍 7、 8 MATLAB 是一套高性能的数值计算和可视化软件

11、,它作为新兴的编程语言和可视化工具,有着其他编程语言所不能比拟的优势,如 Fortan 语言是一种专用于科学计算的语言,但其图形界面的功能比较弱,利用其开发的程序,用户界面不友好,使用起来不方便,而VB、 VC 等可视化编程语言开发出来的程序界面友好,但由于其不是专用于科学计算的语言,因此其科学计算功能较弱。 而 MATLAB 同时具备这两方面的优势,既能进行科学计算,又能开发出所需要的图形界面,特别是 Mathworks 公司推出的 MATLAB 6 及以上的版本更是加强了图形界面编程功能。 图形用户界面( Graphical User Interface)是由窗口、光标、按键、菜单、文字说

12、明等对象( Objects)构成的一个用户界面。程序 的用户界面是用户与计算机程序的交互方式,用户通过键盘、鼠标等输入设备与计算机交换信息。用户以某种方式选择或激活这些对象,会引起动作或发生变化,例如调用计算程序或者绘图等。 创建 MATLAB 用户界面必须具有以下 3 个基本元素 : (1) 组件 在 MATLAB GUI 中的每一个项目(按钮、标签、编辑框等)都是一个图形化组件。组件可分为 3 类:图形化控件 (按钮、编辑框、列表、滚动条等 )、静态元素(窗口和文本字符串)、菜单和坐标系。 ( 2)图形窗口 GUI 的每一个组件都必须安排在图像窗口中。在画图像时,图像窗口通常会被自动创建

13、。但还可以用函数 figure 来创建空图像窗口,空图像窗口经常用于放置各种类型的组件。 ( 3)回应 如果用户用鼠标单击或者用键盘输入一些信息,那么程序就要有相应的动作。鼠标单击或输入信息是一个事件,如果 MATLAB 程序运行相应的函数,那么 MATLAB 函数肯定会有所反应。 实现一个 GUI 的过程包括两个基本任务:一是 GUI 的组件布局,另一个是 GUI 组件编程。 GUI 也是一种 Matlab 对象,可以使用 M 文件来创建 M 文件,这也是最基础的,使用其他方法创建时,也需要编写相应的程序代码。除了使用 M 文件来创建 GUI 对象外, Matlab还为用户开发图形界面提供一

14、个方便高效的继承开发环境: Matlab 图形用户界面开发环境( Matlab Graphical User Interface Development Environment,GUIDE)。其主要是一个界面设计工具集,他将所有 GUI 所支持的用户控件都集成起来,同时提供界面外观、属性和行4 为响应方法的设置方法。除了可以使用 GUIDE 创建 GUI 之外,还可以将设计好的 GUI 界面保存为一个 FIG 资源文件,同时自动生成对应的 M 文件。该 M 文件包含了 GUI 初始化代码和组建界面布局的控制代 码。 MATLAB 是一种面向对象的高级计算机语言,其数据可视化技术中的各种图形元素

15、,实际上都是抽象图形对象的实例, MATLAB 中由图形命令产生的每一件东西都是图形对象。它们包括图形窗口,还有坐标轴、线条、曲面、文本和其他。各种图形对象和其间的关系如下图所示。 r o o t 根 对 象( 计 算 机 屏 幕 )图 形 框 架 窗 口( f i g u r e )坐 标 轴 对 象注 释 坐 标 轴( 隐 藏 )U I ( m e n u , c o n t r o l ) 对 象矩 形 对 象片 块 对 象线 条 对 象图 像 对 象 文 本 对 象 表 面 对 象 光 源 对 象组 对 象绘 制 对 象父子关系兄 弟 关 系5 3 矩阵特征值与特征向量计算 求解特征问

16、题是科学与工程中提出的一类重要数学问题 ,如动力学系统和结构系统中的震动问题 ,需要求系统的频率与振幅 ,又如物理学中的某些临界值的确定等 3.1 乘幂法及其变体 3 乘幂法是用于大型稀疏矩阵的主特征值的迭代方法 ,其特点是公式简单 ,易于上机实现 . 乘幂法德计算公式如下 . 设 nnAR , 取 初 始 向 量 0 nxR , 令 10x Ax , 21x Ax , , 一 般 有 1kkx Ax (3.1.4) 并形成向量序列 kx ,由递推公式 (3.1.4),有 2 2 02( ) . . .k k k kx A A x A x A x (3.1.5) 这表明 kx 是用 A 的 k

17、 次幂左乘 0x 得到的 ,因此称此方法为乘幂法 ,(3.1.4)式或 (3.1.5)式称为乘幂公式 , kx 称为 乘幂序列 . 设 nnAR 可逆 ,反幂法可以求出 A 的绝对值最小的特征值及相应的特征向量 .由 0Ax x x 可知 1 1 ,A x x 即若 0 为矩阵 A 的特征值 ,则 1 必为矩阵 1A 的按模最大特征值 ,且特征向量相同 . 因此 ,若乘幂法可求 A 的主特征值 1 ,则用 1A 做乘幂矩阵 ,由迭代公式 1 1kkx A x (3.1.24) 便可求出 1A 的按模最大特征值 1n,再取倒数即可得到矩阵 A 的按模最小特征值 n .因此 ,对任取初始向量 0

18、nxR ,称公式 (3.1.24)为求矩阵 A 按模最小特征值的 反幂法 . 6 3.2 子空间迭代法 10 子空间迭代法最初是由 Clint 和 ennings 提出 ,是反幂法的推广 11 .稍后 ,Bathe 和Wilson 在其中加入了子空间上的 Rayleigh-Ritz 过程 ,它可以明显地改善收敛速度 .以下是一个子空间迭代算法的主要步骤 . .初始化 (1)确定子空间的维数 q ; (2)选取初始向量矩阵 NqxR ; (3)设定每次移轴的最大迭代次数 maxI . .移轴与 Sturm 序列校核 (1)计算移轴 ,应设法保证它不是特征值 ; (2)分解移轴刚度矩阵 1K M

19、LD L ; (3)Strum 序列校核 . .迭代 maxI 次 ,完成后转向 I (1)将 X 进行 M 一成交归一化 ; (2)解试 11 ()TX LDL M X ; (3)计算 K 和 M 在 1X 上的投影 , 1 1 1 1,TTK X K X M X M X (4)求解 q 阶广义特征值问题 KM ; (5)形成新的近似特征向量 1XX; (6)按模态误差判断特征值和特征向量的收敛 ,移出已收敛的特征向量 ,并在 X 中加入随机向量或减缩子空 间的大小 . 子空间迭代法假设 q 个初始向量同时进行迭代 ,求得 p 个特征向量 .传统上 , max( ,4)qs , 其中 s 为 L 中一行的平均非零元个数 ,由第与步计算之比确定 .

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

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

Copyright © 2018-2021 Wenke99.com All rights reserved

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

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

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