1、 毕业论文文献综述 信息与计算科学 矩阵特征值与特征向量计算的 MATLAB GUI 设计 一、前言部分 MATLAB 语言是性能卓著的实验“仪器” ,是一款功能强大的。用它能能送的进行各种数学计算和符号演算,绘制多种可视化图形 1。 MATLAB 是一种数值计算环境和编程语言,主要包括 MATLAB 和 Simulink 两大部分。 MATLAB 基于矩阵运算, 具有强大的数值分析、矩阵计算、信号处理和图形显示功能,其强大的数据处理能力和丰富的工具箱使得它的编程极为简单。 MATLAB 既能进行科学计算,又能开发出所需要的图形界 面。 图形用户界面( GUI)是由窗口、光标、按键、菜单、文字
2、说明等对象( Objects)构成的一个用户界面。用户通过一定的方法选择、激活这些图形对象,是计算机产生某种动作或变化,比如实现计算、绘图等 2。 由于计算机的发展和普及 ,科学计算已经成为解决各类科学技术问题的重要手段。因此 ,掌握科学计算的基本原理和方法是当今科学技术工作者不可缺少的本领和技能之一。求特征问题是科学与工程中提出的一类重要数学问题。如动力学系统和结构系统中的振动问题,需要求系统的频率与振幅,又如物理学中的某些临界值的确定等 3。 二、主题部分 2.1 MATLAB 软件介绍 2.1.1 MATLAB 软件概况 4、 5 “ MATLAB” 是“ Matrix Laborato
3、ry” 的缩写。 MATLAB 的第一个版本是 LINPACK 和EISPACK 库的程序的一个接口,用来分析线性方程组。随着 MATLAB 的演化,除了线性代数外,它还支持许多其他的程序。 MATLAB 的核心仍然是基于命令行的交互式分析工具。用户可以用类 Fortran 语言扩展交互环境。交互环境中的程序以命令行的形式执行。 MATLAB 用户接口包括下拉菜单和对话框,任何个人电脑使用者对 这一接口都很熟悉。菜单命令支持文件操作、打印、程序编辑和用户接口定制。 MATLAB 的数值计算是通过在命令窗口输入命令,并不是通过菜单操作进行的。 MATLAB 是一个基本的应用程序,它有一个称为标准
4、工具箱的巨大程序模块库。 MATLAB工具箱包括解决实际问题的扩展库,如:求根、插值、数值积分、线性和非线性方程组求解以及常微分方程组求解。由于继承了 LINPACK、 EISPACK 和 LAPACK 的特性, MATLAB 对数值线性代数来说是一个高可靠的优化系统。许多数值作业能够用线性代数语言精确地表示。MATLAB 和线性代 数的密切关系是程序员能够用很短的 MATLAB 语言来解决复杂的数值作业。标准工具箱还包括数据可视化的扩展图形库,有简单的点、线和复杂的三维图形和动画。所有的 MATLAB 程序都可以使用这些函数,这样就可以在所有程序和程序集中分析并生成达到出版质量的图示。对图形
5、的快速访问能有效地提高用户的效率。诊断点有助于调试程序和检验算法是否正确执行。低级的图形函数为自定义图形用户接口的分析代码提供了扩展空间。除了标准工具箱,可以使用其他的工具箱,如:信号处理、图像处理、优化、统计分析、偏微分方程的求解和许多数值计算的应用。 2.1.2 MATLAB 语言特点 6、 7 MATLAB 语言有不同于其他高级语言的特点,它被称为第四代计算机语言, MATLAB 语言的最大特点就是简单和直接。正如第三代计算机语言使人们摆脱对计算机硬件操作一样,MATLAB 语言使人们从烦琐的程序代码中解放出来。它丰富的函数使开发者无须重复编程,只要简单的调用和使用即可。 MATLAB
6、语言的主要特点可概括如下: ( 1) 以矩阵和数组为基础的运算 MATLAB 是以矩阵为基础的,不需要预先定义变量和矩阵 (包括数组 )的维数,可以方便地进行矩阵的算术运算、关系运算和逻 辑运算等。 ( 2) 简单易学,使用方便 MATLAB 被称为 “ 草稿式 ” 语言,这是因为其函数名和表达更接近我们书写计算公式的思维表达方式,编写 MATLAB 程序犹如在草稿纸上排列公式与求解问题,因此可以快速地验证工程技术人员的算法。此外 MATLAB 还是一种解释性语言,不需要专门的编译器。 ( 3) 强大的图形技术 MATLAB 具有非常强大的以图形化显示矩阵和数组的能力,同时它能给这些图形增加注
7、释并且打印这些图形。 MATLAB 的图形技术既包括一些可以方便产生二维、三维科技专业图形的高级绘图函数,又包括一些可以让用 户灵活控制图形特点的低级绘图命令。另外,用户还可以利用 MATLAB 的句柄图形技术创建图形用户界面。 (4)编程效率极高 MATLAB 是一种面向科学和工程计算的高级语言。它以矩阵运算为基础,极少的代码即可实现复杂的功能。 (5) 可扩充性强,具有方便的应用程序接口 MATLAB 不仅有着丰富的库函数,在进行复杂的数学运算时可以直接调用。而且用户还可以根据需要方便地编写和扩充新的函数库。通过混合编程用户可以方便地在 MATLAB 环境中调用其他用 Fortran 或者
8、 C 语言编写的代码,也可以在 C 语言或者 Fortran 语言程序中调用 MATLAB 计算引擎来执行 MATLAB 代码。 2.1.3 MATLAB GUI 介绍 8、 9 一个可以发布的应用程序通常都需要有一个友好的图形用户界面( Graphical User Interface)。程序的用户界面是用户与计算机程序的交互方式,用户通过键盘、鼠标等输入设备与计算机交换信息。图形用户界面( GUI)是包含图形对象,如窗口、图标、菜单和文本的用户界面。用户以某种方式选择或激活这些对象,会引起动作或发生变化,例如调用计算程序或者绘图等。 图形用户界面通常是一种 包含多种图形对象的界面,典型的图
9、像界面包括图形显示区域,功能按钮控件以及用户自定义的功能菜单等。为了让界面实现各种功能,需要对各个图形对象进行布局和事件编程。当用户激活对应的 GUI 对象时,就能执行相应的时间行为。 GUI 也是一种 Matlab 对象,可以使用 M 文件来创建 M 文件,这也是最基础的,使用其他方法创建时,也需要编写相应的程序代码。除了使用 M 文件来创建 GUI 对象外, Matlab还为用户开发图形界面提供一个方便高效的继承开发环境: Matlab 图形用户界面开发环境( Matlab Graphical User Interface Development Environment,GUIDE)。其主
10、要是一个界面设计工具集,他将所有 GUI 所支持的用户控件都集成起来,同时提供界面外观、属性和行为响应方法的设置方法。除了可以使用 GUIDE 创建 GUI 之外,还可以将设计好的 GUI 界面保存为一个 FIG 资源文件,同时自动生成对应的 M 文件。该 M 文件包含了 GUI 初始化代码和组建界面布局的控制代码。 使用 GUIDE 创建 GUI 对象执行效率高,可以交互式的进行组件布局,还能生成保存和发布 GUI 的对应文件。 2.2 矩阵特征值与特征向量计 算 求解特征问题是科学与工程中提出的一类重要数学问题 ,如动力学系统和结构系统中的震动问题 ,需要求系统的频率与振幅 ,又如物理学中
11、的某些临界值的确定等 2.2.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 次幂左乘 0x 得到的 ,因此称此方法为乘幂法 ,(3.1.4)式或 (3.1.5)式称为乘幂公式 , kx 称
12、为 乘幂序列 . 设 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 nxR ,称公式 (3.1.24)为求矩阵 A 按模最小特征值的 反幂法 . 2.2.2 子空间迭代法 10
13、子空间迭代法最初是由 Clint 和 ennings 提出 ,是反幂法的推广 11 .稍后 ,Bathe 和Wilson 在其中加入了子空间上的 Rayleigh-Ritz 过程 ,它可以明显地改善收敛速度 .以下是一个子空间迭代算法的主要步骤 . .初始化 (1)确定子空间的维数 q; (2)选取初始向量矩阵 NqxR ; (3)设定每次移轴的最大迭代次数 maxI . .移轴与 Sturm 序列校核 (1)计算移轴 ,应设法保证它不是特征值 ; (2)分解移轴刚度矩阵 1K M LD L ; (3)Strum 序列校核 . .迭代 maxI 次 ,完成后转向 (1)将 X 进行 M 一成交
14、归一化 ; (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 中一行的平均非零元个数 ,由第与步计算之比确定 . 2.2.3 Jacobi 旋转法 12 Jacobi 方法
15、用来计算实对称的全部特征值及对应的特征向量 . 基本思想 :通过一组平面旋转将 A 化为对角阵 . 若 nnAR 为对称阵 , 则存在一正定阵 p, 使 12( , , ., )T nP A P d i a g p , 12, ,., n 为 A 的特征值 , TP 的列向量 jv 为 A 对应于 j 的特征向量 .主要问题是如何构造P. nR 中 ,ijxx 平面内的平均旋转变换 . c o s s ins in c o s ,i i ji i jkky x xy x x y P Xyx 1212, , . ., , . ., , . ., , . ., , . ., , . .,Ti j
16、nTi j nX x x x x xY y y y y yP 的性质 : 1 P 为正交阵 , Tpp I . 2.P 为单位阵 I 只在 ( , ), ( , ), ( , ), ( , )i i j j i j j i四个位置元素不一样 . 3. TPAP 只改变 A 的 i 行 i 列 j 行 j 列的元素 . 定理 1 设 A 为 n 阶对称阵 , TC PAP ,其中 P 为正定阵 则 22| | | |FFCA 定理 2 设 nnAR 为对称矩阵 , (, )Pi j 为宜平面旋转阵 , TC PAP 的元素计算式为 : 11c os si n11si n c os11TTijPP
17、ij列 列2222c os sin 2 sin c ossin c os 2 sin c os1 ( ) sin 2 c os 22ii ii jj ijjj ii jj ijij ji jj ii ijc a a ac a a ac c a a a c o s s in ( , )c o s s in ( , )( , , )i k k i i k j kj k j j k i kl k l kc c a a k i jc c a a k i jc a l k i j 设 S(A)表示 A 的非对角元素的平方和 ,D(A)表示 A 的对角元素平方和 ,由上式 22( ) ( ) 2( ) (
18、 ) 2 ijijD C D A aS C S A a这说明 C 的对角元素平方和和 A 的对角元素平方和增加了 22ija ,非对角元素和此 A 的非对角元素平方和减少了 22ija . 2.2.4 Householder 方法 13 设 nR ,且 2| | 1 ,则矩阵 2 THI 称为 Househoder 矩阵或 Householder 变换 ,一般我们简称为 H 阵或 H 变换 . H 阵有以下重要性质 ; (1)H 是对称阵 : THH ; (2)H 是正交阵 : TH H I ; (3)设 , nx y R , 22| | | |xy 则总存在 H 阵使 Hx=y 我们仅就 (
19、3)给出证明 . 若 x=y,则只需取 x 即可 ,今设 xy ,要使 ( 2 )TH x I x y 即 2( )T x y x 只需取 2( )/ | |y x y x 即可 . 2.2.5 QR 方法 14 QR 算法是求矩阵特征值的最有效和应用最广泛的一种方法 . QR 算法也是一种变换方法 .设 nnAC ,令 1AA ,先将 1A 作 QR 分解 ,写成 1A QR ,其中 Q 是酉矩阵即 , THHQ Q I Q Q是 Q 的共轭转置 ,R 是上三角阵 ,当 A 非奇异且规定 R的对角元是正实数时 ,则分 解时唯一的 ,然后令 2A QR ,则有 21HA Q AQ . 是 的正
20、交相似变换 ,他们有相同的特征值 .这个过程可继续下去 ,得到迭代序列 kA ,称此过程为基本QR 算法过程 . 算法 基本 QR 算法 (1)定义 1AA (2)对于 k=1,2, (3) k k kA QR (对 kA 作 QR 分解 ) (4) 1 Hk k k k k kA Q A Q R Q 三、总结部分 本文首先介绍了 MATLAB 这个数学软件,让我们初步了解了这个软件的一些情况。 MATLAB是当今最优秀的科技应用软件之一,它以强大的科学计算与可视化功能、简单易用、开放式可扩展环境,特别是所附带的 30 多种面向不同领域的工具箱支持,使得它在许多科学领域中成为计算机辅助设计和分
21、析、算法研究和应用开发 的基本 的图形用户界面,它有友好的程序界面,再加上 MATLAB 的强大计算能力,使得 MA 工具和首选平台。 MATLAB 具有其他高级语言难以比拟的一些优点,如编写简单、编程效率高、易学易懂等,因此 MATLAB 语言也被通俗地称为演算纸式科学算法语言 15。 MATLAB GUI 是 MATLABTLAB 软件更受人们的欢迎。 接着又介绍了 矩阵特征值与特征向量计算在计算数学中是非常重要的内容,其应用也很广泛。矩阵特征值与特征向量计算的方法,如乘幂法,反幂法,子空间迭代法, Jacobi 旋转法, Household 方法, QR 算法。 主要任务与目标是了解 M
22、atlab 的基本语法、基本命令,Matlab 函数程序设计,应用 Matlab gui 设计图形用户界面,求解矩阵特征值与特征向量计算问题,用 Matlab gui 设计图形用户界面,实现求解矩阵特征值与特征向量计算方法的经典方法,如乘幂法,反幂法,子空间迭代法, Jacobi 旋转法, Household 方法, QR 算法等,最后通过 Matlab 绘制图形使数据可视 化。 四、参考文献 1 周晓阳 ,数学实验与 Matlab,华中科技大学出版社 ,2002.1 2 拉克唐瓦尔德 . 数值方法和 MATLAB 实现与应用 M. 北京:机械工业出版社, 2004.9: 3 黄明游,刘潘,徐
23、涛 .数值计算方法 M.北京:科学出版社, 2005: 1 11 4拉克唐瓦尔德 .数值方法和 MATLAB 实现与应用 M.北京:机械工业出版社, 2004.9: 36 5John H.Mathews, Kurtis D.Fink.Numerical Methods Using MATLAB M.BeiJing: Publishing House of Electronics Industry.2005 6 王素立,高洁,孙新德 .MATLAB 混合编程与工程 M.北京:清华大学出版社, 2008.5:120 7周小阳 .数学软件与 MATLABM.武汉:华中科技大学出版社, 2002 8陈
24、垚光,毛涛涛等 .精通 MATLAB GUI 设计 .北京:电子工业出版社 .2008 9施晓红,周佳 .精通 MATLAB 图形界面编程 .北京:电子工业出版社 .2008 10宫玉才 ,周洪伟等 .震动工程学报 .北京大学力学与工程科学系 ,第 18 卷第 2 期 .2005.6 11Clint M, Jennings A.The evaluation of eigenvalue and eigenvectors of real symmetric matrices by simultaneous iteration J.The Computer Journal, 1970, 13(1): 76-80 12 李庆扬 ,数值分析 (第四版 ),华中科技大学出版社 ,2006.07 13陈忠 ,朱建伟 ,数值计算方法 ,石油工业出版社 ,2001.8 14现代应用数学手册编委会 ,现代应用数学手册 计 算与数值分析卷 .北京 :清华大学出版社 .2005.1 15 李显宏 . MATLAB7.X 界面设计与编译技巧 M.北京:电子工业出版社, 2006: 1 10
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。