矩阵运算基础.ppt

上传人:sccc 文档编号:5317183 上传时间:2023-06-25 格式:PPT 页数:58 大小:371.52KB
返回 下载 相关 举报
矩阵运算基础.ppt_第1页
第1页 / 共58页
矩阵运算基础.ppt_第2页
第2页 / 共58页
矩阵运算基础.ppt_第3页
第3页 / 共58页
矩阵运算基础.ppt_第4页
第4页 / 共58页
矩阵运算基础.ppt_第5页
第5页 / 共58页
点击查看更多>>
资源描述

《矩阵运算基础.ppt》由会员分享,可在线阅读,更多相关《矩阵运算基础.ppt(58页珍藏版)》请在三一办公上搜索。

1、1,常用计算名词英汉对照determinant行列式,norm范数,模方,inverse 倒数,逆,pseudoinverse 伪逆,conjugate 共轭,rank 秩,exponential指数的,logarithm 对数,natural logarithm 自然对数,phase 相位,modulus 模数,minus 减的,负的,infinity 无穷大,remainder 余数,eigenvalue 特征值,eigenvector 特征向量,triangular 三角的,unitary matrix酉矩阵,orthogonal正交的,2,第2章 矩阵运算基础,矢量:一行或一列元素标量

2、:有一个元素数组运算:以数组的元素为运算对象矩阵运算:以矩阵整体为对象一、矩阵的创建 1、命令窗口直接创建整个矩阵元素包含在“”内行与行之间以分号(;)或Enter键分隔;,3,行内的元素间用逗号(,)或空格分隔;矩阵大小可以不必预先定义矩阵元素可以是数值、表达式或函数,表达式或函数的值是能计算出来的,不能是未知变量;矩阵元素可以是复数(complex):用书写方法直接输入(虚数单位用i或j表示);或用一个矩阵表示复数的实部,另一个矩阵表示矩阵的虚部,最后将两个矩阵相加;矩阵“”内无任何元素时,称之为空阵;,加例:2-1,4,加例2-1A=2 3 4 5;3 4 5 6;4 5 6 7;7 8

3、 9 10 x=2;y=pi/3A=2,3,cos(y);x,2*x,3*x;x,x/2,x/4%表达式A1=2+3i,3+4i,4;1+2i,2+3i,5;7,9,2+3i%复数等价于:B=2,3,4;1,2,5;7,9,2;C=3,4,0;2,3,0;0,0,3;A2=B+C*i D=;%可以赋给矩阵的某一块,使之为空,5,2、编辑器(Matrix Editor)创建:当要建立较大的矩阵时使用预先定义变量 打开工作空间浏览器 打开矩阵编辑器改变元素值改变矩阵维数 可以实现与Excel功能互补,6,3、矩阵函数zeros 全零矩阵ones 全幺矩阵eye 生成单位阵,加例2-2A=zeros

4、(3,4)%2个参数B=ones(size(A)%形成与A结构相同的全1矩阵C=eye(6)%1个参数D=eye(3,5),7,4、从外部数据文件调入矩阵命令调入文本文件格式:load filename.dat/txt菜单:fileimport data选择文件finish矩阵进入工作环境说明:1、文本文件中数据要排成一个矩形表,数据之间用空格分开,一行数据即为矩阵的一行,且各行数据元素个数必须相等2、文本文件中数据之间用制表符分开,形如EXCEL的数据格式(Tab)例:读入默认格式:laod test.mat 导入文本文件:load test.txt,8,5、矩阵元素的标识 矢量的生成利用冒

5、号(:),加例:2-3,a)x=i:j 步长为1,当 ij时,生成x空矢量;b)x=i:j:k 如:j0,则ik,生成均匀等分矢量,步长为-|j|;,9,加例2-3a=1:6b=2:2:10c=0:-1:2%步长为-1d=8:1:4,矩阵元素的标识:元素和子矩阵可以用标量、矢量和冒号的标识来引用和赋值,子矩阵的序号矢量标识方式A(u,v)u,v是可以任意排列的正整数矢量(不是特别要求,最好使用单调序号),分别表示子矩阵元素在母矩阵中的行号和列号。A(u,v)的行数或列数不受限制,但正整数值一定在行数和列数的范围内,10,“纯”冒号,形如A(L1,:):表示子矩阵是母矩阵L1行的所有元素,A(:

6、,L2):表示子矩阵是母矩阵L2列的所有元素,A(:,:):矩阵的所有元素。,加例:2-4 A=magic(4)A1=A(1:2,1,2,4)%提取第1,2行;第1,2,4列的元素A2=A(4,1,:)%提取第4,1行的元素,注意先后A(1,3,2,4)=0%第1,3行;第2,4列的元素置零D=A(1,3,2,1,3,3,2,1,3,2,1)%扩充后传递给,11,单下标标识,元素排序:第1列第1行元素,第1列第2行元素第1列最后1行元素,第2列第1行元素,第2列第2行元素第2列最后1行元素如此类推,对于矩阵(m,n)的第i行第j列元素的单下标 k=m(j-1)+i 加例:2-5,12,二、矩阵

