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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

2MATLAB矩阵及其运算.docx

1、2 MATLAB矩阵及其运算2 MATLAB矩阵及其运算矩阵是MATLAB数据存储的基本单元,而矩阵的运算是MATLAB语言的核心,在MATLAB语言系统中几乎一切运算均是以对矩阵的操作为基础的。下面重点介绍矩阵的生成、矩阵的基本运算和矩阵的数组运算。2.1 变量和数据操作2.1.1 变量与赋值1变量命名在MATLAB 6.5中,变量名是以字母开头,后接字母、数字或下划线的字符序列,最多63个字符。在MATLAB中,变量名区分字母的大小写。2赋值语句(1) 变量=表达式(2) 表达式其中表达式是用运算符将有关运算量连接起来的式子,其结果是一个矩阵。例2-1 计算表达式的值,并显示计算结果。在M

2、ATLAB命令窗口输入命令:x=1+2i;y=3-sqrt(17);z=(cos(abs(x+y)-sin(78*pi/180)/(x+abs(y)其中pi和i都是MATLAB预先定义的变量,分别代表代表圆周率和虚数单位。输出结果是:2.1.2 预定义变量在MATLAB工作空间中,还驻留几个由系统本身定义的变量。例如,用pi表示圆周率的近似值,用i表示虚数单位。预定义变量有特定的含义,在使用时,应尽量避免对这些变量重新赋值。2.1.3 内存变量的管理1内存变量的删除与修改MATLAB工作空间窗口专门用于内存变量的管理。在工作空间窗口中可以显示所有内存变量的属性。当选中某些变量后,再单击Dele

3、te按钮,就能删除这些变量。当选中某些变量后,再单击Open按钮,将进入变量编辑器。通过变量编辑器可以直接观察变量中的具体元素,也可修改变量中的具体元素。clear命令用于删除MATLAB工作空间中的变量。who和whos这两个命令用于显示在MATLAB工作空间中已经驻留的变量名清单。who命令只显示出驻留变量的名称,whos在给出变量名的同时,还给出它们的大小、所占字节数及数据类型等信息。2内存变量文件利用MAT文件可以把当前MATLAB工作空间中的一些有用变量长久地保留下来,扩展名是.mat。MAT文件的生成和装入由save和load命令来完成。常用格式为:save 文件名 变量名表 -a

4、ppend-asciiload 文件名 变量名表 -ascii其中,文件名可以带路径,但不需带扩展名.mat,命令隐含一定对.mat文件进行操作。变量名表中的变量个数不限,只要内存或文件中存在即可,变量名之间以空格分隔。当变量名表省略时,保存或装入全部变量。-ascii选项使文件以ASCII格式处理,省略该选项时文件将以二进制格式处理。save命令中的-append选项控制将变量追加到MAT文件中。2.1.4 MATLAB常用数学函数MATLAB提供了许多数学函数,函数的自变量规定为矩阵变量,运算法则是将函数逐项作用于矩阵的元素上,因而运算的结果是一个与自变量同维数的矩阵。函数使用说明:(1)

5、 三角函数以弧度为单位计算。(2) abs函数可以求实数的绝对值、复数的模、字符串的ASCII码值。(3) 用于取整的函数有fix、floor、ceil、round,要注意它们的区别。(4) rem与mod函数的区别。rem(x,y)和mod(x,y)要求x,y必须为相同大小的实矩阵或为标量。2.1.5 数据的输出格式 MATLAB用十进制数表示一个常数,具体可采用日常记数法和科学记数法两种表示方法。在一般情况下,MATLAB内部每一个数据元素都是用双精度数来表示和存储的。数据输出时用户可以用format命令设置或改变数据输出格式。format命令的格式为:format 格式符其中格式符决定数

6、据的输出格式2.2 MATLAB矩阵输入矩阵时要以“ ”为其标识符号,矩阵的所有元素必须都在括号内。矩阵同行元素之间由空格或逗号分隔,行与行之间用分号或回车键分隔。矩阵大小不需要预先定义。矩阵元素可以是运算表达式。若“ ”中无元素表示空矩阵。2.2.1 矩阵的建立1直接输入法 最简单的建立矩阵的方法是从键盘直接输入矩阵的元素。具体方法如下:将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。2利用M文件建立矩阵对于比较大且比较复杂的矩阵,可以为它专门建立一个M文件。下面通过一个简单例子来说明如何利用M文件创建矩阵。例:单击“”,

7、打开MATLAB文本编辑器(或打开Windows记事本),输入: 1,2,3,4,5;6,7,8,9,0保存为:A.m 在MATLAB命令窗口中输入: A3利用冒号表达式建立一个向量冒号表达式可以产生一个行向量,一般格式是: e1:e2:e3其中e1为初始值,e2为步长,e3为终止值。例:a=1:2:8在MATLAB中,还可以用linspace函数产生行向量。其调用格式为:linspace(a,b,n)其中a和b是生成向量的第一个和最后一个元素,n是元素总数。显然,linspace(a,b,n)与a:(b-a)/(n-1):b等价。4外部文件读入法MATLAB语言也允许用户调用在MATLAB环

8、境之外定义的矩阵。可用任意的文本编辑器编辑所要使用的矩阵,矩阵元素之间以特定分断符分开,并按行列布置。可用load函数调用: Load+文件名参数Load函数将会从文件名所指定的文件中读取数据,并将输入的数据赋给以文件名命名的变量,如果不给定文件名,则将自动认为matlab.mat文件为操作对象,如果该文件在MATLAB搜索路径中不存在时,系统将会报错。例如: 事先在记事本中建立文件: 1 1 1 1 2 3 1 3 6以data1.txt保存.在MATLAB命令窗口中输入: load data1.txt data1 data1= 1 1 1 1 2 3 1 3 62.2.2 矩阵的拆分1矩阵

9、元素通过下标引用矩阵的元素,例如:A(3,2)=200采用矩阵元素的序号来引用矩阵元素。矩阵元素的序号就是相应元素在内存中的排列顺序。在MATLAB中,矩阵元素按列存储,先第一列,再第二列,依次类推。例如,输入:A=1,2,3;4,5,6A(3)则输出:显然,序号(Index)与下标(Subscript)是一一对应的,以mn矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i。2矩阵拆分(1) 利用冒号表达式获得子矩阵 A(:,j)表示取A矩阵的第j列全部元素;A(i,:)表示A矩阵第i行的全部元素;A(i,j)表示取A矩阵第i行、第j列的元素。 A(i:i+m,:)表示取A矩阵第ii+

10、m行的全部元素;A(:,k:k+m)表示取A矩阵第kk+m列的全部元素;A(i:i+m,k:k+m)表示取A矩阵第ii+m行内,并在第kk+m列中的所有元素。此外,还可利用一般向量和end运算符来表示矩阵下标,从而获得子矩阵。end表示某一维的末尾元素下标。例:试看结果A=1,2,3;4,5,6A(2,end)(2) 利用空矩阵删除矩阵的元素 在MATLAB中,定义为空矩阵。给变量X赋空矩阵的语句为X=。注意,X=与clear X不同,clear是将X从工作空间中删除,而空矩阵则存在于工作空间中,只是维数为0。2.2.3 特殊矩阵1通用的特殊矩阵常用的产生通用特殊矩阵的函数有:zeros:产生

11、全0矩阵(零矩阵)。ones:产生全1矩阵(幺矩阵)。eye:产生单位矩阵。rand:产生01间均匀分布的随机矩阵。randn:产生均值为0,方差为1的标准正态分布随机矩阵。例 建立一个33零矩阵:zeros(3)建立一个32零矩阵:zeros(3,2)设A为23矩阵,建立一个与矩阵A同样大小零矩阵:A=1 2 3;4 5 6; %产生一个23阶矩阵Azeros(size(A) %产生与矩阵A同样大小的零矩阵例 建立随机矩阵:在区间20,50内均匀分布的5阶随机矩阵:x=20+(50-20)*rand(5)均值为0.6、方差为0.1的5阶正态分布随机矩阵。y=0.6+sqrt(0.1)*ran

12、dn(5)例:它在矩阵总元素保持不变的前提下,将矩阵A重新排成mn的二维矩阵(注意:不是转置): A=1 2 3;4 5 6reshape(A,3,2)2用于专门学科的特殊矩阵(1) 魔方矩阵魔方矩阵:每行、每列及两条对角线上的元素和都相等。n阶魔方阵,其元素由1,2,3,n2个整数组成。求魔方矩阵的函数magic(n)。例 将101125等25个数填入一个5行5列的表格中,使其每行每列及对角线的和均为565。M=100+magic(5)(2) 范得蒙矩阵函数vander(V)生成以向量V为基础向量的范得蒙矩阵。例 A=vander(1;2;3;5)(3) 希尔伯特矩阵希尔伯特矩阵是一种数学变

13、换矩阵,其元素为1/(i+j-1),ij分别为其行标和列标正定,且高度病态(即:任何一个元素发生一点变动,整个矩阵的值和逆矩阵都会发生巨大变化),病态程度和阶数相关。生成希尔伯特矩阵的函数是hilb(n)。希尔伯特矩阵的逆的函数invhilb(n)。例 求4阶希尔伯特矩阵及其逆矩阵。format rat %以有理形式输出H=hilb(4)H=invhilb(4)(4) 托普利兹矩阵托普利兹(Toeplitz)矩阵除第一行第一列外,其他每个元素都与左上角的元素相同。生成托普利兹矩阵的函数是toeplitz(x,y),它生成一个以x为第一列,y为第一行的托普利兹矩阵。这里x, y均为向量,两者不必

14、等长。toeplitz(x)用向量x生成一个对称的托普利兹矩阵。例 T=toeplitz(1:6)(5) 已知矩阵A的特征多项式f(x), 求A(都译为“伴随矩阵”,不妥)例 已知矩阵A的特征多项式为:x3-7x+6,求A:p=1,0,-7,6;compan(p)(6) 帕斯卡矩阵由杨辉三角形表组成的矩阵称为帕斯卡(Pascal)矩阵。函数pascal(n)生成一个n阶帕斯卡矩阵。例 求(x+y)5的展开式。输入命令:pascal(6)2.3 MATLAB矩阵运算2.3.1 算术运算1基本算术运算 MATLAB的基本算术运算有:(加)、(减)、*(乘)、/(右除)、(左除)、(乘方)。注意,运

15、算是在矩阵意义下进行的,单个数据的算术运算只是一种特例。(1) 矩阵加减运算: A+B、A-B (2) 矩阵乘法:A*B (3) 矩阵除法。设A是非奇异方阵左除:AB 等价于A的逆左乘B,也就是inv(A)*B;右除:B/A 等价于A的逆右乘B,也就是B*inv(A)。注:对于含有标量的运算,两种除法运算的结果相同,如3/4和43有相同的值,都等于0.75。又如,设a=10.5,25,则a/5=5a=2.1000 5.0000。 (4) 矩阵的乘方: Ax2点运算在MATLAB中,有一种特殊的运算,因为其运算符是在有关算术运算符前面加点,所以叫点运算。点运算符有.*、./、.和.。两矩阵进行点

16、运算是指它们的对应元素进行相关运算,要求两矩阵的维参数相同。2.3.2 关系运算MATLAB提供了6种关系运算符:(小于)、(大于)、=(大于或等于)、=(等于)、=(不等于)。它们的含义不难理解,但要注意其书写方法与数学中的不等式符号不尽相同。关系运算符的运算法则为:(1) 当两个比较量是标量时,直接比较两数的大小。若关系成立,关系表达式结果为1,否则为0。 (2) 当参与比较的量是两个维数相同的矩阵时,比较是对两矩阵相同位置的元素按标量关系运算规则逐个进行,并给出元素比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由0或1组成。(3) 当参与比较的一个是标量,而另一个是

17、矩阵时,则把标量与矩阵的每一个元素按标量关系运算规则逐个比较,并给出元素比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由0或1组成。例2-8 产生5阶随机方阵A,其元素为10,90区间的随机整数,然后判断A的元素是否能被3整除。(1) 成5阶随机方阵A。A=fix(90-10+1)*rand(5)+10)(2) 判断A的元素是否可以被3整除。 P=rem(A,3)=0其中,rem(A,3)是矩阵A的每个元素除以3的余数矩阵。此时,0被扩展为与A同维数的零矩阵,P是进行等于(=)比较的结果矩阵。2.3.3 逻辑运算MATLAB提供了3种逻辑运算符:&(与)、|(或)和(非)

18、。若参与逻辑运算的是两个同维矩阵,那么运算将对矩阵相同位置上的元素按标量规则逐个进行。最终运算结果是一个与原矩阵同维的矩阵,其元素由1或0组成。若参与逻辑运算的一个是标量,一个是矩阵,那么运算将在标量与矩阵中的每个元素之间按标量规则逐个进行。最终运算结果是一个与矩阵同维的矩阵,其元素由1或0组成。在算术、关系、逻辑运算中,算术运算优先级最高,逻辑运算优先级最低。例 立矩阵A,然后找出大于4的元素的位置。解:矩阵A:A=4,-65,-54,0,6;56,0,67,-45,0find(A4)2.4 矩阵分析2.4.1 对角阵与三角阵对角阵(1) 提取矩阵的对角线元素设A为mn矩阵,diag(A)函

19、数用于提取矩阵A主对角线元素,产生一个具有min(m,n)个元素的列向量。diag(A)函数还有一种形式diag(A,k),其功能是提取第k条对角线的元素。(2) 构造对角矩阵diag(V)将产生一个以V为对角线上元素的mm对角矩阵例 先建立55矩阵A,然后将A的第一行元素乘以1,第二行乘以2,第五行乘以5。A=17,0,1,0,15;23,5,7,14,16;4,0,13,0,22;10,12,19,21,3;11,18,25,2,19;D=diag(1:5);D*A %用D左乘A,对A的每行乘以一个指定常数三角阵(1) 上三角矩阵:triu(A):提取矩阵A的上三角阵的MATLAB函数;t

20、riu(A,k):求矩阵A的第k条对角线以上的元素。例如,提取矩阵A的第2条对角线以上的元素,形成新的矩阵B。(2) 下三角矩阵tril(A):提取矩阵A的下三角矩阵的函数;tril(A,k),其用法与提取上三角矩阵的函数triu(A)和triu(A,k)完全相同。2.4.2 矩阵的转置与旋转1矩阵的转置:转置运算符是单撇号()。2矩阵的旋转:利用函数rot90(A,k)将矩阵A旋转90的k倍,当k为1时可省略。3矩阵的左右翻转:对矩阵实施左右翻转是将原矩阵的第一列和最后一列调换,第二列和倒数第二列调换,依次类推。MATLAB对矩阵A实施左右翻转的函数是fliplr(A)。4矩阵的上下翻转:对

21、矩阵A实施上下翻转的函数是flipud(A)。2.4.3 矩阵的逆与伪逆1矩阵的逆:inv(A)。例 用求逆矩阵的方法解线性方程组。Ax=b其解为:x=A-1b2矩阵的伪逆如果矩阵A不是一个方阵,或者A是一个非满秩的方阵时,矩阵A没有逆矩阵,但可以找到一个与A的转置矩阵A同型的矩阵B,使得:ABA=ABAB=B此时称矩阵B为矩阵A的伪逆,也称为广义逆矩阵。在MATLAB中,求一个矩阵伪逆的函数是pinv(A)。2.4.4 方阵的行列式求方阵A的行列式的值:det(A)。2.4.5 矩阵的秩与迹矩阵的秩: rank(A)。矩阵的迹: trace(A)。2.4.6 向量和矩阵的范数矩阵或向量的范数

22、用来度量矩阵或向量在某种意义下的长度。范数有多种方法定义,其定义不同,范数值也就不同。常用范数:1、向量的范数 1-范数:x1=x1+x2+xn 2-范数:x2=(x12+x22+xn2)1/2 -范数:x=max(x1,x2,xn) 其中2-范数就是通常意义下的距离。向量的3种常用范数及其计算函数(1) norm(V)或norm(V,2): 计算向量V的2范数。(2) norm(V,1): 计算向量V的1范数。(3) norm(V,inf): 计算向量V的范数。2矩阵的范数1-范数:A1 = max |ai1|, |ai2| , ,|ain| 2-范数:A2 = A的最大奇异值 = ( ma

23、x i(AH*A) ) 1/2 (谱范数,即AA特征值i中最大者1的平方根,其中AH为A的转置共轭矩阵);-范数:A = max |a1j|, |a2j| ,., |amj| MATLAB提供了求3种矩阵范数的函数,其函数调用格式与求向量的范数的函数完全相同。2.4.7 矩阵的条件数在MATLAB中,计算矩阵A的3种条件数的函数是:(1) cond(A,1) 计算A的1范数下的条件数。(2) cond(A)或cond(A,2) 计算A的2范数数下的条件数。(3) cond(A,inf) 计算A的 范数下的条件数。2.4.8 矩阵的特征值与特征向量在MATLAB中,计算矩阵A的特征值和特征向量的

24、函数是eig(A),常用的调用格式有3种:(1) E=eig(A):求矩阵A的全部特征值,构成向量E。(2) V,D=eig(A):求矩阵A的全部特征值,构成对角阵D,并求A的特征向量构成V的列向量。(3) V,D=eig(A,nobalance):与第2种格式类似,但第2种格式中先对A作相似变换后求矩阵A的特征值和特征向量,而格式3直接求矩阵A的特征值和特征向量。例2-12 用求特征值的方法解方程。3x5-7x4+5x2+2x-18=0p=3,-7,0,5,2,-18;A=compan(p); %A的伴随矩阵x1=eig(A) %求A的特征值x2=roots(p) %直接求多项式p的零点2.

25、5 矩阵的超越函数1矩阵平方根(解矩阵方程X2 =A): sqrtm(A)例:A=1 2 3;4 5 6;7,8,9 sqrtm(A)2矩阵对数(计算矩阵A的自然对数lnA): logm(A)例:A=1 2 3;4 5 6;7,8,9 logm(A)3矩阵指数(求矩阵指数eA): expm(A):例: A=0 1 1;2 0 0;1,2,1 Expm1(A)2.6 字符串在MATLAB中,字符串是用单撇号括起来的字符序列。MATLAB将字符串当作一个行向量,每个元素对应一个字符,其标识方法和数值向量相同。也可以建立多行字符串矩阵。字符串是以ASCII码形式存储的。abs和double函数都可以

26、用来获取字符串矩阵所对应的ASCII码数值矩阵。相反,char函数可以把ASCII码矩阵转换为字符串矩阵。例 建立一个字符串向量,然后对该向量做如下处理:(1) 取第15个字符组成的子字符串。(2) 将字符串倒过来重新排列。(3) 将字符串中的小写字母变成相应的大写字母,其余字符不变。(4) 统计字符串中小写字母的个数。命令如下:ch=ABc123d4e56Fg9;subch=ch(1:5) %取子字符串revch=ch(end:-1:1) %将字符串倒排k=find(ch=a&ch=z); %找小写字母的位置ch(k)=ch(k)-( a-A); %将小写字母变成相应的大写字母char(ch) length(k) %统计小写字母的个数与字符串有关的另一个重要函数是eval,其调用格式为: eval(t)其中t为字符串。它的作用是把字符串的内容作为对应的MATLAB语句来执行。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1