第7章MATLAB710矩阵分析.ppt

上传人:sccc 文档编号:4784528 上传时间:2023-05-14 格式:PPT 页数:36 大小:737.03KB
返回 下载 相关 举报
第7章MATLAB710矩阵分析.ppt_第1页
第1页 / 共36页
第7章MATLAB710矩阵分析.ppt_第2页
第2页 / 共36页
第7章MATLAB710矩阵分析.ppt_第3页
第3页 / 共36页
第7章MATLAB710矩阵分析.ppt_第4页
第4页 / 共36页
第7章MATLAB710矩阵分析.ppt_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《第7章MATLAB710矩阵分析.ppt》由会员分享,可在线阅读,更多相关《第7章MATLAB710矩阵分析.ppt(36页珍藏版)》请在三一办公上搜索。

1、第7章 矩阵分析,MATLAB为工程技术人员、科研工作者提供了方便、强大的数值计算功能,这也是MATLAB得以流行的重要因素。用户在利用MATLAB解决实际问题时,首先将该问题转化为数学问题,然后将相应的数学求解过程翻译为MATLAB程序代码。同其他计算机语言(如C、C+、Java等)不同的是,MATLAB语言是一种边解释边执行的程序语言,其风格更像是一种数学语言。因此用户利用MATLAB解决问题并不需要了解很多编程方面的知识,而只需懂得基本的MATLAB语法。另外,MATLAB内置了大量的数值计算函数,这些函数封装了常用的数值计算功能。利用这些数值计算函数,用户能够从烦琐的编程工作中解放出来

2、,集中精力解决问题。本书将MATLAB数值计算分为四章分别讨论,本章及下面的两章(8、9)分别介绍矩阵分析、函数分析和数据分析等初等数值计算内容,第10章将讨论数值计算的一些高级话题。本章的矩阵分析主要讨论以下问题:矩阵基本运算,如加、减、乘、除四则运算等;矩阵特征量,如行列式、条件数、范数、秩等;矩阵分解;矩阵函数;稀疏矩阵。,7.1 MATLAB数值计算中的矩阵,矩阵分析无论是在数学理论还是实际工程问题中都具有重要的应用,例如,线性方程组的解与矩阵除法、矩阵的特征量(如行列式、逆、条件数、秩等)、矩阵分解相关;二次型(,为特征矩阵)的最大(小)值为对应特征矩阵的最大(小)特征值;线性系统的

3、稳定性与系统特征矩阵的谱半径有关。MATLAB的最初雏形是为了解决大规模矩阵运算而编写的一系列函数模块。矩阵作为MATLAB的基本数据结构,一直是MATLAB的核心,是MATLAB基本的运算单元,其大部分的内建函数也都支持矩阵作为输入变量,用户在编写自用程序时也应当尽量遵循这一约定。,7.1.1 MATLAB中的矩阵,前面的章节已对MATLAB中矩阵的概念、创建、操作等进行了详细的介绍,矩阵作为MATLAB数据组织、运算的基本单元,为MATLAB带来了众多的优势:高效,利用矩阵封装多重循环运算,通过其内置的程序优化提高代码运行效率;简洁,矩阵对多重循环的封装使代码更加简洁、方便;安全,矩阵运算

4、内置了相关的出错处理,代码更加安全,同时除错也更加方便。另外,MATLAB的大部分内建函数都支持矩阵作为输入变量,相应地以矩阵作为输出变量,这使得程序结构更加清晰,代码编写也更加简便。,7.1.2 求解线性代数方程,信号处理、自动控制等工程领域的众多问题可以归结为下面的数学问题:已知,则有,称为系数矩阵,为值向量,为解向量。令,为扩展系数矩阵,的解与的秩、的行列式、逆、条件数等有关,这些内容将在下面的各节中详细展开。,7.1.3 最大(小)值,考虑信号估计理论中的一个经典问题:在(恒量)的条件下,求向量使最大,其中为实对称矩阵。可以证明,当为最大特征值对应的特征向量时,达到最大值,为的最大特征

