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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

MATLAB中的矩阵与向量运算.docx

1、MATLAB中的矩阵与向量运算之欧侯瑞魂创作4.1 数组运算和矩阵运算从外观形状和数据结构来看,二维数组和数学中的矩阵没有区别.但是,矩阵作为一种变换或映射算符的体现,矩阵运算有着明确而严格的数学规则.而数组运算是MATLAB软件所定义的规则,其目的是为了数据管理方面,操纵简单,指令形式自然和执行计算有效.所以,在使用MATLAB时,特别要明确搞清数组运算和矩阵运算的区别.表4.1.1列出了两种运算指令形式的实质内涵的异同.4.1.1 数组运算和矩阵运算指令形式和实质内涵数组运算矩阵运算指令含义指令含义A.非共轭转置A共轭转置A=s把标量s赋给数组A的每个元素s+B把标量s分别与数组B的每个元

2、素相加sB, Bs标量s分别与数组B的元素之差s.*A标量s分别与数组A的元素之积s*A标量s分别与矩阵A的元素之积s./B, B.s标量s分别被数组B的元素除s*inv(B)矩阵B的逆乘标量sA.n数组A的每个元素的n次方AnA为方阵时,矩阵A的n次方A+B数组对应元素的相加A+B矩阵相加AB数组对应元素的相减AB矩阵相减A.*B数组对应元素的相乘A*B内维相同矩阵的乘积A./BA的元素被B的对应元素除A/BA右除BB.A一定与上相同BAA左除B(一般与右除分歧)exp(A)以e为底,分别以A的元素为指数,求幂expm(A)A的矩阵指数函数log(A)对A的各元素求对数logm(A)A的矩阵

3、对数函数sqrt(A)对A的积各元素求平方根sqrtm(A)A的矩阵平方函数从上面可以看到,数组运算的运算如:乘,除,乘方,转置,要加点.所以,我们要特别注意在求乘,除,乘方,三角和指数函数时,两种运算有着根本的区别.另外,在执行数组与数组运算时,介入运算的数组必须同维,运算所得的结果数组也是总与原数组同维.4.2 数组的基本运算在MATLAB中,数组运算是针对多个数执行同样的计算而运用的.MATLAB以一种非常直观的方式来处理数组.4.2.1 点转置和共轭转置. 点转置.非共轭转置,相当于conj(A). a=1:5; b=a. b =12345 c=b. c =1 2 3 4 5这标明对行

4、向量的两次转置运算便得到原来的行向量. 共轭转置.对向量进行转置运算并对每个元素取其共轭.如: d=a+i*ad =Columns 1 through 31.0000 + 1.0000i 2.0000 + 2.0000i 3.0000 + 3.0000iColumns 4 through 54.0000 + 4.0000i 5.0000 + 5.0000i e=de =1.0000 1.0000i2.0000 2.0000i3.0000 3.0000i4.0000 4.0000i5.0000 5.0000i4.2.2 纯量 (标量) 和数组的四则运算纯量和数组之间可以进行简单数学运算.如:加,

5、减,乘,除及其混合运行. g=1 2 3 45 6 7 89 10 11 12 g=g2g =1 0 1 23 4 5 67 8 9 10 2*g1ans =3 1 1 35 7 9 1113 15 17 194.2.3 数组间的四则运算在MATLAB中,数组间进行四则运算时,介入运算的数组必须具有相同的维数,加,减,乘,除运算是按元素与元素的方式进行的.其中,数组间的加,减运算与矩阵的加,减运算要同,运算符为:+,.但是,数组间的乘,除运算与矩阵间的乘,除运算完全分歧,运算符号也有不同,数组间的乘,除运算符为:.*,./或.1. 数组按元素相加,减 g=1 2 3 45 6 7 89 10

6、11 12 h=1 1 1 1; 2 2 2 2; 3 3 3 3 g+h % 按元素相加ans =2 3 4 57 8 9 1012 13 14 15 ansh % 按元素相减ans =1 2 3 45 6 7 89 10 11 12 2*gh % 混合运算ans =1 3 5 78 10 12 1415 17 19 212. 按元素乘 g.*hans =1 2 3 410 12 14 1627 30 33 363. 按元素除数组间的除法运算符有两个,即左除:./和右除:.,它们之间的关系是:a./b=b.a g./hans =1.0000 2.0000 3.0000 4.00002.500

