ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:73.27KB ,
资源ID:2844710      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-2844710.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(矩阵在MATLAB中的运算与应用.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

矩阵在MATLAB中的运算与应用.docx

1、矩阵在MATLAB中的运算与应用矩阵在MATLAB中的运算与应用摘要:介绍了Matlab在矩阵运算方而的功能。演示了用Matlab构造矩阵,获取矩阵的相关信息,进行矩阵运算的方法,对矩阵运算进行了分析,对矩阵作图进行了研究。关键词:矩阵; Matlab1 引言Matlab的含义是矩阵实验室( Matrix Laboratory) ,是由美国Mathwork公司于1984年推出的一套高性能的数值计算和可视化软件1。现在,它己发展为国际上最优秀的科技应用软件。如果能将它用到相关学科课的学习上无疑是非常有意义的。Matlab赋予学习者一个可实验的环境,一个强大的数值计算和分析及可视化(图形)工具。矩

2、阵论是高等院校理、工科研究生的一门重要基础课程。有人认为“科学计算,归根结底就是矩阵的计算 ”2。因此,对于将来从事科学技术工作的研究生来说 ,矩阵理论和方法是必不可少的数学工具。矩阵的理论和方法在数学和其他学科中都具有重要的意义,但许多学生无法克服矩阵庞大的计算量带来的恐惧,从而丧失了学习的兴趣和动力。本文展示了如何方便地用Matlab构造矩阵,获取矩阵的相关信息以及完成矩阵的运算,展示了矩阵的结构和运算,以此来说明在机器计算环境中,庞大复杂的计算不再是令人头疼的事情。2 矩阵及其运算矩阵是进行数据处理和运算的基本元素。在MATLAB中:a、通常意义上的数量(标量)可看成是“1*1”的矩阵;

3、b、n维矢量可看成是“n*1”的矩阵;c、多项式可由它的系数矩阵完全确定。2.1 矩阵的创建在MATLAB中创建矩阵有以下规则:a、矩阵元素必须在“ ”内;b、矩阵的同行元素之间用空格(或“,”)隔开;c、矩阵的行与行之间用“;”(或回车符)隔开;d、矩阵的元素可以是数值、变量、表达式或函数;e、矩阵的尺寸不必预先定义。2.1.1 直接输入法最简单的建立矩阵的方法是从键盘直接输入矩阵的元素,输入的方法按照上面的规则。建立向量的时候可以利用冒号表达式,冒号表达式可以产生一个行向量,一般格式是: e1:e2:e3,其中e1为初始值,e2为步长,e3为终止值。还可以用linspace函数产生行向量,

4、其调用格式为:linspace(a,b,n) ,其中a和b是生成向量的第一个和最后一个元素,n是元素总数。可以看出来linspace(a,b,n)与a:(b-a)/(n-1):b等价。2.1.2 利用MATLAB函数创建矩阵基本矩阵函数如下:(1) ones()函数:产生全为1的矩阵,ones(n):产生n*n维的全1矩阵,ones(m,n):产生m*n维的全1矩阵;(2) zeros()函数:产生全为0的矩阵;(3) rand()函数:产生在(0,1)区间均匀分布的随机阵;(4) eye()函数:产生单位阵;(5) randn()函数:产生均值为0,方差为1的标准正态分布随机矩阵。2.1.3

5、 利用文件建立矩阵当矩阵尺寸较大或为经常使用的数据矩阵,则可以将此矩阵保存为文件,在需要时直接将文件利用load命令调入工作环境中使用即可。同时可以利用命令reshape对调入的矩阵进行重排。reshape(A,m,n),它在矩阵总元素保持不变的前提下,将矩阵A重新排成m*n的二维矩阵。2.2 矩阵的拆分2.2.1 矩阵元素可以通过下标(行列索引)引用矩阵的元素,如 Matrix(m,n)。也可以采用矩阵元素的序号来引用矩阵元素。矩阵元素的序号就是相应元素在内存中的排列顺序。在MATLAB中,矩阵元素按列存储,先第一列,再第二列,依次类推。序号(Index)与下标(Subscript)是一一对

6、应的,以m*n矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i。其相互转换关系也可利用sub2ind和ind2sub函数求得。2.2.2 矩阵拆分1、利用冒号表达式获得子矩阵:(1) A(:,j)表示取A矩阵的第j列全部元素;A(i,:)表示A矩阵第i行的全部元素;A(i,j)表示取A矩阵第i行、第j列的元素。(2) A(i:i+m,:)表示取A矩阵第ii+m行的全部元素;A(:,k:k+m)表示取A矩阵第kk+m列的全部元素,A(i:i+m,k:k+m)表示取A矩阵第ii+m行内,并在第kk+m列中的所有元素。此外,还可利用一般向量和end运算符来表示矩阵下标,从而获得子矩阵。en

7、d表示某一维的末尾元素下标。2、利用空矩阵删除矩阵的元素:在MATLAB中,定义为空矩阵。给变量X赋空矩阵的语句为X=。注意,X=与clear X不同,clear是将X从工作空间中删除,而空矩阵则存在于工作空间中,只是维数为0。2.2.3 特殊矩阵(1) 魔方矩阵:魔方矩阵有一个有趣的性质,其每行、每列及两条对角线上的元素和都相等。对于n阶魔方阵,其元素由1,2,3,n2共n2个整数组成。MATLAB提供了求魔方矩阵的函数magic(n),其功能是生成一个n阶魔方阵。(2) 范得蒙矩阵:范得蒙(Vandermonde)矩阵最后一列全为1,倒数第二列为一个指定的向量,其他各列是其后列与倒数第二列

8、的点乘积。可以用一个指定向量生成一个范得蒙矩阵。在MATLAB中,函数vander(V)生成以向量V为基础向量的范得蒙矩阵。(3) 希尔伯特矩阵:在MATLAB中,生成希尔伯特矩阵的函数是hilb(n)。使用一般方法求逆会因为原始数据的微小扰动而产生不可靠的计算结果。MATLAB中,有一个专门求希尔伯特矩阵的逆的函数invhilb(n),其功能是求n阶的希尔伯特矩阵的逆矩阵。(4) 托普利兹矩阵:托普利兹(Toeplitz)矩阵除第一行第一列外,其他每个元素都与左上角的元素相同。生成托普利兹矩阵的函数是toeplitz(x,y),它生成一个以x为第一列,y为第一行的托普利兹矩阵。这里x, y均

9、为向量,两者不必等长。toeplitz(x)用向量x生成一个对称的托普利兹矩阵。(5) 伴随矩阵:MATLAB生成伴随矩阵的函数是compan(p),其中p是一个多项式的系数向量,高次幂系数排在前,低次幂排在后。(6) 帕斯卡矩阵:我们知道,二次项(x+y)n展开后的系数随n的增大组成一个三角形表,称为杨辉三角形。由杨辉三角形表组成的矩阵称为帕斯卡(Pascal)矩阵。函数pascal(n)生成一个n阶帕斯卡矩阵。2.3 矩阵的运算2.3.1 算术运算MATLAB的基本算术运算有:(加)、(减)、*(乘)、/(右除)、(左除)、(乘方)、(转置)。运算是在矩阵意义下进行的,单个数据的算术运算只

10、是一种特例。(1) 矩阵加减运算假定有两个矩阵A和B,则可以由A+B和A-B实现矩阵的加减运算。运算规则是:若A和B矩阵的维数相同,则可以执行矩阵的加减运算,A和B矩阵的相应元素相加减。如果A与B的维数不相同,则MATLAB将给出错误信息,提示用户两个矩阵的维数不匹配。(2) 矩阵乘法 假定有两个矩阵A和B,若A为m*n矩阵,B为n*p矩阵,则C=A*B为m*p矩阵。(3) 矩阵除法在MATLAB中,有两种矩阵除法运算:和/,分别表示左除和右除。如果A矩阵是非奇异方阵,则AB和B/A运算可以实现。AB等效于A的逆左乘B矩阵,也就是inv(A)*B,而B/A等效于A矩阵的逆右乘B矩阵,也就是B*

11、inv(A)。对于含有标量的运算,两种除法运算的结果相同。对于矩阵来说,左除和右除表示两种不同的除数矩阵和被除数矩阵的关系,一般ABB/A。(4) 矩阵的乘方 一个矩阵的乘方运算可以表示成Ax,要求A为方阵,x为标量。(5) 矩阵的转置 对实数矩阵进行行列互换,对复数矩阵,共轭转置,特殊的,操作符.共轭不转置(见点运算);(6) 点运算在MATLAB中,有一种特殊的运算,因为其运算符是在有关算术运算符前面加点,所以叫点运算。点运算符有.*、./、.和.。两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维参数相同。2.3.2 关系运算MATLAB提供了6种关系运算符:(小于)、(大于

12、)、=(大于或等于)、=(等于)、=(不等于)。关系运算符的运算法则为:(1) 当两个比较量是标量时,直接比较两数的大小。若关系成立,关系表达式结果为1,否则为0;(2) 当参与比较的量是两个维数相同的矩阵时,比较是对两矩阵相同位置的元素按标量关系运算规则逐个进行,并给出元素比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由0或1组成;(3) 当参与比较的一个是标量,而另一个是矩阵时,则把标量与矩阵的每一个元素按标量关系运算规则逐个比较,并给出元素比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由0或1组成。2.3.3 逻辑运算MATLAB提供了3种逻辑

13、运算符:&(与)、|(或)和(非)。 逻辑运算的运算法则为:(1) 在逻辑运算中,确认非零元素为真,用1表示,零元素为假,用0表示;(2) 设参与逻辑运算的是两个标量a和b,那么,a&b a,b全为非零时,运算结果为1,否则为0。 a|b a,b中只要有一个非零,运算结果为1。a 当a是零时,运算结果为1;当a非零时,运算结果为0。(3) 若参与逻辑运算的是两个同维矩阵,那么运算将对矩阵相同位置上的元素按标量规则逐个进行。最终运算结果是一个与原矩阵同维的矩阵,其元素由1或0组成;(4) 若参与逻辑运算的一个是标量,一个是矩阵,那么运算将在标量与矩阵中的每个元素之间按标量规则逐个进行。最终运算结

14、果是一个与矩阵同维的矩阵,其元素由1或0组成;(5) 逻辑非是单目运算符,也服从矩阵运算规则;(6) 在算术、关系、逻辑运算中,算术运算优先级最高,逻辑运算优先级最低。3 矩阵分析3.1 对角阵(1) 对角阵只有对角线上有非0元素的矩阵称为对角矩阵,对角线上的元素相等的对角矩阵称为数量矩阵,对角线上的元素都为1的对角矩阵称为单位矩阵。(2) 提取矩阵的对角线元素设A为m*n矩阵,diag(A)函数用于提取矩阵A主对角线元素,产生一个具有min(m,n)个元素的列向量。diag(A)函数还有一种形式diag(A,k),其功能是提取第k条对角线的元素。(3) 构造对角矩阵设V为具有m个元素的向量,

15、diag(V)将产生一个m*m对角矩阵,其主对角线元素即为向量V的元素。diag(V)函数也有另一种形式diag(V,k),其功能是产生一个n*n(n=m+k)对角阵,其第m条对角线的元素即为向量V的元素。3.2 三角阵三角阵又进一步分为上三角阵和下三角阵,所谓上三角阵,即矩阵的对角线以下的元素全为0的一种矩阵,而下三角阵则是对角线以上的元素全为0的一种矩阵。(1) 上三角矩阵 求矩阵A的上三角阵的MATLAB函数是triu(A)。 triu(A)函数也有另一种形式triu(A,k),其功能是求矩阵A的第k条对角线以上的元素。(2) 下三角矩阵在MATLAB中,提取矩阵A的下三角矩阵的函数是t

16、ril(A)和tril(A,k),其用法与提取上三角矩阵的函数triu(A)和triu(A,k)完全相同。3.3 矩阵的转置与旋转(1) 矩阵的转置 转置运算符是单撇号()。(2) 矩阵的旋转 利用函数rot90(A,k)将矩阵A旋转90o的k倍,当k为1时可省略。3.4 矩阵的翻转对矩阵实施左右翻转是将原矩阵的第一列和最后一列调换,第二列和倒数第二列调换,依次类推。矩阵A实施左右翻转的函数是fliplr(A),对矩阵A实施上下翻转的函数是flipud(A)。3.5 矩阵的逆与伪逆(1) 矩阵的逆 对于一个方阵A,如果存在一个与其同阶的方阵B,使得:AB=BA=I (I为单位矩阵) 则称B为A

17、的逆矩阵,当然,A也是B的逆矩阵。求方阵A的逆矩阵可调用函数inv(A)。(2) 矩阵的伪逆如果矩阵A不是一个方阵,或者A是一个非满秩的方阵时,矩阵A没有逆矩阵,但可以找到一个与A的转置矩阵A同型的矩阵B,使得:ABA=A,BAB=B 此时称矩阵B为矩阵A的伪逆,也称为广义逆矩阵。在MATLAB中,求一个矩阵伪逆的函数是pinv(A)。3.6 方阵的行列式把一个方阵看作一个行列式,并对其按行列式的规则求值,这个值就称为矩阵所对应的行列式的值。在MATLAB中,求方阵A所对应的行列式的值的函数是det(A)。3.7 矩阵的秩与迹(1) 矩阵的秩 矩阵线性无关的行数与列数称为矩阵的秩。在MATLA

18、B中,求矩阵秩的函数是rank(A)。(2) 矩阵的迹矩阵的迹等于矩阵的对角线元素之和,也等于矩阵的特征值之和。在MATLAB中,求矩阵的迹的函数是trace(A)。3.8 向量和矩阵的范数矩阵或向量的范数用来度量矩阵或向量在某种意义下的长度。范数有多种方法定义,其定义不同,范数值也就不同。(1) 向量的3种常用范数及其计算函数 在MATLAB中,求向量范数的函数为:a、norm(V)或norm(V,2):计算向量V的2-范数;b、norm(V,1):计算向量V的1-范数;c、norm(V,inf):计算向量V的-范数。(2) 矩阵的范数及其计算函数 MATLAB提供了求3种矩阵范数的函数,其

19、函数调用格式与求向量的范数的函数完全相同。(3) 矩阵的条件数 在MATLAB中,计算矩阵A的3种条件数的函数是:a、cond(A,1) 计算A的1-范数下的条件数;b、cond(A)或cond(A,2) 计算A的2-范数数下的条件数;c、cond(A,inf) 计算A的 -范数下的条件数。3.9 矩阵的特征值与特征向量在MATLAB中,计算矩阵A的特征值和特征向量的函数是eig(A),常用的调用格式有3种:(1) E=eig(A):求矩阵A的全部特征值,构成向量E。(2) V,D=eig(A):求矩阵A的全部特征值,构成对角阵D,并求A的特征向量构成V的列向量。(3) V,D=eig(A,n

20、obalance):与第2种格式类似,但第2种格式中先对A作相似变换后求矩阵A的特征值和特征向量,而格式3直接求矩阵A的特征值和特征向量。4 矩阵的应用4.1 稀疏矩阵对于一个 n 阶矩阵,通常需要 n2 的存储空间,当 n 很大时,进行矩阵运算时会占用大量的内存空间和运算时间。在许多实际问题中遇到的大规模矩阵中通常含有大量0元素,这样的矩阵称为稀疏矩阵。Matlab支持稀疏矩阵,只存储矩阵的非零元素。由于不存储那些”0元素,也不对它们进行操作,从而节省内存空间和计算时间,其计算的复杂性和代价仅仅取决于稀疏矩阵的非零元素的个数,这在矩阵的存储空间和计算时间上都有很大的优点。矩阵的密度定义为矩阵

21、中非零元素的个数除以矩阵中总的元素个数。对于低密度的矩阵,采用稀疏方式存储是一种很好的选择。4.1.1 稀疏矩阵的创建(1) 将完全存储方式转化为稀疏存储方式函数A=sparse(S)将矩阵S转化为稀疏存储方式的矩阵A。当矩阵S是稀疏存储方式时,则函数调用相当于A=S。 sparse函数还有其他一些调用格式: sparse(m,n):生成一个m*n的所有元素都是0的稀疏矩阵。 sparse(u,v,S)-:u,v,S是3个等长的向量。S是要建立的稀疏矩阵的非0元素,u(i)、v(i)分别是S(i)的行和列下标,该函数建立一个max(u)行、max(v)列并以S为稀疏元素的稀疏矩阵。此外,还有一

22、些和稀疏矩阵操作有关的函数。full(A):返回和稀疏存储矩阵A对应的完全存储方式矩阵。(2) 直接创建稀疏矩阵 S=sparse(i,j,s,m,n),其中i 和j 分别是矩阵非零元素的行和列指标向量,s 是非零元素值向量,m,n 分别是矩阵的行数和列数。(3) 从文件中创建稀疏矩阵利用load和spconvert函数可以从包含一系列下标和非零元素的文本文件中输入稀疏矩阵。例:设文本文件 T.txt 中有三列内容,第一列是一些行下标,第二列是列下标,第三列是非零元素值。load T.txt S=spconvert(T)。(4) 稀疏带状矩阵的创建 S=spdiags(B,d,m,n) 其中m

23、 和n 分别是矩阵的行数和列数;d是长度为p的整数向量,它指定矩阵S的对角线位置;B是全元素矩阵,用来给定S对角线位置上的元素,行数为min(m,n),列数为p 。(5) 其它稀疏矩阵创建函数S=speye(m,n)S=speye(size(A) % has the same size as AS=buchy % 一个内置的稀疏矩阵(邻接矩阵)4.1.2 稀疏矩阵的运算稀疏存储矩阵只是矩阵的存储方式不同,它的运算规则与普通矩阵是一样的,可以直接参与运算。所以,Matlab中对满矩阵的运算和函数同样可用在稀疏矩阵中。结果是稀疏矩阵还是满矩阵,取决于运算符或者函数。当参与运算的对象不全是稀疏存储矩

24、阵时,所得结果一般是完全存储形式。4.1.3 其他(1) 非零元素信息nnz(S) % 返回非零元素的个数nonzeros(S) % 返回列向量,包含所有的非零元素nzmax(S) % 返回分配给稀疏矩阵中非零项的总的存储空间(2) 查看稀疏矩阵的形状 spy(S)(3) find函数与稀疏矩阵i,j,s=find(S)i,j=find(S)返回 S 中所有非零元素的下标和数值,S 可以是稀疏矩阵或满矩阵。4.2 运用矩阵进行MATLAB作图数据可视化是人们认识世界不可缺少的手段、科学与工程研究大量依赖于可视化技术。数据图视化能使人们用视觉器官直接地、形象地感受到数据的许多内在本质 。MATL

25、AB为用户提供了大量的丰富的图形功能,编制了大量的数据可视化的指令,并配备了许多高级图形案例。利用这些功能、指令和案例,用户可以方便地实现数据的可视演示,表达数据的特性。4.2.1 运用矩阵进行绘制二维图形plot函数:plot 绘图的基本素材是二维点组(x y )(i=1,2,.n)。二维点组(x y )(i=1,2,.n)的定义形式如: (1)x=2.3,4.3,3,4,4.9,1.5,2.8,4.6,5.5或y=0:0.1:5。这种定义方法,默认横坐标是自然数(1,2,3,4.)(2)t = 0:pi/100:2*pi ;x =sin(t) ,二维点组(x y )(i=1,2,.n)的定

26、义形式。下例用来体会plot 的基本的绘图原理。绘向量得折线图:h=figure; %定义一个新的图形窗,返回此图形窗的柄号。 % hold on; %图形保持开关。x=2.3,4.3,3,4,4.9,1.5,2.8,4.6,5.5;plot(x)plot(x,-ro) 绘x=sin(t)图。曲线光滑与否与点数相关。hold off t=0:pi/3:2*pi; x=sin(t); plot(t,x,r-) hold on t=0:pi/100:2*pi; x=sin(t); plot(t,x,b-) 4.2.2 运用矩阵进行绘制三维图形(1) plot3(三维直线函数)以下例子用来体会plo

27、t 3的基本的绘图原理。%绘参数方程 x=t;y=sin(t);z=cos(t) 的空间曲线clft=0:0.05:100;x=t;y=sin(t);z=sin(2*t);plot3(x,y,z,b:) (2) 三维曲面网格图划马鞍面: clfx=-4:0.5:4;y=-4:0.5:4;U,V=meshgrid(x,y);Z=-U.4+V.4-U.2-V.2-2*U*V;mesh(Z);xlabel(x);ylabel(y);zlabel(z); 5 结语Matlab除了具有强大的包含知阵计算在内的数值计算能力外,还可以实现优化统计骗微分方程数值解以及一维二维图像绘制科学计算可视化等功能如果M

28、atlab)软件用于矩阵论的学习上,将会提供全新的数学学习体验和方法,同时会大大提高矩阵学习的兴趣和效率。因此,在矩阵学习中使用Matlab等数学软件无疑具有重要的作用。参考文献:1苏金明,王永利.M ailab7. 0实用指南M电子工业出版社,2005.2薛定宇,陈阳泉.高等应川数学问题的Matlab求解M.北京:清华人学出版社,2004. 3 张志勇. 精通Matlab 6. 5版M.北京:北京航空航天人学出版社,2003. 4 张禾瑞,郝炳新.高等代数M .4版. 北京:高等教育出版社,1997. 5北京人学数学力学系儿何与代数教研室代数小组.高等代数M北京:人民教育出版社,1978.6 P. W. Wheeler, J. Rodriguez, J. C. Clare. Matrix converters: a technology review J. IEEE Transactions on Industrial Electronics, 2002, Vo1.49(2): 276-288.7 Burany N. Safe control offour-quadrant switches. Proceedings IEEE IAS89.1989,1190-194.

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2