5、值;相反,当为最小特征值对应的特征向量时,达到最小值,为的最小特征值。实际上,矩阵的特征值和特征向量在许多工程应用中都具有很重要的应用,例如线性系统的稳定性取决于系统特征矩阵的谱半径等。,7.2 矩阵基本运算,矩阵是MATLAB数据组织和运算的基本单元,矩阵的加、减、乘、除四则运算、幂运算、比较运算和逻辑运算等代数运算是MATLAB数值计算最基础的部分。这里可以粗略地将矩阵运算分为两类,即普通数值运算(四则运算、幂运算)和关系运算(比较运算、逻辑运算),最后本节特别介绍了矩阵的按位运算。为了描述的方便,这里对本节所涉及相关数学符号稍作统一,矩阵用大写字母表示,如、;矩阵的第行、第列元素用带下标

6、的小写字母表示,如、;表示的转置矩阵;表示的Hermite转置;为方阵的行列式;为方阵的逆矩阵;为方阵的范数。,7.2.1 矩阵的加、减,矩阵的加、减运算定义为相应元素的加减。对矩阵、,其和(差),C也为 矩阵,且。矩阵的加、减运算要求参与运算的矩阵具有相同的大小,或者其中之一为标量,例如 矩阵A与标量 的和(差),为 矩阵,且。,7.2.2 矩阵乘法,7.2.3 矩阵除法,矩阵除法是乘法的逆运算,MATLAB也定义了两类矩阵除法。第一类是矩阵的线性代数除法,对应于矩阵线性代数乘法的逆运算。矩阵线性代数除法又有两种算子,即右除算子和左除算子,如表所示。,矩阵线性代数除法,,则,,则,7.2.4

7、 矩阵的幂,矩阵的幂与矩阵乘法具有紧密的联系,MATLAB也定义了两类矩阵幂运算。第一类与矩阵线性代数乘法相对应,由 表示,其中为阶方阵,。,7.2.5 矩阵按位运算,按位运算是MATLAB为矩阵设计的一种简洁、高效、安全的运算模式,实际上是对多重循环的高效封装,从而提高代码执行的高效和安全程度。前面介绍的矩阵加减、按位乘除、按位幂都是按位运算符。按位运算符一般有一个(.)作为前导符,,矩阵的按位运算符,7.2.6 关系运算,注意到例7.10中的向量化代码(Mean=mean(V(V=1)),该段代码涉及三种按位运算:比较运算、逻辑运算和逻辑下标。这三种运算为代码向量化提供了强大的引擎。表列出

8、了MATLAB支持的比较运算符和逻辑运算符。,比较运算,7.3 矩阵特征量,线性代数中有一些矩阵特征量用于刻画矩阵某方面的性质,如行列式、范数、条件数、秩等。这里从求解7.1.2给出的线性方程组出发讨论矩阵相关的特征量,包括矩阵的行列式、秩、范数、条件数、范数以及矩阵的逆。,7.3.1 矩阵的行列式,关于矩阵行列式的概念,这里不作赘述,如有疑问,请参考任何一本线性代数方面的书籍。如阶矩阵的行列式不等于0,即时,称矩阵非奇异,否则奇异。如果限定线性方程组的系数矩阵为方阵,当非奇异,则线性方程有惟一解。对N阶方阵,MATLAB调用函数得到矩阵行列式,下面是求阶方阵行列式的例子。,7.3.2 矩阵的

9、逆,若系数矩阵非奇异,即,则线性方程组有惟一解,该惟一解为,其中为的逆矩阵。对非奇异矩阵,其逆矩阵是满足以下条件的矩阵:(I为单位矩阵)。MATLAB调用函数inv(A)求的逆矩阵,以下是逆矩阵应用的一些例子,这些例子也验证了前面给出的关于逆矩阵的性质。,7.3.3 矩阵的范数,如果将矩阵看作一个线性变换系统,则矩阵范数从整体上描述了系统的放大作用,矩阵范数的定义如下:。其中为列向量,为向量的范数。对矩阵,常用的范数有以下几种。1-范数,也称为列和范数。2-范数,为A的奇异值。范数,也称为行和范数。F-范数,。MATLAB利用函数norm计算范数,函数norm的调用格式为:norm(A,opt

10、),7.3.4 矩阵的条件数,7.3.2小节中提到,当线性方程组系数矩阵非奇异时,线性方程有唯一惟一解,且该解为。那么一个很容易想到的问题就是:当系数矩阵接近奇异时,例如很小,利用求解线性方程组会有什么样的问题?这里暂且撇开上面提出的问题,而首先考虑以下问题:即如何衡量是大还是小的问题。对这一问题,显然需要确定一个参考数量以确定是大还是小,这一参考数量称为矩阵的范数,用表示。当成立时,则认为小,矩阵是奇异的。,7.3.5 矩阵的秩,对7.1.2节给出的线性方程组求解问题。根据、的不同取值,线性方程组可以分为以下三类:,为超定方程;,为恰定方程;,为欠定方程。,7.4 矩阵分解,矩阵分解是矩阵理

11、论的重要内容,在信号处理、自动控制等众多领域中有着非常广泛的应用。矩阵分解通过将复杂矩阵表示成形式简单或具有良好数学性质(统称为简单矩阵)的组合,以便于理论分析或数值计算。通常矩阵分解将复杂矩阵分解为几个简单矩阵的乘积。在很多算法研究中,扑惴奈榷院涂焖傩缘龋嗉烫岢隽烁髦志卣蠓纸夥椒缣卣鞣纸猓EVD)、Schur分解、Cholesky分解、LU分解、QR分解、SVD分解等,,7.4.1 特征分解,7.4.2 Schur分解,7.4.3 Cholesky分解,对任意正定矩阵 的Cholesky分解(柯利分解)。Cholesky分解在理论分析、数值计算等方面有重要应用。MATLAB提供函数chol和

