1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,3,章,MATLAB,矩阵分析与处理,3.1,特殊矩阵,3.2,矩阵结构变换,3.3,矩阵求逆与线性方程组求解,3.4,矩阵求值,3.5,矩阵的特征值与特征向量,3.6,矩阵的超越函数,3.1,特殊矩阵,3.1.1,通用的特殊矩阵常用的产生通用特殊矩阵的函数有:,zeros,:产生全,0,矩阵,(,零矩阵,),。,ones,:产生全,1,矩阵,(,幺矩阵,),。,eye,:产生单位矩阵。,rand,:产生,0,1,间均匀分布的随机矩阵。,randn,:产生均值为,0,,方差为,1,的标准正态分布随机矩阵
2、例,3.1,分别建立,33,、,32,和与矩阵,A,同样大小的零矩阵。,(1),建立一个,33,零矩阵。,zeros(3)(2),建立一个,32,零矩阵。,zeros(3,2)(3),设,A,为,23,矩阵,则可以用,zeros(size(A,),建立一个与矩阵,A,同样大小零矩阵。,A=1 2 3;4 5 6;%,产生一个,23,阶矩阵,A,zeros(size(A,)%,产生一个与矩阵,A,同样大小的零矩阵,例,3.2,建立随机矩阵:,(1),在区间,20,50,内均匀分布的,5,阶随机矩阵。,(2),均值为,0.6,、方差为,0.1,的,5,阶正态分布随机矩阵。命令如下:,x=20+
3、50-20)*rand(5)y=0.6+sqrt(0.1)*randn(5),此外,常用的函数还有,reshape(A,m,n,),,它在矩阵总元素保持不变的前提下,将矩阵,A,重新排成,mn,的二维矩阵。,例,3.2,建立随机矩阵:,(1),在区间,20,50,内均匀分布的,5,阶随机矩阵。,(2),均值为,0.6,、方差为,0.1,的,5,阶正态分布随机矩阵。命令如下:,x=20+(50-20)*rand(5)y=0.6+sqrt(0.1)*randn(5),此外,常用的函数还有,reshape(A,m,n,),,它在矩阵总元素保持不变的前提下,将矩阵,A,重新排成,mn,的二维矩阵。,
4、3.1.2,用于专门学科的特殊矩阵,(1),魔方矩阵魔方矩阵有一个有趣的性质,其每行、每列及两条对角线上的元素和都相等。对于,n,阶魔方阵,其元素由,1,2,3,n2,共,n2,个整数组成。,MATLAB,提供了求魔方矩阵的函数,magic(n,),,其功能是生成一个,n,阶魔方阵。,例,3.3,将,101125,等,25,个数填入一个,5,行,5,列的表格中,使其每行每列及对角线的和均为,565,。,M=100+magic(5),(2),范得蒙矩阵范得蒙,(,Vandermonde,),矩阵最后一列全为,1,,倒数第二列为一个指定的向量,其他各列是其后列与倒数第二列的点乘积。可以用一个指定向
5、量生成一个范得蒙矩阵。在,MATLAB,中,函数,vander(V,),生成以向量,V,为基础向量的范得蒙矩阵。例如,,A=vander(1;2;3;5),即可得到上述范得蒙矩阵。,(3),希尔伯特矩阵在,MATLAB,中,生成希尔伯特矩阵的函数是,hilb(n,),。使用一般方法求逆会因为原始数据的微小扰动而产生不可靠的计算结果。,MATLAB,中,有一个专门求希尔伯特矩阵的逆的函数,invhilb(n,),,其功能是求,n,阶的希尔伯特矩阵的逆矩阵。,例,3.4,求,4,阶希尔伯特矩阵及其逆矩阵。命令如下:,format rat%,以有理形式输出,H=hilb(4)H=invhilb(4)
6、4),托普利兹矩阵托普利兹,(,Toeplitz,),矩阵除第一行第一列外,其他每个元素都与左上角的元素相同。生成托普利兹矩阵的函数是,toeplitz(x,y,),,它生成一个以,x,为第一列,,y,为第一行的托普利兹矩阵。这里,x,y,均为向量,两者不必等长。,toeplitz(x,),用向量,x,生成一个对称的托普利兹矩阵。例如,T=toeplitz(1:6),(5),伴随矩阵,MATLAB,生成伴随矩阵的函数是,compan(p,),,其中,p,是一个多项式的系数向量,高次幂系数排在前,低次幂排在后。例如,为了求多项式的,x3-7x+6,的伴随矩阵,可使用命令:,p=1,0,-7,
7、6;,compan(p,),(6),帕斯卡矩阵我们知道,二次项,(,x+y)n,展开后的系数随,n,的增大组成一个三角形表,称为杨辉三角形。由杨辉三角形表组成的矩阵称为帕斯卡,(Pascal),矩阵。函数,pascal(n,),生成一个,n,阶帕斯卡矩阵。,例,3.5,求,(x+y),5,的展开式。在,MATLAB,命令窗口,输入命令:,pascal(6),矩阵次对角线上的元素,1,5,10,10,5,1,即为展开式的系数。,3.2,矩阵结构调整变换,3.2.1,对角阵与三角阵,1,对角阵只有对角线上有非,0,元素的矩阵称为对角矩阵,对角线上的元素相等的对角矩阵称为数量矩阵,对角线上的元素都为
8、1,的对角矩阵称为单位矩阵。,(1),提取矩阵的对角线元素设,A,为,mn,矩阵,,diag(A,),函数用于提取矩阵,A,主对角线元素,产生一个具有,min(m,n,),个元素的列向量。,diag(A,),函数还有一种形式,diag(A,k,),,其功能是提取第,k,条对角线的元素。,(2),构造对角矩阵设,V,为具有,m,个元素的向量,,diag(V,),将产生一个,mm,对角矩阵,其主对角线元素即为向量,V,的元素。,diag(V,),函数也有另一种形式,diag(V,k,),,其功能是产生一个,nn(n,=,m+|k,|),对角阵,其第,k,条对角线的元素即为向量,V,的元素。,例,
9、3.6,先建立,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,的每行乘以一个指定常数,2,三角阵三角阵又进一步分为上三角阵和下三角阵,所谓上三角阵,即矩阵的对角线以下的元素全为,0,的一种矩阵,而下三角阵则是对角线以上的元素全为,0,的一种矩阵。,(1),上三角矩阵求矩阵,A,的上三角阵的,MATLAB,函数是,triu(A,),。,triu(A,)
10、函数也有另一种形式,triu(A,k,),,其功能是求矩阵,A,的第,k,条对角线以上的元素。例如,提取矩阵,A,的第,2,条对角线以上的元素,形成新的矩阵,B,。,(2),下三角矩阵在,MATLAB,中,提取矩阵,A,的下三角矩阵的函数是,tril(A,),和,tril(A,k,),,其用法与提取上三角矩阵的函数,triu(A,),和,triu(A,k,),完全相同。,3.2.2,矩阵的转置与旋转,1,矩阵的转置转置运算符是单撇号,(),。,2,矩阵的旋转利用函数,rot90(A,k),将矩阵,A,旋转,90,的,k,倍,当,k,为,1,时可省略。,3,矩阵的左右翻转对矩阵实施左右翻转是将
11、原矩阵的第一列和最后一列调换,第二列和倒数第二列调换,,,依次类推。,MATLAB,对矩阵,A,实施左右翻转的函数是,fliplr(A,),。,4,矩阵的上下翻转,MATLAB,对矩阵,A,实施上下翻转的函数是,flipud(A,),。,3.3,矩阵求逆与线性方程组求解,3.3.1,矩阵的逆与伪逆,对于一个方阵,A,,如果存在一个与其同阶的方阵,B,,使得:,AB=BA=I(I,为单位矩阵,),则称,B,为,A,的逆矩阵,当然,,A,也是,B,的逆矩阵。求一个矩阵的逆是一件非常烦琐的工作,容易出错,但在,MATLAB,中,求一个矩阵的逆非常容易。求方阵,A,的逆矩阵可调用函数,inv(A,),
12、如果矩阵,A,不是一个方阵,或者,A,是一个非满秩的方阵时,矩阵,A,没有逆矩阵,但可以找到一个与,A,的转置矩阵,A,同型的矩阵,B,,使得:,ABA=ABAB=B,此时称矩阵,B,为矩阵,A,的伪逆,也称为广义逆矩阵。在,MATLAB,中,求一个矩阵伪逆的函数是,pinv(A,),。,3.3.2,用矩阵求逆方法求解线性方程组,在线性方程组,Ax=b,两边各左乘,A,-1,,有,A,-1,Ax=A,-1,b,由于,A,-1,A=I,,故得,x=A,-1,b,例,3.8,用求逆矩阵的方法解线性方程组。,命令如下:,A=1,2,3;1,4,9;1,8,27;,b=5,-2,6;,x=,inv
13、A,)*b,也可以运用左除运算符“,”求解线性代数方程组。,3.4,矩阵求值,3.4.1,方阵的行列式把一个方阵看作一个行列式,并对其按行列式的规则求值,这个值就称为所对应的行列式的值。在,MATLAB,中,求方阵,A,所对应的行列式的值的函数是,det(A,),。,3.4.2,矩阵的秩与迹,1,矩阵的秩矩阵线性无关的行数与列数称为矩阵的秩。在,MATLAB,中,求矩阵秩的函数是,rank(A,),。,2,矩阵的迹矩阵的迹等于矩阵的对角线元素之和,也等于矩阵的特征值之和。在,MATLAB,中,求矩阵的迹的函数是,trace(A,),。,3.4.3,向量和矩阵的范数矩阵或向量的范数用来度量矩阵
14、或向量在某种意义下的长度。范数有多种方法定义,其定义不同,范数值也就不同。,1,向量的,3,种常用范数及其计算函数在,MATLAB,中,求向量范数的函数为:,(1),norm(V,),或,norm(V,2),:计算向量,V,的,2,范数。,(2)norm(V,1),:计算向量,V,的,1,范数。,(3),norm(V,inf,),:计算向量,V,的,范数。,2,矩阵的范数及其计算函数,MATLAB,提供了求,3,种矩阵范数的函数,其函数调用格式与求向量的范数的函数完全相同。,3.4.4,矩阵的条件数在,MATLAB,中,计算矩阵,A,的,3,种条件数的函数是:,(1)cond(A,1),计算,
15、A,的,1,范数下的条件数。,(2),cond(A,),或,cond(A,2),计算,A,的,2,范数数下的条件数。,(3),cond(A,inf,),计算,A,的,范数下的条件数。,3.5,矩阵的特征值与特征向量在,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,nobalance,),:与第,2,种格式类似,但第,
16、2,种格式中先对,A,作相似变换后求矩阵,A,的特征值和特征向量,而格式,3,直接求矩阵,A,的特征值和特征向量。,例,3.9,用求特征值的方法解方程。,3x,5,-7x,4,+5x,2,+2x-18=0p=3,-7,0,5,2,-18;A=,compan(p,);%A,的伴随矩阵,x1=,eig(A,)%,求,A,的特征值,x2=,roots(p,)%,直接求多项式,p,的零点,3.6,矩阵的超越函数,1,矩阵平方根,sqrtm,sqrtm(A,),计算矩阵,A,的平方根。,2,矩阵对数,logm,logm(A,),计算矩阵,A,的自然对数。此函数输入参数的条件与输出结果间的关系和函数,sqrtm(A,),完全一样,3,矩阵指数,expm,、,expm1,、,expm2,、,expm3,expm(A,),、,expm1(A),、,expm2(A),、,expm3(A),的功能都求矩阵指数,e,A,。,4,普通矩阵函数,funm,funm(A,fun,),用来计算直接作用于矩阵,A,的由,fun,指定的超越函数值。当,fun,取,sqrt,时,,funm(A,sqrt,),可以计算矩阵,A,的平方根,与,sqrtm(A,),的计算结果一样。,