7、和数组的算术运算1、矩阵和数组的加减运算,二者没有区别,都是元素间的加减,只是参加加减运算的两个矩阵结构要相同。【例2-4】两个矩阵分别为1 2 3;4 5 6;7 8 9和1 1 1;2 2 2;3 3 3,求两者相加的和。a=1 2 3;4 5 6;7 8 9;b=1 1 1;2 2 2;3 3 3;c=a+b,【例2-5】两个矩阵分别为1 2 3;4 5 6;7 8 9和1 1 1,阶数不同,求两者相减的差。a=1 2 3;4 5 6;7 8 9;b=1 1 1;c=a-b;%错误提示:Matrix dimensions must agree.,13,2、矩阵的乘法*,矩阵乘法运算要符合

8、线性代数矩阵运算的要求:,左边矩阵的列数与右边矩阵的行数相同。,【例2-6】两个矩阵相乘,矩阵a为,矩阵b为,分别计算c=a*b和d=b*a。a=1 2 3;4 5 6;7 8 9;b=1 2 3;c1=a*b%有错误?c2=b*a%有错误?,14,computer 计算机类型,eps 相对精度i,j 复数中的虚数单位pi 圆周率realmax 计算机能够显示的最大浮点数realmin 计算机能够显示的最小浮点数version 字符串格式的MATLAB版本,15,singular 奇异阵Badly scaled 病态阵 inf Matlab用来表示无穷大的专用变量,可以避免零溢出(zero o

9、verflow)Inner matrix dimensions must agree 矩阵相乘出错:维数不对,错误提示信息说明,16,3、数组的乘(.*)、除法(./右除、.左除)数组乘、除法仍是元素间的运算,有时称之为“点运算”。作除数的矩阵其元素应是非零,作除数的标量也应是非零的。,同结构数组间的乘除运算A.*B:A的元素乘以B的对应元素A./B:A的元素除以B的对应元素A.B:B的元素除以A的对应元素数组B与标量c间的乘除运算c.*B=B.*c:B的每一个元素乘以cc./B=B.c:c除以 B的每一个元素c.B=B./c:B的每一个元素除以c,17,【例2-7】两个数组相乘,数组a为,数

10、组b为,求两数组的乘法。a=1 2 3;b=4 5 6;d=5c1=a.*bC2=d.*a,【例2-9】数组a为,数组b为,求两数组的除法。a=1 2 3;b=4 5 6;d=5c=a.bc=b./ac3=d./ac4=d.a,18,4、矩阵的除法/、矩阵除法运算要符合线性代数矩阵运算的要求:,右除a/b:a矩阵列数等于b矩阵列数左除ab:a矩行数等于b矩阵行数作除数的矩阵应是非奇异的,【例2-8】两个矩阵相除,矩阵a和b均为33阶矩阵。a=rand(3)b=rand(3)c=a/bd=ba,19,5、矩阵的幂 ap,a是矩阵,p为标量a是方阵p是大于1的整数时,则a自乘p次当p为负整数时,表

11、示方阵直接自乘p次后的逆当p为0时,将给出和方阵A同维的单位阵。p为小数时,ap=v*d.p/v,v,d=eig(a),a是标量,p为方阵ap=v*ad/v,v,d=eig(p),a是标量,p不为方阵,则ap是错误的,20,【例2-10】矩阵a为1 2;3 4,求它的1.5次幂。a=1 2;3 4;c=a1.5,6、数组的幂 a.p,a是矩阵,p为矩阵,且a与p的结构相同a与p对应位置元素进行幂运算:a(i).p(i)a是矩阵,p为标量a每一个元素与p进行幂运算:a(i).pa是标量,p为矩阵a与p的每一个元素进行幂运算:a.p(i),21,【例2-11】数组a为1 2 3,数组b为4 5 6