7、0 3.0000 4.1000 4.00003.0000 3.3333 3.6667 4.0000 h.gans =1.0000 2.0000 3.0000 4.00002.5000 3.0000 4.1000 4.00003.0000 3.3333 3.6667 4.00004.2.4 幂运算在MATLAB中,数组的幂运算的运算为:.,暗示每一个元素进行幂运算. g.2 % 数组g每个元素的平方ans =1 4 9 1625 36 49 6481 100 121 144 g.(1) % 数组g的每个元素的倒数ans =1.0000 0.5000 0.3333 0.25000.2000 0.1

8、667 0.1429 0.12500.1111 0.1000 0.0909 0.0833 2.g % 以g的每个元素为指数对2进行乘方运算ans =2 4 8 1632 64 128 256512 1024 2048 4096 g.h % 以h的每个元素为指数对g中相应元素进行乘方运算ans =1 2 3 425 36 49 64729 1000 1331 1728 g.(h1)ans =1 1 1 15 6 7 881 100 121 1444.2.5 数组的指数,对数和开方运算在MATLAB中,所谓数组的运算实质是是数组内部每个元素的运算,因此,数组的指数,对数和开方运算与标量的运算规则完

9、全是一样的,运算符函数分别为:exp( ),log( ),sqrt( )等. a=1 3 4;2 6 5;3 2 4; c=exp(a)c =2.7183 20.0855 54.59827.3891 403.4288 148.413220.0855 7.3891 54.5982数组的对数,开方运算与数组的指数运算,其方式完全一样,这里不详述.4.3 向量运算对于一行或一列的矩阵,为向量,MATLAB有专门的函数来进行向量点积,叉积和混合积的运算.4.3.1 向量的点积运算在高等数学中,我们知道,两向量的点积指两个向量在其中一个向量方向上的投影的乘积,通经常使用来定义向量的长度.在MATLAB中

