收藏 分销(赏)

第2章--MATLAB矩阵及其运算(续).ppt

上传人:仙人****88 文档编号:14749969 上传时间:2026-11-13 格式:PPT 页数:42 大小:273KB 下载积分:10 金币
下载 相关
第2章--MATLAB矩阵及其运算(续).ppt_第1页
第1页 / 共42页
第2章--MATLAB矩阵及其运算(续).ppt_第2页
第2页 / 共42页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,2,讲,MATLAB,矩阵,及其运算(续),2.4,矩阵分析,2.5,矩阵的超越函数,2.6,字符串,2.7,结构数据和单元数据,2.8,稀疏矩阵,作业,-1,P54:1,、,(2);2;3,P55:2;3;5,、,(1),E-mail:lyzhu,教学目的,矩阵创建、分解、提取、反转等基本操作,矩阵运算:求逆、伪逆、行列式、特征值与特征向量,范数,条件数;四则运算和函数运算等,方程组求解:,多项式代数求复数根。,复习,Ones,;,zeros,;,eyes;,diag,;magic;rand;,randn,;,vander(v,);,hilb(n,);,toeplitz(u,v,);,pascal(n,).,length;,ndims,;size;reshape;,numel,-,返回矩阵元素个数,randperm,()-,创建随机行向量,horcat,C=A,B,,水平聚合矩阵,还可以用,cat(1,A,B),vercat,C=A;B,,垂直聚合矩阵,还可以用,cat(2,A,B),repmat(M,v,h,),将矩阵,M,在垂直方向上聚合,v,次,在水平方向上聚合,h,次,blkdiag,(,A,,,B,)以,A,,和,B,为块创建块对角矩阵,Rot90-,旋转矩阵,90,度,逆时针方向,Fliplr,-,沿垂轴翻转矩阵,flipud,-,沿水平轴翻转矩阵,Transpose-,沿主对角线翻转矩阵,ctranspose,-,转置矩阵,也可用,A,或,A.,,这仅当矩阵为复数矩阵时才有区别,矩阵分析,inv,矩阵的逆;,pinv,求伪逆矩阵;,rank,求出矩阵的秩,det,矩阵的行列式值,trace,矩阵对角元素的和,norm,矩阵或矢量的范数,,norm(a,1),norm(a,2),norm(a,Inf,),.,normest,估计矩阵的最大范数矢量,矩阵分解,chol,矩阵的,cholesky,分解;,cholinc,不完全,cholesky,分解;,lu,LU,分解,luinc,不完全,LU,分解;,qr,正交分解,kron,(,A,,,B,),A,为,mn,,,B,为,pq,,则生成,mpnq,的矩阵,,A,的每一个元素都会乘上,B,,并占据,pq,大小的空间,矩阵运算,加、减、乘、除、幂运算,基本初等函数运算:,Ap,对,A,进行幂运算操作,A.P,对,A,中的每一个元素进行操作,注意:标点符号,.,”,的用法,.,用矩阵进行数值计算简介,1,、线性方程组求解;,逆矩阵求解法:,对于矩阵,mn,的矩阵,A,:,a),当,m,n,时,,AX=B,的解 可以用,X,AB,求;,XA=B,的解可以用,X=A/B,求,b),当,mn,时,超定系统,.,至少找到一组解。,如果,A,是奇异的,且,AX=B,有解,可以用伪逆命令:,X,pinv(A)B,返回,最小二乘解,。,(,2,),LU,分解求解:,AX=b,A,LU,,,L,U=,lu(A,),X=U(Lb),即用。,(,3,),QR,正交分解:,是将一矩阵表示为一正交矩阵和一上三角矩阵之积,,A,QRQ,R=,chol(A,),X=Q(Ub),(,4,),cholesky,分解法,:,类似。,2,、特征值,D,eig,(,A,)返回,A,的所有特征值组成的矩阵。,V,D=,eig(A,),还返回特征向量矩阵。,3,、,A,USUT,,,U,S=,schur(A,).,其中,S,的对角线元素为,A,的特征值。,4,、多项式,Matlab,里面的多项式是以向量来表示的,其具体操,作函数如下:,conv,多项式的乘法;,deconv,多项式的除法,,a,b,deconv(s,),,返回商和余数,poly,求多项式的系数(由已知根求多项式的系数),polyeig,求多项式的特征值,Polyfit(x,y,n,),多项式的曲线拟合,,x,,,y,为被拟合的向量,,n,为拟合多项式阶数。,2,矩阵的伪逆,如果矩阵,A,不是一个方阵,或者,A,是一个非满秩的方阵,时,矩阵,A,没有逆矩阵,但可以找到一个与,A,的转置矩阵,A,同型的矩阵,B,,使得:,ABA=ABAB=B,此时称矩阵,B,为矩阵,A,的,伪逆,,也称为,广义逆矩阵,。在,MATLAB,中,求一个矩阵伪逆的函数是,pinv(A,),。,(pseudo inverse),2.4.6,向量和矩阵的范数,矩阵或向量的范数用来度量矩阵或向量在某种意义下的长度。范数有多种方法定义,其定义不同,范数值也就不同。,向量 的范数,:,(1),2,范数,(2),1,范数,(3),范数,1,向量的,3,种常用范数及其计算函数,MATLAB,中,求向量范数的函数为:,(1),norm(V,),或,norm(V,2),:计算向量,V,的,2,范数。,(2),norm(V,1),:计算向量,V,的,1,范数。,(3),norm(V,inf,),:计算向量,V,的,范数。,2,矩阵的范数及其计算函数,设,A,是一个,m,n,的矩阵,,V,是,n,维列向量,定义,则有,其中 为,A,A,最大特征值,MATLAB,提供了求,3,种矩阵范数的函数,其函数调用格式与求向量的范数的函数,完全相同,。,2.4.7,矩阵的条件数,矩阵,A,的,条件数,等于,A,的范数与,A,的逆的范数的乘积,。,在,MATLAB,中,计算矩阵,A,的,3,种条件数的函数是:,(1),cond(A,),或,cond(A,2),计算,A,的,2,范数下的条件数。,(2),cond(A,1),计算,A,的,1,范数数下的条件数。,(3),cond(A,inf,),计算,A,的,范数下的条件数。,例,2-12,用求特征值的方法解方程,3x,5,-7x,4,+5x,2,+2x-18=0,解:,p=3,-7,0,5,2,-18;A=,compan(p,);%A,的伴随矩阵,x1=,eig(A,)%,求,A,的特征值,x1=,2.1837,1.0000+1.0000i,1.0000-1.0000i,-0.9252+0.7197i,-0.9252-0.7197i,x2=,roots(p,)%,直接求多项式,p,的零点,2.5,矩阵的超越函数,1,矩阵平方根,sqrtm,2,矩阵对数,logm,3,矩阵指数,expm,4,通用矩阵函数,funm,2.6,字符串,1,、在,MATLAB,中,,字符串是用单撇号括起来的字符序列,。,2,、,MATLAB,将字符串当作一个行向量,每个元素对应一个字符,其标识方法和数值向量相同。也可以建立多行字符串矩阵。,3,、字符串是以,ASCII,码形式存储的。,4,、,abs,和,double,函数都可以用来获取字符串矩阵所对应的,ASCII,码数值矩阵。,5,、,char,函数可以把,ASCII,码矩阵转换为字符串矩阵。,例,2-13,建立一个字符串向量,然后对该向量做如下处理:,(1),取第,1,5,个字符组成的子字符串。,(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,)%,统计小写字母的个数,Ex:1.,求一个字符串的,ASCII,码。,2.,求一个,ASCII,码所对应的字符。,6,、,与字符串有关的另一个重要函数是,eval,,其 调用格式为:,eval(t,),其中,t,为字符串。它的作用是把字符串的内容 作为对应的,MATLAB,语句来执行。例如,,t=pi;m=,t,sin(t),cos(t,),;y=,eval(m,),y=3.1416 0.0000 -1.0000,2.7,结构数据和单元数据,2.7.1,结构数据,把一组,不同类型,但同时又是在,逻辑上相关,的,数据组成一个有机的整体,以便管理和引用。,比如,要存储学生基本情况数据就可采用结,构数据。,1,结构矩阵的建立与引用,结构矩阵的元素可以是不同的数据类型,它能将一组具有不同属性的数据纳入到一个统一的变量名下进行管理。建立一个结构矩阵可采用,给结构成员赋值,的办法。具体格式为,结构矩阵名,.,成员名,=,表达式,其中表达式应理解为矩阵表达式。,例如,建立一个含有,3,个元素的结构矩阵,a,:,a(1).x1=10;a(1).x2=liu;a(1).x3=11,21;34,78;,a(2).x1=12;a(2).x2=wang;a(2).x3=34,191;27,578;,a(3).x1=14;a(3).x2=cai;a(3).x3=13,890;67,231;,注意:,结构矩阵元素的,成员,也可以是结构数据,。,引用结构矩阵元素的,成员,时,显示其值;,引用结构矩阵,元素,时,显示成员名和它的值,,但成员是矩阵时,不显示具体内容,,,只显示成员矩阵大小参数,;,引用,结构矩阵,时,只显示结构矩阵大小参数和成员名。,2,结构成员的修改,可以根据需要,增加,或,删除,结构的成员。例如要给结构矩阵,a,增加一个成员,x4,,可给,a,中任意一个元素增加成员,x4,:,a(1).x4=,410075,;,但其他成员均为空矩阵,可以使用赋值语句给它赋确定的值。,要删除结构的成员,则可以使用,rmfield,函数来完成。例如,删除成员,x4,:,a=,rmfield(a,x4,);,3,关于结构的函数,除了一般的结构数据的操作外,,MATLAB,还提供了部分函数来进行结构矩阵的操作。,如,:,struct,建立或转换为结构矩阵,getfield,获取结构成员的内容,rmfield,删除结构成员,fieldnames,获取结构成员名,Ex:,用结构体矩阵来存储,5,名学生的基本情况数据,每个学生的数据包括学号、姓名、专业和六门课程的成绩。,2.7.2,单元数据,单元数据也是把不同类型的数据放在一个变量中。,1,单元矩阵的建立与引用,建立,单元矩阵和一般矩阵相似,只是矩阵元素,用大括号括起来,。如,b=10,liu,11,21;34,78;12,wang,.,34,191;27,578;14,cai,13,890;67,231;,b=,10 ,liu,2x2 double,12 ,wang,2x2 double,14 ,cai,2x2 double,可以用带有大括号下标的形式,引用,单元矩阵元素。例如,b3,3,。,单元矩阵的元素可以是结构或单元数据,。,可以使用,celldisp,函数来,显示,整个单元矩阵,如,celldisp(b,),。还可以删除单元矩阵中的某个元素,如,b(3)=,。,b=,Columns 1 through 7,10 12 ,liu,wang,cai,2x2 double 2x2 double,2x2 double,2,关于单元的函数,MATLAB,还提供了部分函数用于单元的操作。如,,celldisp,显示单元矩阵内容,cell2struct,把单元矩阵转换为结构矩阵,cellplot,显示单元矩阵的图形描述,stuct2cell,把结构矩阵转换为单元矩阵,Ex:,建立单元矩阵,B,并回答有关问题,:,B1,1=1;,B1,2=,Brenden,;,B2,1=reshape1:9,3,3;,B2,2=12,34,2;54,21,3;4,23,67;,size(B,),和,ndims(B,),的值分别是多少?,b.B(2),和,B(4),的值分别是多少?,c.B(3)=,和,B3=,执行后,,B,的值分别是多少?,2.8,稀疏矩阵,2.8.1,矩阵存储方式,MATLAB,的矩阵有两种存储方式:,完全存储方式,和,稀疏存储方式,。,1,完全存储方式,完全存储方式是将矩阵的全部元素按列存储。,2,稀疏存储方式,此方式,仅存储矩阵所有的非零元素的值及其位置,,即行号和列号。在,MATLAB,中,稀疏存储方式也是按列存储的。,注意,,在讲稀疏矩阵时,有两个不同的概念,一是指矩阵的,0,元素较多,,该矩阵是一个具有稀疏特征的矩阵,二是指采用稀疏,方式存储,的矩阵。,2.8.2,稀疏存储方式的产生,1,完全存储方式转化为稀疏存储方式,函数,A=,sparse(S,)-,将矩阵,S,转化为稀疏存储方式的矩阵,A,。,当矩阵,S,是稀疏存储方式时,则函数调用相当于,A=S,。,sparse,函数还有其他一些调用格式:,sparse(m,n,),:生成一个,mn,的所有元素都是,0,的稀疏矩阵。,sparse(u,v,S,),:,u,v,S,是,3,个等长的向量。,S,是要建立的稀疏矩阵的非,0,元素,,u(i,),、,v(i,),分别是,S(i,),的行和列下标,该函数建立一个,max(u,),行、,max(v,),列并以,S,为稀疏元素的稀疏矩阵。例如,A=sparse(1,2,5,7,1,3,2,3,1,1,2,4),A=,(1,1)1,(5,2)2,(2,3)1,(7,3)4,此外,还有一些和稀疏矩阵操作有关的函数。例如,u,v,S,=,find(A,),:返回矩阵,A,中非,0,元素的下标和元素。这里产生的,u,v,S,可作为,sparse(u,v,S,),的参数。,full(A,),:返回和稀疏存储矩阵,A,对应的完全存储方式矩阵。,2,产生稀疏存储矩阵,只把要建立的稀疏矩阵的非,0,元素及其所在行和列的位置表示出来后由,MATLAB,自己产生其稀疏存储,这需要使用,spconvert,函数。调用格式为:,B=,spconvert(A,),其中,A,为一个,m3,或,m4,的矩阵,其每行表示一个非,0,元素,,m,是非,0,元素的个数,,A,每个元素的意义是:,(i,1),第,i,个非,0,元素所在的行。,(i,2),第,i,个非,0,元素所在的列。,(i,3),第,i,个非,0,元素值的实部。,(i,4),第,i,个非,0,元素值的虚部,,若矩阵的全部元素都是实数,则无须第四列。该函数将,A,所描述的一个稀疏矩阵转化为一个稀疏存储矩阵。,例,2-15,根据表示稀疏矩阵的矩阵,A,,,产生一个稀疏存储方式矩阵,B,。,解:,A=2,2,1;3,1,-1;4,3,3;5,3,8;6,6,12;B=,spconvert(A,),3,带状稀疏存储矩阵,用,spdiags,函数产生带状稀疏矩阵的稀疏存储,调用格式是:,A=,spdiags(B,d,m,n,),其中,参数,m,n,为原带状矩阵的行数与列数。,B,为,rp,阶矩阵,这里,r=,min(m,n,),,,p,为原带状矩阵所有非零对角线的条数,矩阵,B,的第,i,列即为原带状矩阵的第,i,条非零对角线。,d,为具有,p,个元素的列向量,它的第,i,个元素,为原带状矩阵第,i,条对角线的位置。,4,单位矩阵的稀疏存储,单位矩阵只有对角线元素为,1,,其他元素都为,0,,是一种具有稀疏特征的矩阵。函数,eye,产生一个完全存储方式的单位矩阵。,MATLAB,还有一个产生稀疏存储方式的单位矩阵的函数,这就是,speye,。函数,speye(m,n,),返回一个,mn,的稀疏存储单位矩阵。,2.8.3,稀疏矩阵应用举例,稀疏存储矩阵只是矩阵的存储方式不同,它的运算规则与普通矩阵是一样的。所以,在运算过程中,稀疏存储矩阵可以直接参与运算。当参与运算的对象不全是稀疏存储矩阵时,所得结果一般是完全存储形式。,例,2-16,求下列线性方程组的解,解:,B=1,2,0;1,4,3;2,6,1;1,6,4;0,1,2;%,产生非,0,对角元素,d=-1;0;1;%,产生非,0,对角元素的位置向量,A=spdiags(B,d,5,5);,f=0;3;2;5;1;%,方程右边参数向量,x=(,inv(A,)*f),x=,-2.1667 1.4444 -0.6111 1.0556 -0.0556,
展开阅读全文

开通  VIP、SVIP  下载更划算
下载10份以上建议开通 VIP 会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        关注我们

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服