12、,求数组的幂c=a.b。a=1 2 3;b=4 5 6;c=a.b,【例2-12】数组a为1 2 3,求数组的幂c=a.2。a=1 2 3;c=a.2,【例2-13】数组a为1 2 3,求数组的幂运算c=2.a。a=1 2 3;c=2.a,22,7、矩阵的转置 a 或 a.a:矩阵a的共轭转置,a.:矩阵a的转置若a是实数矩阵,则a=a.,【例2-14】矩阵a为1 2 3;4 5 6;7 8 9,计算a的转置a=1 2 3;4 5 6;7 8 9;c=a【例2-15】矩阵a为1+2i 3+4i,计算a的转置。a=1+2i 3+4i;c=ac=a.,23,三、关系运算和逻辑运算 MATLAB对此

13、类运算符有如下规定:所有的关系表达式或逻辑表达式中,任何非0数都是“逻辑真”,只有0才是“逻辑假”关系表达式或逻辑表达式的计算结果是一个由0和1组成的“逻辑数组(Logical Array)”,数组中1表示真,0表示假逻辑数组是一种特殊的数值数组,对“数值数组”操作有关命令和函数也适用它;同时又具有自身的特殊用途优先级别:算术运算关系运算逻辑运算,24,1、关系运算两个标量a、b比较:成立为1,反之为0一个标量a和一个数组B比较:a与B中的每一个元素进行比较,运算结果是与B同维的逻辑数组C,C由0和1组成两个同维的数组A、B比较:A与B同位置的元素进行比较,运算结果是与A、B同维的逻辑数组C,

14、C由0和1组成,25,【例2-16】矩阵a和b均为13阶矩阵,使用关系运算符对对应元素进行比较。a=0-1 2;b=-3 1 2;aba=ba=ba=b,26,2、逻辑运算&:逻辑与,对应元素均为非0时,结果为1,否则为0|:逻辑或,对应元素有一个为非0时,结果为1,否则为0:“逻辑非”运算是一元运算符:非0元素的逻辑非为“真”,用1表示;0元素的逻辑量为假,用0表示一个标量a和一个数组B进行逻辑运算:a与B中的每一个元素进行运算,运算结果是与B同维的逻辑数组C,C由0和1组成两个同结构的数组A、B逻辑运算:A与B同位置的元素进行逻辑运算,运算结果是与A、B同维的逻辑数组C,C由0和1组成优先

15、级别:逻辑非逻辑与和逻辑或同级,27,【例2-17】矩阵a和b均为23阶矩阵,使用逻辑运算符计算对应元素。a=1 0 3;0-1 6;b=-1 0 0;0 5 0.3;a&ba|bab,28,3、关系函数与逻辑函数 any(A)判断“向量中元素是否有非0”的函数 若A为向量,则A中至少有一个元素为非0数,函数值为1;所有元素为0,则返回0。若A为矩阵,则按列向量判断,若某列有一个元素为非0,则该列比较结果为1,否则为0。,all(A)判断“向量中所有元素是否都是非0”的函数若A为向量,则A中所有元素为非0数,函数值为1;有一个元素为0,则返回0。若A为矩阵,则按列向量判断,若某列有一个元素为0

