《矩阵特征值与特征向量计算的MATLABGUI设计文献综述.docx》由会员分享,可在线阅读,更多相关《矩阵特征值与特征向量计算的MATLABGUI设计文献综述.docx(11页珍藏版)》请在课桌文档上搜索。
1、矩阵特征值与特征向量计算的MATLABGUI设计文献综述文献综述矩阵特征值与特征向量计算的MATLABGUI设计一、前言部分MATLAB语言是性能卓著的实验“仪器”,是一款功能强大的。用它能能送的进行各种数学计算和符号演算,绘制多种可视化图形1。MATLAB是一种数值计算环境和编程语言,主要包括MATLAB和Simulink两大部分。MATLAB基于矩阵运算,具有强大的数值分析、矩阵计算、信号处理和图形显示功能,其强大的数据处理能力和丰富的工具箱使得它的编程极为简单。MATLAB既能进行科学计算,又能开发出所需要的图形界面。图形用户界面(GiJI)是由窗口、光标、按键、菜单、文字说明等对象(O
2、bjCCtS)构成的一个用户界面。用户通过一定的方法选择、激活这些图形对象,是计算机产生某种动作或变化,比如实现计算、绘图等2。由于计算机的发展和普及,科学计算已经成为解决各类科学技术问题的重要手段。因此,掌握科学计算的基本原理和方法是当今科学技术工作者不可缺少的本领和技能之一。求特征问题是科学与工程中提出的一类重要数学问题。如动力学系统和结构系统中的振动问题,需要求系统的频率与振幅,又如物理学中的某些临界值的确定等3。二、主题部分2. 1MATLAB软件介绍3. 1.1MATLAB软件概况4、5“MATLAB”是wMatrixLaboratoryw的缩写。MATLAB的第一个版本是LINPA
3、CK和EISPACK库的程序的一个接口,用来分析线性方程组。随着MATLAB的演化,除了线性代数外,它还支持许多其他的程序。MATLAB的核心仍然是基于命令行的交互式分析工具。用户可以用类Fortran语言扩展交互环境。交互环境中的程序以命令行的形式执行。MATLAB用户接口包括下拉菜单和对话框,任何个人电脑使用者对这一接口都很熟悉。菜单命令支持文件操作、打印、程序编辑和用户接口定制。MATLAB的数值计算是通过在命令窗口输入命令,并不是通过菜单操作进行的。MATLAB是一个基本的应用程序,它有一个称为标准工具箱的巨大程序模块库。MATLAB工具箱包括解决实际问题的扩展库,如:求根、插值、数值
4、积分、线性和非线性方程组求解以及常微分方程组求解。由于继承了LINPACK.EISPACK和LAPACK的特性,MATLAB对数值线性代数来说是一个高可靠的优化系统。许多数值作业能够用线性代数语言精确地表示。MATLAB和线性代数的密切关系是程序员能够用很短的MATLAB语言来解决复杂的数值作业。标准工具箱还包括数据可视化的扩展图形库,有简单的点、线和复杂的三维图形和动画。所有的MATLAB程序都可以使用这些函数,这样就可以在所有程序和程序集中分析并生成达到出版质量的图示。对图形的快速访问能有效地提高用户的效率。诊断点有助于调试程序和检验算法是否正确执行。低级的图形函数为自定义图形用户接口的分
5、析代码提供了扩展空间。除了标准工具箱,可以使用其他的工具箱,如:信号处理、图像处理、优化、统计分析、偏微分方程的求解和许多数值计算的应用。4. 1.2MATLAB语言特点6、7MATLAB语言有不同于其他高级语言的特点,它被称为第四代计算机语言,MATLAB语言的最大特点就是简单和直接。正如第三代计算机语言使人们摆脱对计算机硬件操作一样,MATLAB语言使人们从烦琐的程序代码中解放出来。它丰富的函数使开发者无须重复编程,只要简单的调用和使用即可。MATLAB语言的主要特点可概括如下:(1)以矩阵和数组为基础的运算MATLAB是以矩阵为基础的,不需要预先定义变量和矩阵包括数组的维数,可以方便地进
6、行矩阵的算术运算、关系运算和逻辑运算等。(2)简单易学,使用方便MATLAB被称为“草稿式”语言,这是因为其函数名和表达更接近我们书写计算公式的思维表达方式,编写MATLAB程序犹如在草稿纸上排列公式与求解问题,因此可以快速地验证工程技术人员的算法。此外MATLAB还是一种解释性语言,不需要专门的编译器。(3)强大的图形技术MATLAB具有非常强大的以图形化显示矩阵和数组的能力,同时它能给这些图形增加注释并且打印这些图形。MATLAB的图形技术既包括一些可以方便产生二维、三维科技专业图形的高级绘图函数,又包括一些可以让用户灵活控制图形特点的低级绘图命令。另外,用户还可以利用MATLAB的句柄图
7、形技术创建图形用户界面。4编程效率极高MATLAB是一种面向科学和工程计算的高级语言。它以矩阵运算为基础,极少的代码即可实现复杂的功能。5可扩充性强,具有方便的应用程序接口MATLAB不仅有着丰富的库函数,在进行复杂的数学运算时可以直接调用。而且用户还可以根据需要方便地编写和扩充新的函数库。通过混合编程用户可以方便地在MATLAB环境中调用其他用Fortran或者C语言编写的代码,也可以在C语言或者Fortran语言程序中调用MATLAB计算引擎来执行MATLAB代码。2. 1.3MATLABGUI介绍8、9一个可以发布的应用程序通常都需要有一个友好的图形用户界面(GraphicalUserI
8、nterfaCe)。程序的用户界面是用户与计算机程序的交互方式,用户通过键盘、鼠标等输入设备与计算机交换信息。图形用户界面(GlJI)是包含图形对象,如窗口、图标、菜单和文本的用户界面。用户以某种方式选择或激活这些对象,会引起动作或发生变化,例如调用计算程序或者绘图等。图形用户界面通常是一种包含多种图形对象的界面,典型的图像界面包括图形显示区域,功能按钮控件以及用户自定义的功能菜单等。为了让界面实现各种功能,需要对各个图形对象进行布局和事件编程。当用户激活对应的GUI对象时,就能执行相应的时间行为。GUl也是-种Matlab对象,可以使用M文件来创建M文件,这也是最基础的,使用其他方法创建时,
9、也需要编写相应的程序代码。除了使用M文件来创建GUI对象外,Matlab还为用户开发图形界面提供一个方便高效的继承开发环境:MatIab图形用户界面开发环境(MatIabGraphicalUserInterfaceDevelopmentEnvironment,GUIDE)0其主要是一个界面设计工具集,他将所有GUI所支持的用户控件都集成起来,同时提供界面外观、属性和行为响应方法的设置方法。除了可以使用GUIDE创建GUI之外,还可以将设计好的GUI界面保存为一个FlG资源文件,同时自动生成对应的M文件。该M文件包含了GUl初始化代码和组建界面布局的控制代码。使用GUIDE创建GUI对象执行效率
10、高,可以交互式的进行组件布局,还能生成保存和发布GUI的对应文件。3. 2矩阵特征值与特征向量计算求解特征问题是科学与工程中提出的一类重要数学问题,如动力学系统和结构系统中的震动问题,需要求系统的频率与振幅,又如物理学中的某些临界值的确定等4. 2.1乘事法及其变体3乘基法是用于大型稀疏矩阵的主特征值的迭代方法,其特点是公式简单,易于上机实现.乘幕法德计算公式如下.设,取初始向量,令,,一般有3.1.4并形成向量序列,由递推公式3.1.4,有5. 1.5这表明是用A的k次哥左乘得到的,因此称此方法为乘嘉法,3.1.4式或5.1. 5式称为乘幕公式,称为乘幕序列设可逆,反嘉法可以求出A的绝对值最
11、小的特征值及相应的特征向量.由可知即若为矩阵A的特征值,则必为矩阵的按模最大特征值,且特征向量相同因此,若乘累法可求A的主特征值,则用做乘累矩阵,由迭代公式3.1.24便可求出的按模最大特征值,再取倒数即可得到矩阵A的按模最小特征值.因此,对任取初始向量,称公式3.1.24为求矩阵A按模最小特征值的反暴法2.2.2子空间迭代法10子空间迭代法最初是由Clint和Jennings提出,是反幕法的推广11.稍后,Bathe和Wilson在其中加入了子空间上的Rayleigh-Ritz过程,它可以明显地改善收敛速度.以下是一个子空间迭代算法的主要步骤.I.初始化1确定子空间的维数q;2选取初始向量矩
12、阵;3设定每次移轴的最大迭代次数.II.移轴与Sturm序列校核1计算移轴,应设法保证它不是特征值;2分解移轴刚度矩阵;3Strum序列校核.HL迭代次,完成后转向I1将X进行M成交归一化;2解试;3计算K和M在上的投影,4求解q阶广义特征值问题;5形成新的近似特征向量;6按模态误差判断特征值和特征向量的收敛,移出已收敛的特征向量,并在X中加入随机向量或减缩子空间的大小.子空间迭代法假设q个初始向量同时进行迭代,求得前P个特征向量.传统上,其中S为L中一行的平均非零元个数,由第Ii与m步计算之比确定.2.2.3Jacobi旋转法12Jacobi方法用来计算实对称的全部特征值及对应的特征向量.基
13、本思想:通过一组平面旋转将A化为对角阵.若为对称阵,则存在一正定阵P,使,为A的特征值,的列向量为A对应于的特征向量.主要问题是如何构造P.中平面内的平均旋转变换.P的性质:1 P为正交阵,.2 .P为单位阵I只在四个位置元素不一样.3.只改变A的i行i列j行j列的元素.定理1设A为n阶对称阵,其中P为正定阵则定理2设为对称矩阵,为宜平面旋转阵,的元素计算式为:设SA表示A的非对角元素的平方和,DA表示A的对角元素平方和,由上式这说明C的对角元素平方和和A的对角元素平方和增加了,非对角元素和此A的非对角元素平方和减少了.2.2.4HOUSehOlder方法13设,且,则矩阵称为Househod
14、er矩阵或Householder变换,一般我们简称为H阵或H变换.H阵有以下重要性质;IH是对称阵:;2H是正交阵:;3设,则总存在H阵使Hxy我们仅就3给出证明若xy,则只需取即可,今设,要使即只需取即可.2.2.5QR方法14QR算法是求矩阵特征值的最有效和应用最广泛的一种方法.QR算法也是一种变换方法.设,令,先将作QR分解,写成,其中Q是酉矩阵即是Q的共飘转置,R是上三角阵,当A非奇异且规定R的对角元是正实数时,则分解时唯一的,然后令,则有.是的正交相似变换,他们有相同的特征值.这个过程可继续下去,得到迭代序列,称此过程为基本QR算法过程.算法基本QR算法1定义2对于kl,2,3对作Q
15、R分解4三、总结部分本文首先介绍了MATLAB这个数学软件,让我们初步了解了这个软件的一些情况。MATLAB是当今最优秀的科技应用软件之一,它以强大的科学计算与可视化功能、简单易用、开放式可扩展环境,特别是所附带的30多种面向不同领域的工具箱支持,使得它在许多科学领域中成为计算机辅助设计和分析、算法研究和应用开发的基本的图形用户界面,它有友好的程序界面,再加上MATLAB的强大计算能力,使得MA工具和首选平台。MATLAB具有其他高级语言难以比拟的一些优点,如编写简单、编程效率高、易学易懂等,因此MATLAB语言也被通俗地称为演算纸式科学算法语言15。MATLABGUl是MATLABTLAB软
16、件更受人们的欢迎。接着又介绍了矩阵特征值与特征向量计算在计算数学中是非常重要的内容,其应用也很广泛。矩阵特征值与特征向量计算的方法,如乘幕法,反幕法,子空间迭代法,Jacobi旋转法,Household方法,QR算法。主要任务与目标是了解Matlab的基本语法、基本命令,Matlab函数程序设计,应用Matlab?gui设计图形用户界面,求解矩阵特征值与特征向量计算问题,用MatIab?gui设计图形用户界面,实现求解矩阵特征值与特征向量计算方法的经典方法,如乘吊法,反幕法,子空间迭代法,Jacobi旋转法,Household方法,QR算法等,最后通过Matlab绘制图形使数据可视化。四、参考
17、文献1周晓阳,数学实验与Matlab,华中科技大学出版社,2002.12拉克唐瓦尔德.数值方法和MATLAB实现与应用M.北京:机械工业出版社,2004.9:3黄明游,刘潘,徐涛.数值计算方法M.北京:科学出版社,2005:ll4拉克唐瓦尔德.数值方法和MATLAB实现与应用M.北京:机械工业出版社,2004.9:365JohnH.Mathews,Kurtis/.ericalMethodsUsingMATLABM.Beijing:PublishingHouseofElectronicsIndustry.20056王素立,高洁,孙新德.MATLAB混合编程与工程M.北京:清华大学出版社,2008
18、.5:1207周小阳.数学软件与MATLABM.武汉:华中科技大学出版社,20028陈?光,毛涛涛等.精通MATLABGUI设计.北京:电子工业出版社.20089施晓红,周佳.精通MATLAB图形界面编程.北京:电子工业出版社.200810宫玉才,周洪伟等.震动工程学报.北京大学力学与工程科学系,第18卷第2期.2005.6llClintM,JenningsA.TheevaluationofeigenvalueandeigenvectorsofrealsymmetricmatricesbysimultaneousiterationJ.TheComputerJournal,1970,131:76-8012李庆扬,数值分析第四版,华中科技大学出版社,2006.0713陈忠,朱建伟,数值计算方法,石油工业出版社,2001.814现代应用数学手册编委会,现代应用数学手册计算与数值分析卷.北京:清华大学出版社.2005.115李显宏.MATLAB7.X界面设计与编译技巧M.北京:电子工业出版社,2006:PlO