10、,向量的点积用函数dot来实现,其调用格式如下:C=dot(A,B) 返回向量A与B的点积,结果存放于C中.C=dot(A,B, DIM) 返回向量A与B在维数为DIM的点积,结果存放于C中. A=2 4 5 3 1; B=3 8 10 12 13; C=dot(A,B)C =137 C=dot(A,B,4)C =6 32 50 36 134.3.2 向量的叉积运算在高等数学中,我们知道,两向量的叉积返回的是与两个向量组成的平面垂直的向量.在MATLAB中,向量的点积用函数cross来实现,其调用格式如下:C=cross(A,B) 返回向量A与B的叉积,即:,结果存放于C中.C=cross(A

11、,B, DIM) 返回向量A与B在维数为DIM的叉积,结果存放于C中. A=2 4 5; B=3 8 10; C=cross(A,B)C =0 5 44.3.3 向量的混合运算 D=dot(A, cross(B,C)D =41上例标明,首先进行的是向量B与C的叉积运算,然后再把叉积运算的结果与向量A进行点积运算.4.4 矩阵的基本运算如果说MATLAB的最大特点是强大的矩阵运算功能,此话毫不为过.事实上,MATLAB中所有的计算都是以矩阵为基本单元进行的.MATLAB对矩阵的运算功能最全面,也是最为强大的.矩阵在形式上与构造方面是等同于前面所述的数组的,当其数学意义却是完全分歧的.矩阵的基本运

12、算包含矩阵的四则运算,矩阵与标时的运算,矩阵的幂运算,指数运算,对数运算,开方运算及以矩阵的逆运算,行列式运算等.4.4.1 矩阵的四则运算矩阵的四则运算与前面介绍的数组的四则运算基底细同.但也有一些不同.1. 矩阵的加减矩阵的加,减与数组的加,减是完全相同的,运算时要求两矩阵的大小完全相同. a=1 2; 3 5; 2 6; b=2 4; 1 8; 9 0; c=a+bc =3 64 1311 62. 矩阵的相乘对于矩阵的乘法,从线性代数中,我们知道,要求进行相乘的两矩阵有相同的公共维.如: a=1 2; 3 5; 2 6; b=2 4 1; 8 9 0; c=a*bc =18 22 146

13、 57 352 62 2设A矩阵为一个阶的矩阵,则要求与之相乘的B矩阵必须是一个阶,得到矩阵是阶的.即,只有当第一个矩阵 (左矩阵) 的列数等于第二个矩阵 (右矩阵) 的行数时,两个矩阵的乘积才有意义.3. 矩阵的除法对于矩阵的除法有两个运算符号,分别为左除符号和右除符号/.矩阵的右除运算速度要慢一点,而左除运算可以防止奇异矩阵的影响.对于方程,若此方程为超定的方程,则使用除法可以自动找到使的平方最小化的解.若此方程为不定方程,则使用除法运算符至少求得的解至多有rank(A) (矩阵A的秩)个非零元素,而且求得的解是这种类型的解中范数最小的一个. a=21 34 20; 5 78 20; 21

14、 14 17; 34 31 38; b=10 20 30 40; x=bax =0.7667 1.1867 0.8767上面方程是超定方程.要注意的:结果矩阵x是列向量形式.如果, a=21 34 20 5; 78 20 21 14; 17 34 31 38; b=10 20 30; x=bax =1.6286 1.2571 1.1071 1.0500上面的方程为不定方程.4. 矩阵与标量间的四则运算矩阵与标量的四则运算和数组与标量间的四则运算完全相同,即矩阵中的每个元素与标量进行加,减,乘,除四则运算.需要说明的是,当进行除法运算时,标量只能做除数.5. 矩阵的幂运算矩阵的幂运算与标量的幂运

15、算分歧.用符号,它不是对矩阵的每个元素进行幂运算,而是与矩阵的某种分解有关. b=21 34 20; 78 20 21; 17 34 31; c=b2c =3433 2074 17543555 3766 26313536 2312 6. 矩阵的指数,对数运算与开方运算矩阵的指数运算,对数运算与开方运算与数组相应的运算是分歧的.它其实不是对矩阵中的单个元素的运算,而是对整个矩阵的运算.这些运算函数如下:expm, expm1, expm2, expm3 指数运算函数;logm 对数运算函数;sqrtm 开方运算函数. a=1 3 4; 2 6 5; 3 2 4; c=expm(a)c =1.0e

16、+004 *0.4668 0.7694 0.92000.7919 1.3065 1.56130.4807 0.7919 0.9475 c=logm(a)c =0.5002 + 2.4406i 0.5960 0.6800i 0.7881 1.2493i0.4148 + 0.4498i 1.4660 0.1253i 1.0108 0.2302i0.5780 1.6143i 0.4148 + 0.4498i 1.0783 + 0.8263i c=sqrtm(a)c =0.6190 + 0.8121i 0.8128 0.2263i 1.1623 0.4157i0.3347 + 0.1497i 2.30

17、22 0.0417i 1.1475 0.0766i1.0271 0.5372i 0.3347 + 0.1497i 1.6461 + 0.2750i7. 矩阵的转置,逆运算与行列式运算矩阵的转置的运算符为.求逆用运算函数:inv( ).而用函数:det( )则可求的矩阵行列式的大小. a=1 2 0; 2 5 1; 4 10 1; c=ac =1 2 42 5 100 1 1 b=inv(a)b =5 2 22 1 10 2 1 d=det(a)d =14.5 矩阵的特殊运算矩阵的特殊运算包含矩阵特征值运算,条件数运算,奇异值运算,范数运算,秩运算,正交化运算,迹运算,伪逆运算等,这些运算,MA

18、TLAB都可以非常方便地给出.4.5.1 矩阵的特征值运算在线性代数中,计算矩阵的特征值过程相当复杂.而在MATLAB中,矩阵特征值运算只需用函数eig( )或eigs( )计算即可得到.其使用格式如下.E=eig(X) 生成由矩阵X的特征值所组成的一个列向量;V,D=eig(X) 生成两个矩阵V和D,其中V是以矩阵X的特征向量作为列向量组成的矩阵,D是由矩阵X的特征值作为主对角线元素构成的对角矩阵.eigs( )函数使用迭代法求解矩阵的特征值和特征向量.D=eigs(X) 生成由矩阵X的特征值所组成的一个列向量.X必定是方阵,最好是大型稀疏矩阵;V,D=eigs(X) 生成两个矩阵V和D,其

19、中V是以矩阵X的特征向量作为列向量组成的矩阵,D是由矩阵X的特征值作为主对角线元素构成的对角矩阵. a=1 2 0; 2 5 1; 4 10 1;b,c=eig(a)b =0.2440 0.9107 0.44720.3333 0.3333 0.00000.9107 0.2440 0.8944c =3.7321 0 00 0.2679 00 0 1.00004.5.2 矩阵 (向量) 的范数运算为了反映了矩阵 (向量) 某些特性,线性代数中引入了范数的概念,它分为2范数,1范数,无穷范数和Frobenius范数等.在MATLAB中,用函数norm( )或normest( ) 计算矩阵 (向量)

20、的范数.其使用格式如下.norm(X) 计算矩阵 (向量) X的2范数;norm(X,2) 同上;norm(X,1) 计算矩阵 (向量) X的1范数;norm(X,inf) 计算矩阵 (向量) X的无穷范数;norm(X,fro) 计算矩阵 (向量) X的Frobenius范数;normest(X) 只计算矩阵 (向量) X的2范数;而且是2范数的估计值,适用于计算norm(X)比较费时的情况. X=hilb(4)X =1.0000 0.5000 0.3333 0.25000.5000 0.3333 0.2500 0.20000.3333 0.2500 0.2000 0.16670.2500

21、0.2000 0.1667 0.1429 norm(4)ans =4 norm(X)ans =1.5002 norm(X,2)ans =1.5002 norm(X,1)ans =2.0833 norm(X,inf)ans =2.0833 norm(X,fro)ans =1.5097 normest(X)ans =1.50024.5.3 矩阵的条件数运算矩阵的条件数是判断矩阵病态程度的一个量值,矩阵A的条件数越大,标明A越病态,反之,标明A越良态.如Hilbert矩阵就是一个有名的病态矩阵.cond(X) 返回矩阵X的2范数的条件数;cond(X, P) 返回矩阵X的P范数的条件数,其中P为1,

22、2,inf或fro;rcond(X) 用于计算矩阵条件数的倒数值,当矩阵X为病态时,rcond(X)就接近0,X为良态时,rcond(X)就接近1.condest(X) 计算关于矩阵X的1范数的条件数的估计值. M=magic(3)M =8 1 63 5 74 9 2 H=hilb(4)H =1.0000 0.5000 0.3333 0.25000.5000 0.3333 0.2500 0.20000.3333 0.2500 0.2000 0.16670.2500 0.2000 0.1667 0.1429 c1=cond(M)c1 =4.3301 c2=cond(M)c2 =4.3301 c3

23、=rcond(M)c3 =0.1875 c4=condest(M)c4 =5.3333 h1=cond(H)h1 =1.5514e+004 h2=cond(H,inf)h2 =2.8375e+004 h3=rcond(H)h3 =3.5242e005 h4=condest(H)h4 =2.8375e+004从上计算可以看出,魔方矩阵比较良态,而Hilbert矩阵是病态的.4.5.4 矩阵的秩秩是线性代数中的相当重要的概念之一,通常矩阵可以经过初等行列式或列变换,将其转化为行阶梯形矩阵,而行阶梯矩阵所包含非零行的行数是一个定的,这个确定的非零行的行数就是矩阵的秩.矩阵中的秩用函数rank( )来

24、计算. T=rand(6)T =0.9501 0.4565 0.9218 0.4103 0.1389 0.01530.2311 0.0185 0.7382 0.8936 0.2028 0.74680.6068 0.8214 0.1763 0.0579 0.1987 0.44510.4860 0.4447 0.4057 0.3529 0.6038 0.93180.8913 0.6154 0.9355 0.8132 0.2722 0.46600.7621 0.7919 0.9169 0.0099 0.1988 0.4186 r=rank(T)r =6由上计算可知,矩阵T为满秩矩阵. T1=1 1 1; 2 2 3T1 =1 1 12 2 3 r=rank(T1)r =2由上计算可知,矩阵T1为行满秩矩阵.

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

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