12、cholinc用于正定矩阵的Cholesky分解。Chol常用的调用格式有以下两种:R=chol(X)R,p=chol(X)如果X为正定矩阵,则返回上三角矩阵R,此时p=0,表示函数调用成功;如果X非正定,则前一种调用会产生错误信息,后一种调用不会产生错误,而是将p设为正整数,用户可以通过查询p的状态检查Cholesky分解是否成功,也可以依此判断X的正定性。,7.4.4 LU分解,7.4.5 QR分解,7.4.6 SVD分解,7.5 矩阵函数,矩阵函数是矩阵理论的重要概念,在信号处理、系统控制等领域有着重要的应用。如果将矩阵看作一个线性系统,那么矩阵函数可以看作系统的级联、合成。利用矩阵函数

13、的概念可以得到很多工程应用中有用的工具。,7.5.1 矩阵函数的概念,7.5.2 常用矩阵函数,7.5.3 自定义矩阵函数,用户除了可以使用MATLAB内建的矩阵函数之外,还可以利用MATLAB提供的funm函数,创建自定义的矩阵函数。funm函数以矩阵和自定义函数句柄作为输入参数,其一般调用格式为:F=funm(A,fun)F=funm(A,fun,options)F,exitflag=funm(.)其中fun为函数句柄;option用于计算过程的控制、结果显示等,这里不做具体介绍;exitflag保存了函数结束的信息,若exitflag=0,则函数计算成功;若exitflag=1,则表明计

14、算过程不收敛,但结果也有可能是正确的。,7.6 稀疏矩阵,实际工程中的数据处理任务面临大容量数据的挑战,当涉及大型矩阵的数值计算时,一个重要的问题是存储和执行效率的问题。稀疏矩阵的概念,正是为了解决这一问题而提出的。从数学性质上看,稀疏矩阵与一般的矩阵没有差别,但在数据存储和执行算法上有着很大的不同。本节在讲述稀疏矩阵时,经常与全矩阵作对比,使读者对稀疏矩阵的概念和使用方法有一个更加透彻的理解。本节将一般的矩阵称为全矩阵(Full Matrix),以区别于稀疏矩阵。,7.6.1 稀疏矩阵与全矩阵,稀疏矩阵是这样一类矩阵,其元素仅有少数不为0,而大量的元素为0。稀疏矩阵的这种性质使得MATLAB

