第2章数组、矩阵及其运算.ppt
第第2章数组、矩阵及其章数组、矩阵及其运算运算第第2 2章数组、矩阵及其运算章数组、矩阵及其运算2.1 2.1 数组的创建数组的创建2.2 2.2 矩阵的代数运算矩阵的代数运算2.3 2.3 矩阵的关系运算矩阵的关系运算2.4 2.4 矩阵运算矩阵运算2.5 2.5 符号矩阵运算符号矩阵运算2.6 2.6 高高 维维 数数 组组2.7 2.7 非数和空数组非数和空数组2.8 2.8 矩矩 阵阵 分分 解解2.9 2.9 特征值与特征向量特征值与特征向量2.10 2.10 小小 结结 数组或矩阵是数组或矩阵是MATLABMATLAB最基础的内容之一,最基础的内容之一,几乎所有的数据都是用数组的形式进行存储的,几乎所有的数据都是用数组的形式进行存储的,这就是这就是MATLABMATLAB又被称为矩阵实验室的原因。又被称为矩阵实验室的原因。本章将首先介绍数组或矩阵的创建和运算,本章将首先介绍数组或矩阵的创建和运算,然后介绍在理论和工程应用中都十分重要的矩然后介绍在理论和工程应用中都十分重要的矩阵分解,最后介绍矩阵的特征值与特征向量的阵分解,最后介绍矩阵的特征值与特征向量的求解等问题。求解等问题。2.1 数组的创建1 1直接输入法直接输入法(1 1)使用分号,创建一维列数组。)使用分号,创建一维列数组。D1=pi;log(5);7+2;23 D1=pi;log(5);7+2;23D1=D1=3.1416 3.1416 1.6094 1.6094 9.0000 9.0000 8.0000 8.0000(2 2)使用空格,创建一维行数组。)使用空格,创建一维行数组。D2=pi log(5)7+2 23 D2=pi log(5)7+2 23D2=D2=3.1416 1.6094 9.0000 8.0000 3.1416 1.6094 9.0000 8.0000 采用通用格式采用通用格式a a:stepstep:b b。其中其中a a表示数组的第一个元素;表示数组的第一个元素;setpsetp表示数组的表示数组的间隔,即步长;间隔,即步长;b b表示数组的最后一个元素。表示数组的最后一个元素。如果省略如果省略stepstep,默认值为,默认值为1 1;如果;如果stepstep是正数,是正数,必须满足必须满足ababab。D3=1:2:10 D3=1:2:10D3=D3=1 3 5 7 9 1 3 5 7 9 D4=1:10 D4=1:10D4=D4=1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 102 2步长生成法步长生成法 在设定了总个数的条件下,均匀采样分布在设定了总个数的条件下,均匀采样分布生成一维行数组。采用通用格式:生成一维行数组。采用通用格式:x xlinspace(a,b,n)linspace(a,b,n)D5=linspace(1,10,5)D5=linspace(1,10,5)D5=D5=1.000 3.2500 5.5000 7.7500 10.0000 1.000 3.2500 5.5000 7.7500 10.00003 3定数线性采样法定数线性采样法 在设定了总个数的条件下,经过在设定了总个数的条件下,经过“常用对常用对数数”采样生成一维行数组。采样生成一维行数组。采用通用格式采用通用格式x xlogspace(a,b,n)logspace(a,b,n),其中,其中a a、b b分别是数组的第一个和最后一个元素,分别是数组的第一个和最后一个元素,n n表示表示个数。个数。D6=logspace(1,2,10)D6=logspace(1,2,10)D6=D6=10.0000 12.9155 16.6810 21.5443 10.0000 12.9155 16.6810 21.5443 27.8256 35.9381 46.4159 59.9484 27.8256 35.9381 46.4159 59.9484 77.4264 100.000077.4264 100.00004 4定数对数采样法定数对数采样法1 1子数组的寻访子数组的寻访rand(state,0)rand(state,0)%把均匀分布伪随机发生器置把均匀分布伪随机发生器置为为0 0状态。状态。x=rand(1,5)x=rand(1,5)%产生(产生(1515)的均布随机数)的均布随机数组。组。x=x=0.9501 0.2311 0.6068 0.4860 0.9501 0.2311 0.6068 0.4860 0.8913 0.8913 x(3)x(3)%寻访数组寻访数组x x的第三个元素的第三个元素ans=ans=0.6068 0.6068 2.1.2 一维数组的子数组寻访和赋值一维数组的子数组寻访和赋值x(3)=0 x(3)=0%把上例中的第三个元素重把上例中的第三个元素重新赋值为新赋值为0 0。x=x=0.9501 0.2311 0 0.4860 0.8913 0.9501 0.2311 0 0.4860 0.8913 x(1 4)=1 1x(1 4)=1 1%把当前把当前x x数组的第一、四数组的第一、四个元素都赋值为个元素都赋值为1 1。x=x=1.0000 0.2311 0 1.0000 0.8913 1.0000 0.2311 0 1.0000 0.8913 2 2子数组的赋值子数组的赋值1 1采用直接输入法创建二维数组采用直接输入法创建二维数组【例【例2-12-1】创建二维数组。】创建二维数组。a=2.7358;b=33/79;a=2.7358;b=33/79;C=1,2*a+i*b,b*squrt(a);sin(pi/4),a+5*C=1,2*a+i*b,b*squrt(a);sin(pi/4),a+5*b,3.5+ib,3.5+i【例【例2-22-2】复数数组的另一种输入方式。】复数数组的另一种输入方式。2.1.3 二维数组(矩阵)的创建二维数组(矩阵)的创建 2 2采用采用MATLABMATLAB中产生矩阵的内部中产生矩阵的内部函数命令创建二维数组函数命令创建二维数组表表表表2-12-1 MATLABMATLAB内部函数内部函数内部函数内部函数产产产产生矩生矩生矩生矩阵阵阵阵命令表命令表命令表命令表函 数功 能函 数功 能compan伴随阵 zeros元素全为0的矩阵 diag对角阵 ones元素全为1的矩阵 magic魔方矩阵 rand元素服从均匀分布的随机矩阵 linspace线性空间向量 randn元素服从正态分布的随机矩阵 logspace对数空间向量 eye对角线上元素为1的矩阵(单位矩阵)找到满足某一条件的矩阵元素称为矩阵元找到满足某一条件的矩阵元素称为矩阵元素的标识。素的标识。【例【例2-32-3】找出数组】找出数组A A中所有绝对值大于中所有绝对值大于3 3的元素。的元素。2.1.4 矩阵元素的标识矩阵元素的标识 矩阵的赋值可以采用全元素、单下标、双矩阵的赋值可以采用全元素、单下标、双下标等方式。下标等方式。【例【例2-42-4】不同赋值方式示例。】不同赋值方式示例。2.1.5 矩阵的寻访和赋值矩阵的寻访和赋值2.2.1 pow2函数函数2.2.2 加、减运算加、减运算2.2.3 乘法乘法2.2.4 集合运算集合运算2.2.5 除法运算除法运算2.2.6 矩阵乘方矩阵乘方2.2 矩阵的代数运算 命令:命令:X=pow2(F,E)X=pow2(F,E),表示,表示 【例【例2-52-5】演示】演示pow2pow2的数组运算性质。的数组运算性质。2.2.1 pow2函数函数 加、减运算符为加、减运算符为“+”“+”和和“”。运算规则。运算规则为对应元素相加、减,即按线性代数中矩阵的为对应元素相加、减,即按线性代数中矩阵的“+”“+”、“”运算进行。运算进行。【例【例2-62-6】加、减运算符示例。】加、减运算符示例。2.2.2 加、减运算加、减运算 乘法运算符为乘法运算符为“*”“*”。运算规则和线性代。运算规则和线性代数中矩阵乘法运算相同,即放在前面的矩阵的数中矩阵乘法运算相同,即放在前面的矩阵的各行元素,分别与放在后面的矩阵的各列元素各行元素,分别与放在后面的矩阵的各列元素对应相乘并相加。对应相乘并相加。1 1两个矩阵相乘两个矩阵相乘 【例【例2-72-7】矩阵相乘示例。】矩阵相乘示例。2 2矩阵的数乘:数乘矩阵矩阵的数乘:数乘矩阵 【例【例2-82-8】矩阵的数乘示例。】矩阵的数乘示例。2.2.3 乘法乘法 维数相同的两个向量的点乘;维数相同的两个向量的点乘;A A.*.*B B表示表示A A与与B B对应元素相乘。对应元素相乘。【例【例2-92-9】点乘示例。】点乘示例。3 3向量的点乘(内积)向量的点乘(内积)命令格式:命令格式:C=dot(A,B)C=dot(A,B)%若若A A、B B为向量,则返回向量为向量,则返回向量A A与与B B的点积,的点积,A A与与B B长长%度相同;若为矩阵,则度相同;若为矩阵,则A A%与与B B有相同的维数。有相同的维数。C=dot(A,B,dim)C=dot(A,B,dim)%在在dimdim维数中给出维数中给出A A与与B B的点的点积。积。4 4向量点积向量点积 在数学上,两向量的叉乘是一个过两相交在数学上,两向量的叉乘是一个过两相交向量的交点且垂直于两向量所在平面的向量。向量的交点且垂直于两向量所在平面的向量。crosscross用来实现求解向量叉乘。用来实现求解向量叉乘。命令格式:命令格式:C=cross(A,B)C=cross(A,B)【例【例2-112-11】计算垂直于向量(】计算垂直于向量(1,2,1,2,3 3)和()和(4,5,64,5,6)的向量。)的向量。5 5向量叉乘向量叉乘 【例例2-122-12】计计算算向向量量a a=(1,=(1,2,2,3)3)、b b=(4,=(4,5,6)5,6)和和c c=(-3,6,-3)=(-3,6,-3)的混合积。的混合积。6 6混合积混合积 命令格式:命令格式:w=conv(u,v)%uw=conv(u,v)%u、v v为向量,其长度可不相同。为向量,其长度可不相同。【例【例2-132-13】展开多项式】展开多项式(s s2 2+2+2s s+2)(+2)(s s+4)(+4)(s s+1)+1)。7 7矩阵的卷积和多项式乘法矩阵的卷积和多项式乘法命令格式:命令格式:q,r=deconv(v,u)%q,r=deconv(v,u)%多项式多项式v v除以多项式除以多项式u u,返回,返回商多项式商多项式q q和余多项式和余多项式r r。【例【例2-142-14】计算多项式的】计算多项式的 卷积。卷积。8 8反褶积(解卷)和多项式除法运算反褶积(解卷)和多项式除法运算命令格式:命令格式:C=kron(A,B)%A C=kron(A,B)%A为为mnmn矩阵,矩阵,B B为为pqpq矩阵,矩阵,则则C C为为mpnqmpnq矩阵。矩阵。【例【例2-152-15】,求,求A BA B。9 9张量积张量积1 1两个集合的交集两个集合的交集命令格式:命令格式:c=intersect(a,b)c=intersect(a,b)%返回向量返回向量a a、b b的的公共部分,即公共部分,即c=abc=ab。c=intersect(A,B,rows)c=intersect(A,B,rows)%A%A、B B为为相同列数相同列数的矩的矩阵阵,返回元素相同的行。,返回元素相同的行。c,ia,ib=intersect(a,b)c,ia,ib=intersect(a,b)%c%c为为a a、b b的公共的公共元素,元素,iaia表示公共元素在表示公共元素在a a中的位置,中的位置,ibib表示公表示公%共元素在共元素在b b中位置。中位置。【例【例2-162-16】两个集合的交集示例。】两个集合的交集示例。2.2.4 集合运算集合运算命令格式:命令格式:k=ismember(a,S)k=ismember(a,S)%当当a a中元素属于中元素属于S S时,时,k k取取1 1,否则,否则,k k取取0 0。k=ismember(A,S,rows)k=ismember(A,S,rows)%A%A、S S有相同的列,行相有相同的列,行相同同k k取取1 1,不相同取,不相同取0 0,同时结果为取值的列向量。,同时结果为取值的列向量。【例【例2-172-17】检测集合中的元素示例。】检测集合中的元素示例。2 2检测集合中的元素检测集合中的元素命令格式:命令格式:c=setdiff(a,b)c=setdiff(a,b)%返回属于返回属于a a但不属于但不属于b b的的不同元素的集合,不同元素的集合,c=a-bc=a-b。c=setdiff(A,B,rows)c=setdiff(A,B,rows)%返回属于返回属于A A但不属于但不属于B B的的不同行。不同行。c,i=setdiff()c,i=setdiff()%c%c与前面一致,与前面一致,i i表示表示c c中元素在中元素在A A中的位置。中的位置。【例【例2-182-18】两集合的差示例。】两集合的差示例。3 3两集合的差两集合的差命令格式:命令格式:c=setxor(a,b)%c=setxor(a,b)%返回集合返回集合a a、b b交集的非。交集的非。c=setxor(A,B,rows)%c=setxor(A,B,rows)%返回矩阵返回矩阵A A、B B交集的非,交集的非,A A、B B有相同列数。有相同列数。c,ia,ib=setxor()%iac,ia,ib=setxor()%ia、ibib表示表示c c中元素分别中元素分别在在a(a(或或A)A)、b(b(或或B)B)中位置。中位置。【例【例2-192-19】两个集合交集的非示例。】两个集合交集的非示例。4 4两个集合交集的非(异或)两个集合交集的非(异或)命令格式:命令格式:c=union(a,b)c=union(a,b)%返回返回a a、b b的并集,即的并集,即c c=ab=ab。c=union(A,B,rows)c=union(A,B,rows)%返回矩阵返回矩阵A A、B B不同行向不同行向量构成的矩阵。量构成的矩阵。c,ia,ib=union()c,ia,ib=union()%ia%ia、ibib分别表示分别表示c c中行中行向量在原矩阵向量在原矩阵(向量向量)中的位置。中的位置。【例【例2-202-20】两集合的并集示例。】两集合的并集示例。5 5两集合的并集两集合的并集命令格式:命令格式:b=unique(a)b=unique(a)%取集合取集合a a的不重复元素的不重复元素构成的向量。构成的向量。b=unique(A,rows)b=unique(A,rows)%返回返回A A、B B不同行元素组不同行元素组成的矩阵。成的矩阵。b,i,j=unique()b,i,j=unique()%i%i、j j体现体现b b中元素在原中元素在原向量(矩阵)中的位置。向量(矩阵)中的位置。【例【例2-212-21】取集合的单值元素。】取集合的单值元素。6 6取集合的单值元素取集合的单值元素 MATLAB MATLAB提供了两种除法运算:左除(提供了两种除法运算:左除()和右除(和右除(/)。)。一般情况下,一般情况下,x x=a a b b是方程是方程a a*x x=b b的解,而的解,而x x=b b/a a是方程是方程x x*a a=b b的解。的解。【例【例2-222-22】除法运算示例。】除法运算示例。2.2.5 除法运算除法运算乘方运算符:乘方运算符:“”“”。运算规则。运算规则。(1 1)当)当A A为方阵,为方阵,P P为大于为大于0 0的整数时,的整数时,A A P P表示表示A A的的P P次方,即次方,即A A自乘自乘P P次;次;P P为小于为小于0 0的的整数时,整数时,A A P P表示表示A A-1-1的的P P次方。次方。2.2.6 矩阵乘方矩阵乘方(2 2)当)当A A为方阵,为方阵,P P为非整数时,则为非整数时,则 ,其中,其中V V为为A A的特征向的特征向 量,量,为特征值对角矩阵。如果有为特征值对角矩阵。如果有重根,以上指令不成立。重根,以上指令不成立。(3 3)标量的矩阵乘方)标量的矩阵乘方PAPA,标量的矩阵乘方定,标量的矩阵乘方定义为,义为,其中其中V V,D D取取 自特征值分解自特征值分解AVAV=ADAD。(4 4)标量的数组乘方标量的数组乘方P P.A A,标量的数组乘方,标量的数组乘方定义为定义为 ;数组乘;数组乘方方A A.P P,表示,表示A A的每个元素的的每个元素的P P次乘方。次乘方。2.3.1 矩阵的比较关系运算矩阵的比较关系运算2.3.2 矩阵的逻辑关系运算矩阵的逻辑关系运算2.3 矩阵的关系运算 矩阵的比较关系是针对于两个矩阵对应元矩阵的比较关系是针对于两个矩阵对应元素的,所以在使用关系运算时,首先应该保证素的,所以在使用关系运算时,首先应该保证两个矩阵的维数一致或其中一个矩阵为标量。两个矩阵的维数一致或其中一个矩阵为标量。关系运算是对两个矩阵的对应运算进行比关系运算是对两个矩阵的对应运算进行比较。较。若关系满足,则将结果矩阵中该位置元素若关系满足,则将结果矩阵中该位置元素置为置为1 1,否则置,否则置0 0。MATLAB MATLAB的各种比较关系运算如表的各种比较关系运算如表2-22-2所示。所示。2.3.1 矩阵的比较关系运算矩阵的比较关系运算表表表表2-22-2手工清洗工具手工清洗工具手工清洗工具手工清洗工具运算符含 义运算符含 义大于关系=大于或等于关系 A=1 1 0;0 0 2;0 0-A=1 1 0;0 0 2;0 0-1;Y=expm(A)1;Y=expm(A)(3 3)方阵的函数)方阵的函数funmfunm。命令格式:命令格式:F=funm(A,fun)F=funm(A,fun)%A%A为方阵,计算由为方阵,计算由funfun指定的指定的A A的矩阵函数,的矩阵函数,funfun可以是任意基本函数,如可以是任意基本函数,如%sin%sin、coscos等,例如:等,例如:funm(A,exp)=expm(A)funm(A,exp)=expm(A)。F,esterr=funm(A,fun)F,esterr=funm(A,fun)%esterr%esterr为结果所产生为结果所产生的相对误差的估计值。的相对误差的估计值。(4 4)矩阵的方根函数)矩阵的方根函数 sqrtm sqrtm。命令格式:命令格式:X=sqrtm(A)X=sqrtm(A)%矩阵矩阵A A的平方根的平方根A1/2A1/2,相当于,相当于X*X=AX*X=A,求,求X X。若。若A A的特征值有非负实部,的特征值有非负实部,%则则X X是唯一的;若是唯一的;若A A的特征值有负的实部,则的特征值有负的实部,则X X为复为复矩阵;若矩阵;若A A为奇异矩为奇异矩%阵,则阵,则X X不存在。不存在。X,resnorm=sqrtm(A)X,resnorm=sqrtm(A)%resnorm%resnorm为结果产生的相对误差。为结果产生的相对误差。X,alpha,condest=sqrtm(A)X,alpha,condest=sqrtm(A)%alpha%alpha为为稳定因子,稳定因子,condestcondest为结果条件数的估计值。为结果条件数的估计值。(5 5)矩阵)矩阵A A的多项式函数的多项式函数 polyval polyval。命令格式:命令格式:polyval(P,A)%Ppolyval(P,A)%P为多项式系数向为多项式系数向量,方阵量,方阵A A为多项式变量,返回多项式值。为多项式变量,返回多项式值。【例【例2-292-29】p,S=polyfit(1:10,(1:10)p,S=polyfit(1:10,(1:10)+normrnd(0,0.1,1,10),1);+normrnd(0,0.1,1,10),1);矩阵转置运算符:矩阵转置运算符:“”“”。运算规则:若矩阵运算规则:若矩阵A A的元素为实数,则与的元素为实数,则与线性代数中矩阵的转置相同;若线性代数中矩阵的转置相同;若A A为复数矩阵,为复数矩阵,则则A A转置后的元素由转置后的元素由A A对应元素的共轭复数构成。对应元素的共轭复数构成。若仅希望转置,则用如下命令:若仅希望转置,则用如下命令:A A.。【例【例2-302-30】两种不同转置的比较。】两种不同转置的比较。2.4.2 矩阵转置矩阵转置命令格式:命令格式:d=det(X)%d=det(X)%返回方阵返回方阵X X的多项式的的多项式的值值【例【例2-312-31】求方阵的行列式。】求方阵的行列式。2.4.3 方阵的行列式方阵的行列式求解方阵的逆矩阵的命令格式:求解方阵的逆矩阵的命令格式:Y=inv(X)Y=inv(X)%求方阵求方阵X X的逆矩阵。若的逆矩阵。若X X为奇异阵为奇异阵或近似奇异阵,将给出警告信息。或近似奇异阵,将给出警告信息。【例【例2-322-32】求】求 的逆矩阵。的逆矩阵。【例【例2-332-33】求矩阵】求矩阵A A的逆矩阵。的逆矩阵。【例【例2-342-34】求矩阵】求矩阵A A的伪逆。的伪逆。2.4.4 逆与伪逆逆与伪逆命令格式:命令格式:b=trace(A)b=trace(A)%返回矩阵返回矩阵A A的迹,即的迹,即A A的对角的对角线元素之和。线元素之和。2.4.5 矩阵的迹矩阵的迹求解向量的范数求解向量的范数normnorm函数的命令格式:函数的命令格式:n=norm(X)n=norm(X)%X%X为向量,求欧几里德范数,为向量,求欧几里德范数,即即 。n=norm(X,inf)%n=norm(X,inf)%求求-范数,即范数,即 。n=norm(X,1)n=norm(X,1)%求求1-1-范数,即范数,即 。n=norm(X,-inf)%n=norm(X,-inf)%求向量求向量X X的元素的绝对值的最的元素的绝对值的最小值,即小值,即 。n=norm(X,p)n=norm(X,p)%求求p-p-范数,即范数,即 ,所以所以norm(X,2)=norm(X)norm(X,2)=norm(X)。2.4.6 矩阵和向量的范数矩阵和向量的范数解矩阵的范数解矩阵的范数normnorm函数的命令格式:函数的命令格式:n=norm(A)n=norm(A)%A%A为矩阵,求欧几里德范数为矩阵,求欧几里德范数 ,等于,等于A A的最大奇异值。的最大奇异值。n=norm(A,1)n=norm(A,1)%求求A A的列范数的列范数 ,等于,等于A A列向量列向量的的1-1-范数的最大值。范数的最大值。n=norm(A,2)n=norm(A,2)%求求A A的欧几里德范数的欧几里德范数 ,和,和norm(A)norm(A)相同。相同。n=norm(A,inf)n=norm(A,inf)%求行范数,等于求行范数,等于A A行向量的行向量的1-1-范数范数的最大值,即:的最大值,即:%max(sum(abs(A)%max(sum(abs(A)。n=norm(A,fro)n=norm(A,fro)%求矩阵求矩阵A A的的FrobeniusFrobenius范数范数 ,即,即%sqrt(sum(diag(A*A)%sqrt(sum(diag(A*A),%不能用矩阵不能用矩阵p-p-范数的定义来求。范数的定义来求。求解范数的估计值求解范数的估计值normestnormest函数的命令格式:函数的命令格式:nrm=normest(A)nrm=normest(A)%矩阵矩阵A A的的2-2-范数范数(欧几欧几里德范数里德范数)的估计值,相对误差小于的估计值,相对误差小于10106 6。nrm=normest(A,tol)nrm=normest(A,tol)%tol%tol为指定相对误差。为指定相对误差。nrm,count=normest()%countnrm,count=normest()%count给出计算估计给出计算估计值的迭代次数。值的迭代次数。(1 1)求解矩阵的条件数)求解矩阵的条件数condcond函数的命令函数的命令格式。格式。c=cond(X)c=cond(X)%求求X X的的2-2-范数的条件数,即范数的条件数,即X X的最的最大奇异值和最小奇异值的商。大奇异值和最小奇异值的商。c=cond(X,p)%c=cond(X,p)%求求p-p-范数的条件数,范数的条件数,p p的值可以的值可以是是1 1、2 2、infinf或者或者frofro。2.4.7 条件数条件数 (2 2)求解)求解1-1-范数的条件数估计范数的条件数估计condestcondest函函数的命令格式。数的命令格式。c=condest(A)%c=condest(A)%方阵方阵A A的的1-1-范数的条件数的范数的条件数的下界估值。下界估值。c,v=condest(A)c,v=condest(A)%v%v为向量,满足,为向量,满足,%即即norm(A*v,1)norm(A*v,1)=norm(A,1)*norm(v,1)/c=norm(A,1)*norm(v,1)/c。c,v=condest(A,t)c,v=condest(A,t)%求上面的求上面的c c和和v v,同时,同时显示出关于计算的步骤信息。如果显示出关于计算的步骤信息。如果t=1t=1,%计算的每步都显示出来;如果计算的每步都显示出来;如果t=-1t=-1,则给出商,则给出商c/rcond(A)c/rcond(A)。(3 3)求解矩阵可逆的条件数估值)求解矩阵可逆的条件数估值rcondrcond函函数的命令格式。数的命令格式。c=rcond(A)c=rcond(A)%对于差条件矩阵对于差条件矩阵A A来说,给来说,给出一个接近于出一个接近于0 0的数;对于好条件矩阵的数;对于好条件矩阵A A%则给出一个接近于则给出一个接近于1 1的数。的数。(4 4)求解特征值的条件数)求解特征值的条件数condeigcondeig函数的命令函数的命令格式。格式。c=condeig(A)%c=condeig(A)%返回矩阵返回矩阵A A特征值的特征值的条件数。条件数。V,D,c=condeig(A)V,D,c=condeig(A)%D%D为为A A的特征值对角阵,的特征值对角阵,V V为为A A的特征向量。的特征向量。矩阵矩阵A A的秩是矩阵的秩是矩阵A A中最高阶非零子式的阶中最高阶非零子式的阶数;向量组的秩通常由该向量组构成的矩阵来数;向量组的秩通常由该向量组构成的矩阵来计算。计算。命令格式:命令格式:k=rank(A)k=rank(A)%求矩阵求矩阵A A的秩。的秩。k=rank(A,tol)k=rank(A,tol)%tol%tol为给定误差。为给定误差。2.4.8 矩阵的秩矩阵的秩 判断向量组的线性相关性只需要先求出向判断向量组的线性相关性只需要先求出向量组的秩,如果秩小于向量个数则说明向量组量组的秩,如果秩小于向量个数则说明向量组线性相关。线性相关。【例【例2-352-35】求向量组】求向量组 1=(1 1=(1 2 2 3)2 2 3),2=(2=(2 4 2 4 1 3)1 3),3=(3=(1 2 0 3)1 2 0 3),4=(0 6 4=(0 6 2 3)2 3),5=(2 5=(2 6 3 4)6 3 4)的秩,并判断其线性相的秩,并判断其线性相关性。关性。2.4.9 向量组的线性相关性向量组的线性相关性 行阶梯使用初等行变换,矩阵的初等行变行阶梯使用初等行变换,矩阵的初等行变换有换有3 3条:条:(1 1)交换两行)交换两行 (第(第i i、第、第j j两行交换);两行交换);(2 2)第)第i i行的行的k k倍,即倍,即 。(3 3)第)第i i行的行的k k倍加到第倍加到第j j行上去,即行上去,即 。通过这通过这3 3条变换可以将矩阵化成行最简形,条变换可以将矩阵化成行最简形,从而找出列向量组的一个最大无关组,从而找出列向量组的一个最大无关组,MATLABMATLAB将矩阵化成行最简形的命令是将矩阵化成行最简形的命令是rrefrref或或rrefmovierrefmovie。2.4.10 行阶梯矩阵及向量组的基行阶梯矩阵及向量组的基 【例【例2-362-36】求向量组】求向量组a a1=(1,-2,2,3)1=(1,-2,2,3),a a2=2=(-2,4,-1,3)(-2,4,-1,3),a a3=(-1,2,0,3)3=(-1,2,0,3),a a4=(0,6,2,3)4=(0,6,2,3),a a5=(2,-6,3,4)5=(2,-6,3,4)的一个最大无关组。的一个最大无关组。1 1矩阵对角线元素的抽取矩阵对角线元素的抽取命令格式:命令格式:X=diag(v,k)%X=diag(v,k)%以向量以向量v v的元素作的元素作为为矩矩阵阵X X的第的第k k条条对对角角线线元素,当元素,当k=0k=0时时,v v为为X X%的主的主对对角角线线;当;当k0k0时时,v v为为上方第上方第k k条条对对角角线线;当;当k0k0%k0:抽取上方第:抽取上方第k k条条对对角角线线元素;元素;k0k0k0为主。为主。%对角线以上;对角线以上;k0k0k0为主。为主。%对角线以上;对角线以上;k0k0为主对角为主对角线以下。线以下。【例【例2-382-38】上三角阵和下三角阵的抽取】上三角阵和下三角阵的抽取示例。示例。矩阵的变维有两种方法,即用矩阵的变维有两种方法,即用“:”和函和函数数“reshape”“reshape”,前者主要针对两个已知维数,前者主要针对两个已知维数矩阵之间的变维操作;而后者是对于一个矩阵矩阵之间的变维操作;而后者是对于一个矩阵的操作。的操作。(1 1)“:”变维变维【例【例2-392-39】矩阵变维示例一。】矩阵变维示例一。3 3矩阵的变维矩阵的变维(2 2)ReshapeReshape函数变维函数变维命令格式:命令格式:B=reshape(A,m,n)B=reshape(A,m,n)%返回以矩返回以矩阵阵A A的元素构成的的元素构成的mnmn矩阵矩阵B B。B=reshape(A,m,n,p,)B=reshape(A,m,n,p,)%将矩阵将矩阵A A变维为变维为mnpmnp。B=reshape(A,m n p)B=reshape(A,m n p)%同上。同上。B=reshape(A,siz)B=reshape(A,siz)%由由sizsiz决定变维的大小,元素个数与决定变维的大小,元素个数与A A中元素个数相同。中元素个数相同。【例【例2-402-40】矩阵变维示例二。】矩阵变维示例二。(1 1)矩阵旋转)矩阵旋转命令格式:命令格式:B=rot90(A)%B=rot90(A)%将矩阵将矩阵A A逆时针方向旋转逆时针方向旋转9090。B=rot90(A,k)%B=rot90(A,k)%将矩阵将矩阵A A逆时针方向旋转逆时针方向旋转(k90)(k90),k k可取正负整数。可取正负整数。【例【例2-412-41】矩阵旋转示例。】矩阵旋转示例。4 4矩阵的变向矩阵的变向(2 2)矩阵的左右翻转)矩阵的左右翻转命令格式:命令格式:B=fliplr(A)B=fliplr(A)%将矩阵将矩阵A A左右翻转。左右翻转。(3 3)矩阵的上下翻转)矩阵的上下翻转命令格式:命令格式:B=flipud(A)B=flipud(A)%将矩阵将矩阵A A上下翻转。上下翻转。【例【例2-422-42】矩阵翻转示例。】矩阵翻转示例。(4 4)按指定维数翻转矩阵)按指定维数翻转矩阵命令格式:命令格式:B=flipdim(A,dim)%flipdim(A,1)=B=flipdim(A,dim)%flipdim(A,1)=flipud(A)flipud(A),并且,并且flipdim(A,2)=fliplr(A)flipdim(A,2)=fliplr(A)。【例【例2-432-43】按指定维数翻转矩阵示例。】按指定维数翻转矩阵示例。(5 5)复制和平铺矩阵)复制和平铺矩阵命令格式:命令格式:B=repmat(A,m,n)B=repmat(A,m,n)%将矩阵将矩阵A A复制复制mnmn块,块,即即B B由由mnmn块块A A平铺而成。平铺而成。B=repmat(A,m n)B=repmat(A,m n)%与上面一致。与上面一致。B=repmat(A,m n p)B=repmat(A,m n p)%B%B由由mnpmnp个个A A块块平铺而成。平铺而成。B=repmat(A,m,n)B=repmat(A,m,n)%当当A A是一个数是一个数a a时,该时,该命令产生一个全由命令产生一个全由a a组成的组成的mnmn矩阵。矩阵。【例【例2-442-44】复制和平铺矩阵示例。】复制和平铺矩阵示例。对于小数构成的矩阵对于小数构成的矩阵A A来说,如果我们想来说,如果我们想对它取整数,有以下几种方法:对它取整数,有以下几种方法:(1 1)按)按-方向取整方向取整命令格式:命令格式:floor(A)floor(A)%将将A A中元素按中元素按-方向取整,即取方向取整,即取不足整数。不足整数。5 5矩阵元素的数据变换矩阵元素的数据变换(2 2)按)按+方向取整方向取整命令格式:命令格式:ceil(A)ceil(A)%将将A A中元素按中元素按+方向取整,即取过剩整方向取整,即取过剩整数。数。(3 3)四舍五入取整)四舍五入取整命令格式:命令格式:round(A)round(A)%将将A A中元素按最近的整数取整,即中元素按最近的整数取整,即四舍五入取整。四舍五入取整。(4 4)按离)按离0 0近的方向取整近的方向取整命令格式:命令格式:fix(A)fix(A)%将将A A中元素按离中元素按离0 0近的方向取整近的方向取整【例【例2-452-45】矩阵元素取整示例。】矩阵元素取整示例。(5 5)矩阵的有理数形式)矩阵的有理数形式命令格式:命令格式:n,d=rat(A)%n,d=rat(A)%将将A A表示为两个整数矩阵相除,表示为两个整数矩阵相除,即即A=n./dA=n./d。【例【例2-462-46】对于上例中的】对于上例中的A A,求矩阵的,求矩阵的有理数形式。有理数形式。(6 6)矩阵元素的余数)矩阵元素的余数命令格式:命令格式:C=rem(A,x)%C=rem(A,x)%表示表示A A矩阵除以模数矩阵除以模数x x后的余数。后的余数。若若x=0 x=0,则定义,则定义rem(A,0)=NaNrem(A,0)=NaN,%若若x0 x0,则整数部分由,则整数部分由fix(A./x)fix(A./x)表示,余数表示,余数C=A-x.*fix(A./x)C=A-x.*fix(A./x)。允许模。允许模x x为小数。为小数。命令格式:命令格式:n=numel(A)%n=numel(A)%计算矩阵计算矩阵A A中元素的个数中元素的个数【例【例2-472-47】求矩阵元素的个数。】求矩阵元素的个数。6 6矩阵元素个数的确定矩阵元素个数的确定2.5 符号矩阵运算1 1将数值矩阵转化为符号矩阵将数值矩阵转化为符号矩阵命令格式:命令格式:B=sym(A)%B=sym(A)%将将A A转转化化为为符号矩符号矩阵阵B B。【例【例2-482-48】将数】将数值值矩矩阵转阵转化化为为符号矩符号矩阵阵示例。示例。符号矩阵的索引与修改同数值矩阵的索引符号矩阵的索引与修改同数值矩阵的索引与修改完全相同,即用矩阵的坐标括号表达式与修改完全相同,即用矩阵的坐标括号表达式实现。实现。【例【例2-492-49】对上例中的矩阵】对上例中的矩阵B B,进行符,进行符号矩阵的索引和修改。号矩阵的索引和修改。2 2符号矩阵的索引与修改符号矩阵的索引与修改 符号工具箱中提供了符号矩阵因式分解、符号工具箱