16、,则该列比较结果为0,否则为1。,29,find 找出向量或矩阵中非0元素的位置和标识I=find(X)返回X中所有非0元素的位置标识组成的向量,无非0元素则会返回空值。返回的值为非0元素依次纵向计数位置(单下标)。I,J=find(X)返回X的非0元素行和列的标识,其中I是行标识,J是列标识I,J,V=find(X)返回X的非0元素行和列的标识,其中I是行标识,J是列标识,同时将非0元素的值放入列向量V中。,加例:2-6,30,例:2-6A=0 4 8;9 0 2;5 3 7find(A)%返回A中非0元素的单下标号i,j=find(A)i,j,v=find(A)find(A3)A(find

17、(A=0)=-5%将矩阵A中0元素替换为-5pauseC=3 0 4;0 5 7;1 2 3 A(find(A=-5)=C(find(A=-5)%将矩阵A中元素值为-5的替换为C中相应位置上的元素A(find(A=9)=%将矩阵A中元素为9的删除,结果为行向量,31,A CA(find(A=0)=-5相当于:i=find(A=0);a(i)=-5;或相当于:A(A=0)=-5;A(find(A=-5)=C(find(A=-5)相当于:i=find(A=-5);a(i)=c(i)或相当于:A(A=-5)=C(A=-5),32,4、逻辑数组标识矩阵元素逻辑数组L,母矩阵A,L与A的结构相同元素标识

18、格式:A(L),逻辑数组某位置元素“1”表示母矩阵对应位置元素符合标识条件;某位置元素“0”表示母矩阵对应元素不符合标识条件,就是标识母矩阵中某些行、列中满足逻辑数组为“1”的元素。,母矩阵(逻辑数组):提取符合标识条件的元素,标识结果为列矢量。,33,虽然逻辑数组的元素为0或1,但它不同与元素为0或1的“0-1数值矩阵”,“0-1数值矩阵”不能起到对矩阵元素标识的作用,例:2-6_1,5、数值矩阵标识矩阵元素数值矩阵D为m行n列,数值矩阵元素数值k是“1至mn”之间的正整数,k值可以重复,同时母矩阵A与数据矩阵D结构相同,A(D)的结果是矩阵:“结果矩阵”对应位置元素是其在母矩阵中按单下标标

19、识规定的第k个元素,k为数值矩阵对应位置元素的值,34,例:2-6_1 A=zeros(4,4)A(:)=1:16%全元素法赋值L=abs(A)8%L是“logical array”X=A(L)%将A中被矩阵L标识的所有元素赋给矢量XDl=1911 1911 11514 11514 Y=A(Dl)%数值矩阵定位,35,四、矩阵函数,36,37,【例2-19】矩阵a为1 2 3;4 5 6;7 8 9,计算a的逆矩阵和伪逆矩阵。a=1 2 3;4 5 6;7 8 9;c1=inv(a)%逆c2=pinv(a)%伪逆d=det(a)%行列式的值r=rank(a)%秩n=norm(a)%范数e=ex

20、pm(a)%指数 l=logm(a)%对数cd=cond(a)%条件数,38,通用函数(对矩阵元素的函数)三角函数(数据对象单位是弧度)sin正弦 asin反正弦 cos余弦acos反余胘tan正切atan反正切sec正割asec反正割 如果x0是角度,则转为弧度:x*pi/180,加例27:x=60fd=x*pi/180s=sin(fd)as=asin(s)c=cos(fd)ac=acos(c)t=tan(fd)at=atan(t),39,指数函数exp:以e为底的指数 pow2:2的幂次log:自然对数 log10:以10为底的对数log2:以2为底的对数 sqrt:开平方,加例28:t=

21、3et=exp(t)pt=pow2(t)lt=log(et)l10=log10(1000)l2=log2(pt)sq=sqrt(9),40,复数函数abs:绝对值,复数的模angle:相位角 conj:复数的共轭complex(a,b)=a+j*b=a+i*b 构造复数real:复数实部 imag:复数虚部isreal:判断对象是否为实数,结果为逻辑值,加例29:x=3;y=6z=complex(x,y)zab=abs(z)zan=angle(z)zconj=conj(z)zi=imag(z)zr=real(z),41,取整函数fix:朝零方向取整floor:朝负无穷大方向取整,意:地板cei

22、l:朝正无穷大方向取整,意:天花板round:四舍五入到最近的整数sign:符号函数,在信号处理中常用mod:求余数,mod(x,y)=x-floor(x./y).*y rem:除后求余数,与平时结果相同,是整数也可能是小数,42,加例210:p=3.7;n=-3.7fp=fix(p);fn=fix(n)flp=floor(p);fln=floor(n)cp=ceil(p);cn=ceil(n)rp=round(p);rn=round(n)m1=mod(9,2);m11=9-floor(9./2).*2 m2=mod(-9,2);m22=-9-floor(-9./2).*2r1=rem(9,2

23、);r2=rem(-9,2);r3=rem(9.3,2.1)s1=sign(p);s2=sign(0);s3=sign(n),43,五、矩阵分解特征值分解矩阵A的特征矢量与特征值满足A=;将特征矢量合成矩阵V,特征值矩阵对象角上,则AVV。,v,d=eig(a),v是a的特征矢量矩阵,d是a的特征值矩阵,av=vd,d=eig(a),d是a的特征值矢量,v,d=eig(a,b),a和b的广义特征值分解av=bvd,44,【例2-20】矩阵a为1 2 3;4 5 6;7 8 9,矩阵b为-2 1 3;1 4-2;2-1 2,计算a和b的广义特征值分解。a=1 2 3;4 5 6;7 8 9;b=

24、-2 1 3;1 4-2;2-1 2;d0=eig(a)v1,d1=eig(a)v,d=eig(a,b)a*v,45,奇异值分解定义:对于任意矩阵XCmn,存在酉矩阵U=u1,u2,um,V=v1,v2,vn,使得UHXV=diag(1,2,p),酉矩阵u性质:u*u=E,UHXV=S X=USVH,12p0,p=minm,n。,i,ui,vi 分别称为矩阵X的第i个奇异值、左奇异矢量和右奇异矢量,而它们的组合称为奇异值分解三对组。,46,U,S,V=svd(X)产生一个与矩阵X具有相同维数的矩阵S,S对角线元素为递减的非负值(奇异值),同时得到酉矩阵U和V,使得X=U*S*V,奇异值分解是矩

25、阵求秩运算的基础,S=svd(A)得到的向量中非零元素的个数就是矩阵A的秩,奇异值分解对阶数没有限制,矩阵不一定是方阵,奇异值分解常用于最小二乘和数据压缩,47,【例2-21】矩阵a为1 1,对矩阵a进行奇异值分解。a=1 1;u,s,v=svd(a)q1=u*a*vq2=su*u%验证是否酉交阵v*v%验证是否酉交阵,48,LU分解L,U=lu(X)分解为一个上三角矩阵U和一个下三角矩阵L,使得X=L*U。,进行lu分解的X必须是方阵,用于简化大矩阵的行列式值的计算、求逆、解方程矩阵行列式的值det(X)=det(L)*det(U)矩阵求逆inv(X)=inv(U)*inv(L)lu分解允许

26、线性方程组Ax=b进行如下快速运算:x=U(Lb),因为L*U*x=b,49,【例2-22】矩阵a为1 2 3;4 5 6;7 8 9,求a的LU分解。a=1 2 3;4 5 6;7 8 9;l,u=lu(a)l*u=a,cholesky(克劳斯)分解格式:R=chol(X)X为正定矩阵,R是上三角阵,且RR=X正定矩阵:对角线元素是正的,其他元素不太大正定矩阵的cholesky 分解是唯一的,得到的矩阵为:对角线元素为正的上三角阵如X不是正定矩阵,则返回错误信息,50,【例2-23】矩阵a为4阶pascal矩阵,求a的Chollesky分解。a=pascal(4)c=chol(a)c*c=a

27、,QR分解(正交分解)格式:q,r=qr(a)q为酉矩阵,r是与a同阶的上三角阵,且a=q*rq为酉矩阵:q*q=Er为与a同阶的上三角实矩阵a可以不是方阵,51,【例2-24】矩阵a为4阶pascal矩阵,求a的QR分解a=pascal(4)q,r=qr(a)q.*q%验证是否正交阵q*r-a%验证是否相等,52,六、矩阵的特征殊操作特殊矩阵的创建空阵:全0阵:zeros(m,n,p)单位阵:eye(m,n)全1阵:ones(m,n,p)随机阵0到1的随机阵:rand(m,n,p)正态分布的随机阵:randn(m,n,p)m、n、p:表示行数、列数、页数等,53,矩阵的特殊操作重新排列 re

28、shape系统以母矩阵中元素的单下标为准,根据用户指定的行数、列数、页数等参数对母矩阵中的元素重新分配格式:c=reshape(B,m,n,p),母矩阵B的各维阶数之积应等于新矩阵各维阶数之积变换后的元素仍按单下标排序顺序排列,【例2-25】矩阵a为4阶pascal矩阵,将其重新排列为116阶的一维矢量和242阶的三维数组。a=pascal(4)c=reshape(a,1,16)c=reshape(a,2,4,2),54,矩阵的翻转和旋转fliplr:矩阵左右翻转flipud:矩阵上下翻转flipdim(a,k):矩阵a以第k维方向翻转k=1-列方向;k=2-行方向;k=3-页方向rat90:

29、矩阵逆时针900旋转,【例2-26】矩阵a为4阶pascal矩阵,分别将其左右翻转、上下翻转和旋转。a=pascal(4)c=fliplr(a)c=flipud(a)c=rot90(a),55,矩阵的抽取c=diag(a,n)抽取第n条对角线元素,结果为矢量a=diag(c,n)上式的逆操作,矢量c赋给零矩阵a的第n条对角线上 n为对角线编号,0或缺省指主对角线,大于0向上数,小于0向下数,tril(a,n)抽取第n条对角线及以下的元素l:lower triangular parttriu(a,n)抽取第n条对角线及以上的元素 u:upper triangular part,56,【例2-27】矩阵a为4阶pascal矩阵,分别抽取其对角线元素、创建对角矩阵、抽取上三角矩阵和下三角矩阵。a=pascal(4)c=diag(a,1)b=diag(c,1)c=tril(a)c=triu(a,-1),57,矩阵的拼接纵向拼接,矩阵行矢量列数相同 X=A;B;Z横向拼接,矩阵列矢量行数相同 X=A B Z或 X=A,B,Z,58,【补2_11】确定矩阵c和c1的内容a=ones(4,3)b=zeros(4,1)c=a b a ba1=ones(3,4)b1=zeros(1,4)c1=a1;b1;a1;b1,

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号