15、可以对其采用不同于全矩阵的存储方式和执行算法以提高效率。MATLAB利用二维数组存储全矩阵,对零元、非零元不作区分,统一采用浮点数;但在存储稀疏矩阵时只存储非零元及其对应的索引值(整型)。显然,这种存储方式能够大大提高稀疏矩阵的存储效率,看下面的例子。,7.6.2 创建稀疏矩阵,除了通过将全矩阵转换为稀疏矩阵外,MATLAB还提供了一系列函数用于创建稀疏矩阵,如表所示。,稀疏矩阵创建函数,7.6.3 稀疏矩阵操作,一般地,能用于全矩阵的操作函数对稀疏矩阵同样有效,并且具有相似的操作规则,现总结如下:下标寻访赋值函数;用于矩阵拼接的函数,如cat,horzcat、vertcat、repmat,若

16、输入参数中有一个为稀疏矩阵,则返回结果为稀疏矩阵;矩阵变形函数,如ctranspose、flipdim、fliplr、flipud、reshape、rot90、transpose,这些函数都是单输入函数,若输入为稀疏矩阵,则返回结果也为稀疏矩阵;矩阵结构信息函数,如isempty、isscalar、isvector、length、ndims、numel、size;矩阵数据类型信息函数,如ischar、isfloat、isinteger、islogical、isnumber、isreal,这些函数对稀疏矩阵输入返回稀疏矩阵。,7.6.4 稀疏矩阵的运算,全矩阵的四则运算对稀疏矩阵都是有效的,但是

17、返回结果有可能是稀疏矩阵或者是全矩阵,这要视具体情况而定,现总结如下:对于单个稀疏矩阵的输入,大部分函数都返回稀疏矩阵,但也有一部分函数返回全矩阵;对于多个矩阵输入,若其中有一个及一个以上的全矩阵,则大部分的函数都将返回全矩阵;对于二元运算,如矩阵的加减、乘、除,只要其中有一个为全矩阵,则结果返回全矩阵;稀疏矩阵与标量的加减运算返回全矩阵;稀疏矩阵的数乘为稀疏矩阵;稀疏矩阵的幂仍然是稀疏矩阵。,7.7 小结,矩阵是MATLAB数值计算的基本单元,矩阵分析是工程应用的重要工具,通过本章的学习,读者应该熟练掌握以下内容。矩阵基本运算矩阵特征量矩阵分解矩阵函数稀疏矩阵利用矩阵的思想组织程序,第7章

18、矩阵分析,MATLAB为工程技术人员、科研工作者提供了方便、强大的数值计算功能,这也是MATLAB得以流行的重要因素。用户在利用MATLAB解决实际问题时,首先将该问题转化为数学问题,然后将相应的数学求解过程翻译为MATLAB程序代码。同其他计算机语言(如C、C+、Java等)不同的是,MATLAB语言是一种边解释边执行的程序语言,其风格更像是一种数学语言。因此用户利用MATLAB解决问题并不需要了解很多编程方面的知识,而只需懂得基本的MATLAB语法。另外,MATLAB内置了大量的数值计算函数,这些函数封装了常用的数值计算功能。利用这些数值计算函数,用户能够从烦琐的编程工作中解放出来,集中精力解决问题。本书将MATLAB数值计算分为四章分别讨论,本章及下面的两章(8、9)分别介绍矩阵分析、函数分析和数据分析等初等数值计算内容,第10章将讨论数值计算的一些高级话题。本章的矩阵分析主要讨论以下问题:矩阵基本运算,如加、减、乘、除四则运算等;矩阵特征量,如行列式、条件数、范数、秩等;矩阵分解;矩阵函数;稀疏矩阵。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号