第2章数组矩阵及其运算

上传人:M****1 文档编号:569969857 上传时间:2024-08-01 格式:PPT 页数:126 大小:1.88MB
返回 下载 相关 举报
第2章数组矩阵及其运算_第1页
第1页 / 共126页
第2章数组矩阵及其运算_第2页
第2页 / 共126页
第2章数组矩阵及其运算_第3页
第3页 / 共126页
第2章数组矩阵及其运算_第4页
第4页 / 共126页
第2章数组矩阵及其运算_第5页
第5页 / 共126页
点击查看更多>>
资源描述

《第2章数组矩阵及其运算》由会员分享,可在线阅读,更多相关《第2章数组矩阵及其运算(126页珍藏版)》请在金锄头文库上搜索。

1、第第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最基础的内容之一,最基础的内容之一,几乎所有的数据都是用数组的形

2、式进行存储的,几乎所有的数据都是用数组的形式进行存储的,这就是这就是MATLABMATLAB又被称为矩阵实验室的原因。又被称为矩阵实验室的原因。 本章将首先介绍数组或矩阵的创建和运算,本章将首先介绍数组或矩阵的创建和运算,然后介绍在理论和工程应用中都十分重要的矩然后介绍在理论和工程应用中都十分重要的矩阵分解,最后介绍矩阵的特征值与特征向量的阵分解,最后介绍矩阵的特征值与特征向量的求解等问题。求解等问题。2.1 数组的创建1 1直接输入法直接输入法(1 1)使用分号,创建一维列数组。)使用分号,创建一维列数组。 D1=pi;log(5);7+2;23 D1=pi;log(5);7+2;23D1

3、=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表示数组的最后一

4、个元素。表示数组的最后一个元素。 如果省略如果省略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)lins

5、pace(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

6、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)% %把均匀分布伪随机发生器置把均匀分布伪随

7、机发生器置为为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) = 0x(3) = 0 % %把上例中的第三个元素重把上例中的第三个元素重新赋值为新赋值为0 0。x =x =

8、 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=

9、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伴随阵 zer

10、os元素全为0的矩阵 diag对角阵 ones元素全为1的矩阵 magic魔方矩阵 rand元素服从均匀分布的随机矩阵 linspace线性空间向量 randn元素服从正态分布的随机矩阵 logspace对数空间向量 eye对角线上元素为1的矩阵(单位矩阵) 找到满足某一条件的矩阵元素称为矩阵元找到满足某一条件的矩阵元素称为矩阵元素的标识。素的标识。 【例【例2-32-3】找出数组】找出数组A A中所有绝对值大于中所有绝对值大于3 3的元素。的元素。2.1.4 矩阵元素的标识矩阵元素的标识 矩阵的赋值可以采用全元素、单下标、双矩阵的赋值可以采用全元素、单下标、双下标等方式。下标等方式。 【例【

11、例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函数函数 加、减运算符为加、减运算符为“+”“+”和和“”。运算规则。运算规则为对应元素相加、减,即按线性代数中矩阵的为对应元素相加、减

12、,即按线性代数中矩阵的“+”“+”、“”运算进行。运算进行。 【例【例2-62-6】加、减运算符示例。】加、减运算符示例。2.2.2 加、减运算加、减运算 乘法运算符为乘法运算符为“*”“*”。运算规则和线性代。运算规则和线性代数中矩阵乘法运算相同,即放在前面的矩阵的数中矩阵乘法运算相同,即放在前面的矩阵的各行元素,分别与放在后面的矩阵的各列元素各行元素,分别与放在后面的矩阵的各列元素对应相乘并相加。对应相乘并相加。 1 1两个矩阵相乘两个矩阵相乘 【例【例2-72-7】矩阵相乘示例。】矩阵相乘示例。 2 2矩阵的数乘:数乘矩阵矩阵的数乘:数乘矩阵 【例【例2-82-8】矩阵的数乘示例。】矩阵

13、的数乘示例。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) %

14、%在在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】计计算算向

15、向量量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 = de

16、conv(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

17、) 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-1

18、62-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检测集合中的元素

19、检测集合中的元素命令格式:命令格式: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

20、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】两个集合交集的非示例。】两个集合交集的非

21、示例。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】两集合的并集

22、示例。】两集合的并集示例。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取集

23、合的单值元素取集合的单值元素 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次

24、方,即次方,即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) 标量的数组乘方标量

25、的数组乘方P P.A A,标量的数组乘方,标量的数组乘方定义为定义为 ;数组乘;数组乘方方A A.P P,表示,表示A A的每个元素的的每个元素的P P次乘方。次乘方。2.3.1 矩阵的比较关系运算矩阵的比较关系运算2.3.2 矩阵的逻辑关系运算矩阵的逻辑关系运算2.3 矩阵的关系运算 矩阵的比较关系是针对于两个矩阵对应元矩阵的比较关系是针对于两个矩阵对应元素的,所以在使用关系运算时,首先应该保证素的,所以在使用关系运算时,首先应该保证两个矩阵的维数一致或其中一个矩阵为标量。两个矩阵的维数一致或其中一个矩阵为标量。 关系运算是对两个矩阵的对应运算进行比关系运算是对两个矩阵的对应运算进行比较。较

26、。 若关系满足,则将结果矩阵中该位置元素若关系满足,则将结果矩阵中该位置元素置为置为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

27、)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(

28、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,

29、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,

30、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) %

31、返回方阵返回方阵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=tra

32、ce (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) %

33、求向量求向量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的列范数的列范数 ,等

34、于,等于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

35、)%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() %countnr

36、m,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

37、-范数的条件数估计范数的条件数估计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

38、,同时,同时显示出关于计算的步骤信息。如果显示出关于计算的步骤信息。如果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)求解特征值

39、的条件数)求解特征值的条件数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 =

40、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)

41、, 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条变换可以将矩阵化成行最简形,条变换可以将矩阵化成行最简形,从而找出列向量组的一个最大无关组,从而找出列向量组的一

42、个最大无关组,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矩阵对角线元素的抽取矩阵对角

43、线元素的抽取命令格式:命令格式: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】上三角阵和下三角阵的

44、抽取】上三角阵和下三角阵的抽取示例。示例。 矩阵的变维有两种方法,即用矩阵的变维有两种方法,即用“:”和函和函数数“reshape”“reshape”,前者主要针对两个已知维数,前者主要针对两个已知维数矩阵之间的变维操作;而后者是对于一个矩阵矩阵之间的变维操作;而后者是对于一个矩阵的操作。的操作。(1 1)“:”变维变维【例【例2-392-39】矩阵变维示例一。】矩阵变维示例一。3 3矩阵的变维矩阵的变维(2 2)ReshapeReshape函数变维函数变维命令格式:命令格式:B = reshape(A,m,n) B = reshape(A,m,n) % %返回以矩返回以矩阵阵A A的元素构成

45、的的元素构成的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

46、(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

47、= 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)复制和平铺矩阵)复制和平铺矩阵命令格式

48、:命令格式: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组成的组成的mn

49、mn矩阵。矩阵。【例【例2-442-44】复制和平铺矩阵示例。】复制和平铺矩阵示例。 对于小数构成的矩阵对于小数构成的矩阵A A来说,如果我们想来说,如果我们想对它取整数,有以下几种方法:对它取整数,有以下几种方法:(1 1)按)按-方向取整方向取整命令格式:命令格式:floor(A) floor(A) % %将将A A中元素按中元素按-方向取整,即取方向取整,即取不足整数。不足整数。5 5矩阵元素的数据变换矩阵元素的数据变换(2 2)按)按+方向取整方向取整命令格式:命令格式:ceil(A) ceil(A) % %将将A A中元素按中元素按+方向取整,即取过剩整方向取整,即取过剩整数。数。(

50、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表示为两个整数矩阵相除,表示为两个整数矩阵相除,即即

51、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=0x=0,则定义,则定义rem(A, 0)=NaNrem(A, 0)=NaN, % %若若x0x0,则整数部分由,则整数部分由fix(A./x)fix(A./x)表示,余数表示,余数C=A-x.*fix (A./x)C=A-x.*fix (A./x)。允许模。允许模x x为

52、小数。为小数。命令格式:命令格式: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】将数】将数值值矩矩阵转阵转化化为为符号矩符号矩阵阵示例。示例。 符号矩阵的索引与修改同数值矩阵的索引符号矩阵的索引与修改同数值矩阵的索引与修改完全相同

53、,即用矩阵的坐标括号表达式与修改完全相同,即用矩阵的坐标括号表达式实现。实现。 【例【例2-492-49】对上例中的矩阵】对上例中的矩阵B B,进行符,进行符号矩阵的索引和修改。号矩阵的索引和修改。 2 2符号矩阵的索引与修改符号矩阵的索引与修改 符号工具箱中提供了符号矩阵因式分解、符号工具箱中提供了符号矩阵因式分解、展开、合并、简化及通分等符号操作函数。展开、合并、简化及通分等符号操作函数。(1 1)因式分解)因式分解命令格式:命令格式:factor(s) factor(s) % %符号表达式符号表达式s s的因式分解函数。的因式分解函数。【例【例2-502-50】将】将 分解因式。分解因式

54、。3 3符号矩阵的简化符号矩阵的简化【例【例2-512-51】问取何值时,齐次方程组】问取何值时,齐次方程组有非有非0 0解?解?(2 2)符号矩阵的展开)符号矩阵的展开命令格式:命令格式:expand(s) %expand(s) %符号表达式符号表达式s s的展开函数。的展开函数。【例【例2-522-52】将、展开。】将、展开。(3 3)同类式合并)同类式合并命令格式:命令格式:Collect(s,v) Collect(s,v) % %将将s s中变量中变量v v的同幂项系数合并。的同幂项系数合并。Collect(s) Collect(s) % s% s是矩阵或表达式,对由是矩阵或表达式,对

55、由findsymfindsym返回的默认变量进行同类项合并。返回的默认变量进行同类项合并。(4 4)符号简化)符号简化 函数函数simplesimple或或simplifysimplify可寻找符号矩阵或可寻找符号矩阵或符号表达式的最简形。符号表达式的最简形。 命令格式:命令格式:simple (s) simple (s) %s%s是矩阵或表达式。是矩阵或表达式。R,how=simple (s) R,how=simple (s) %R%R为返回的最简形,为返回的最简形,howhow为简为简化过程中使用的主要方法。化过程中使用的主要方法。命令格式:命令格式:Pretty(s) %Pretty(s

56、) %使表达式使表达式s s更加精美。更加精美。【例【例2-532-53】计算行列式】计算行列式 的值。的值。 2.6 高 维 数 组2.6.1 高维数组的创建高维数组的创建2.6.2 高维数组的标识高维数组的标识2.6.3 高维数组的操作高维数组的操作 数组的创建可以使用数组的创建可以使用“全下标全下标”元素赋值元素赋值方式,低维数组合成高维数组,用函数构建高方式,低维数组合成高维数组,用函数构建高维数组等方式。维数组等方式。 【例【例2-542-54】使用】使用“全下标全下标”元素赋值方元素赋值方式创建高维数组演示。式创建高维数组演示。2.6.1 高维数组的创建高维数组的创建 【例【例2-

57、552-55】低维数组合成高维数组。】低维数组合成高维数组。 【例【例2-562-56】由函数】由函数ones, zeros, rand, ones, zeros, rand, randnrandn直接创建标准高维数组的示例。直接创建标准高维数组的示例。 【例【例2-572-57】借助】借助cat, repmat, reshapecat, repmat, reshape等函数构建高维数组。等函数构建高维数组。求解维数函数求解维数函数:n = ndims(A)n = ndims(A)求解大小函数:求解大小函数:n = size (A)n = size (A)求解长度函数:求解长度函数:n = l

58、ength (A)n = length (A)【例例2-582-58】维数、大小和长度】维数、大小和长度2.6.2 高维数组的标识高维数组的标识 (1 1)数组元素对称交换函数)数组元素对称交换函数flipdim(A,dim) flipdim(A,dim) 返回返回 A A按数值按数值dimdim翻转的结果,翻转的结果,当当dim=1dim=1时,按时,按“行平分面行平分面”交换对称位置上交换对称位置上的元素,当的元素,当dim=2dim=2时,按时,按“列平分面列平分面”交换对交换对称位置上的元素,称位置上的元素,flipdim(A,1) = flipdim(A,1) = flipud(A)

59、, flipdim(A,2) =fliplr(A)flipud(A), flipdim(A,2) =fliplr(A)。 【例【例2-592-59】数组元素对称交换指令】数组元素对称交换指令flipdimflipdim的使用示例。的使用示例。2.6.3 高维数组的操作高维数组的操作 (2 2)数组的)数组的“维序号左移维序号左移”重组函数重组函数shiftdim(X,n) shiftdim(X,n) 返回数组返回数组X X维数移动维数移动n n后重组的后重组的结果。结果。 当当n n是正数时,维号左移是正数时,维号左移n n位;当位;当n n是负数是负数时,维号右移时,维号右移n n的绝对值位

60、。的绝对值位。 【例【例2-602-60】数组的】数组的“维序号左移维序号左移”重组。重组。 (3 3)广义非共轭转置函数)广义非共轭转置函数permutepermute(A,orderA,order)重组)重组A A的维数,使的维数,使A A按照按照orderorder指定的向量顺序重组。指定的向量顺序重组。 【例【例2-612-61】广义非共轭转置。】广义非共轭转置。 (4 4)孤维函数)孤维函数B = squeeze(A) B = squeeze(A) 返回一返回一个向量个向量B B,它与,它与A A数组元素一致。数组元素一致。 【例【例2-622-62】“孤维孤维”的撤销和降维。的撤销

61、和降维。 【例【例2-632-63】赋】赋“空阵空阵”值操作。值操作。2.7 非数和空数组2.7.1 非数非数NaN2.7.2 空数组空数组 MATLAB MATLAB规定,形如规定,形如0/00/0,inf/infinf/inf,0*inf0*inf(infinf代表无穷)等运算都会产生非数代表无穷)等运算都会产生非数NaNNaN(Not-a-NumberNot-a-Number)。)。 【例【例2-642-64】非数的产生和性质演示。】非数的产生和性质演示。 【例【例2-652-65】非数元素的寻访。】非数元素的寻访。2.7.1 非数非数NaN 当数组的某些维数为当数组的某些维数为0 0时

62、,称该数组为空时,称该数组为空数组。在复杂的计算机中有时会产生空数组,数组。在复杂的计算机中有时会产生空数组,也可以利用空数组对其他数组进行赋值。但要也可以利用空数组对其他数组进行赋值。但要注意:注意: (1 1)空数组与全零元素数组不是一回事;)空数组与全零元素数组不是一回事; (2 2)空数组有时确实是数组,用)空数组有时确实是数组,用whichwhich、whowho、whoswhos可以看出;可以看出; (3 3)可以用命令)可以用命令isemptyisempty来判断一个数组来判断一个数组是否为空数组。是否为空数组。 【例【例2-662-66】关于空数组的算例。】关于空数组的算例。2

63、.7.2 空数组空数组2.8.1 Cholesky分解分解2.8.2 LU分解分解2.8.3 QR分解分解2.8.4 Schur分解分解2.8.5 实实Schur分解转化成复分解转化成复Schur分解分解2.8.6 特征值分解特征值分解2.8.7 奇异值分解奇异值分解2.8.8 广义奇异值分解广义奇异值分解2.8.9 特征值问题的特征值问题的QZ分解分解2.8.10 海森伯格形式的分解海森伯格形式的分解2.8 矩 阵 分 解 常见的矩阵分解有常见的矩阵分解有CholeskyCholesky分解、分解、LULU分解、分解、QRQR分解、分解、SchurSchur分解、复分解、复SchurSchu

64、r分解、特征值分分解、特征值分解、奇异值分解、广义奇异值分解、特征值问解、奇异值分解、广义奇异值分解、特征值问题的题的QZQZ分解和海森伯格形式的分解等。分解和海森伯格形式的分解等。命令格式:命令格式:R = chol(X) R = chol(X) % %如果如果X X为为n n阶对称正定矩阵,阶对称正定矩阵,则存在一个实的非奇异上三角阵则存在一个实的非奇异上三角阵R R, % %满足满足R*R = XR*R = X;若;若X X非正定,非正定,则产生错误信息。则产生错误信息。R,p = chol(X) R,p = chol(X) % %不产生任何错误信息,若不产生任何错误信息,若X X为正定

65、阵,则为正定阵,则p=0p=0,R R与上相同;若与上相同;若X X % %非正定,则非正定,则p p为正整数,为正整数,R R是是有序的上三角阵。有序的上三角阵。【例【例2-672-67】CholeskyCholesky分解示例。分解示例。2.8.1 Cholesky分解分解 矩阵的三角分解又称矩阵的三角分解又称LULU分解,它的目的是分解,它的目的是将一个矩阵分解成一个下三角矩阵将一个矩阵分解成一个下三角矩阵L L和一个上和一个上三角矩阵三角矩阵U U的乘积,即的乘积,即A A= =LULU。命令格式:命令格式:L,U = lu(X) L,U = lu(X) %U%U为上三角阵,为上三角阵

66、,L L为下三角阵为下三角阵或其变换形式,满足或其变换形式,满足LU=XLU=X。L,U,P = lu(X) L,U,P = lu(X) %U%U为上三角阵,为上三角阵,L L为下三角阵,为下三角阵,P P为单位矩阵的行变换矩阵,满足为单位矩阵的行变换矩阵,满足LU=PXLU=PX。 【例【例2-682-68】LULU分解示例。分解示例。2.8.2 LU分解分解 将矩阵将矩阵A A分解成一个正交矩阵与一个上三分解成一个正交矩阵与一个上三角矩阵的乘积。角矩阵的乘积。 (1 1)qrqr函数命令格式:函数命令格式:Q,R = qr(A) Q,R = qr(A) % %求得正交矩阵求得正交矩阵Q Q

67、和上三角阵和上三角阵R R,Q Q和和R R满足满足A=QRA=QR。Q,R,E = qr(A) Q,R,E = qr(A) % %求得正交矩阵求得正交矩阵Q Q和上三角阵和上三角阵R R,E E为单位矩阵的变换形式,为单位矩阵的变换形式,R R的对的对 % %角线元素按大小降序排列,角线元素按大小降序排列,满足满足AE=QRAE=QR。2.8.3 QR分解分解Q,R = qr(A,0) Q,R = qr(A,0) % %产生矩阵产生矩阵A A的的“经济大小经济大小”分分解。解。Q,R,E = qr(A,0)Q,R,E = qr(A,0)%E%E的作用是使得的作用是使得R R的对角线元素的对角

68、线元素降序,且降序,且Q*R=A(:, E)Q*R=A(:, E)。R = qr(A) R = qr(A) % %稀疏矩阵稀疏矩阵A A的分解,只产生一的分解,只产生一个上三角阵个上三角阵R R,满足,满足R*R = A*AR*R = A*A。C,R = qr(A,b)C,R = qr(A,b)% %求稀疏最小二乘问题求稀疏最小二乘问题minimize|Ax-minimize|Ax-b|b|的两步解:的两步解:C,R = qr(A,b)C,R = qr(A,b),x = Rcx = Rc。R = qr(A,0) R = qr(A,0) % %针对稀疏矩阵针对稀疏矩阵A A的经济型分解。的经济型

69、分解。C,R = qr(A,b,0)C,R = qr(A,b,0)% %针对稀疏最小二乘问题的经济针对稀疏最小二乘问题的经济型分解。型分解。(2 2)qrdeleteqrdelete函数命令格式:函数命令格式:Q,R = qrdelete(Q,R,j) Q,R = qrdelete(Q,R,j) % %返回将矩阵返回将矩阵A A的的第第j j列移去后的新矩阵的列移去后的新矩阵的qrqr分解。分解。(3 3)qrinsertqrinsert函数命令格式:函数命令格式:Q,R = qrinsert(Q,R,j,x) Q,R = qrinsert(Q,R,j,x) % %在矩阵在矩阵A A中第中第j

70、 j列列插入向量插入向量x x后的新矩阵进行后的新矩阵进行qrqr分解。若分解。若j j大大 % %于于A A的列数,表的列数,表示在示在A A的最后插入列的最后插入列x x。 【例【例2-692-69】求元素都为正数的矩阵的】求元素都为正数的矩阵的QRQR分解。分解。 【例【例2-702-70】求元素都为负数的矩阵的】求元素都为负数的矩阵的QRQR分解,以及分解,以及qrdeleteqrdelete函数的用法。函数的用法。 【例【例2-712-71】qrinsertqrinsert函数的用法。函数的用法。schurschur函数命令格式:函数命令格式:T = schur(A) T = sch

71、ur(A) % %产生产生schurschur矩阵矩阵T T,即,即T T的主的主对角线元素为特征值的三角阵。对角线元素为特征值的三角阵。T = schur(A,flag) T = schur(A,flag) % %若若A A有复特征根,则有复特征根,则flag=complexflag=complex,否则,否则flag=realflag=real。U,T = schur(A,) U,T = schur(A,) % %返回正交矩阵返回正交矩阵U U和和schurschur矩阵矩阵T T,满足,满足A = U*T*UA = U*T*U。【例例2-722-72】SchurSchur分解示例。分解示

72、例。2.8.4 Schur分解分解rsf2csfrsf2csf函数命令格式:函数命令格式:U,T = rsf2csf (U,T) %U,T = rsf2csf (U,T) %将实将实SchurSchur分解形式转分解形式转化成复化成复SchurSchur分解形式。分解形式。 【例例2-732-73】将实】将实SchurSchur分解形式转化成分解形式转化成复复SchurSchur分解形式示例。分解形式示例。2.8.5 实实Schur分解转化成复分解转化成复Schur分解分解eigeig函数命令格式:函数命令格式:d = eig(A) d = eig(A) % %求矩阵求矩阵A A的特征值的特征

73、值d d,以向量形式存放以向量形式存放d d。d = eig(A,B) d = eig(A,B) %A%A、B B为方阵,求广义为方阵,求广义特征值特征值d d,以向量形式存放,以向量形式存放d d。V,D = eig(A) V,D = eig(A) % %计算计算A A的特征值对角阵的特征值对角阵D D和特和特征向量征向量V V,使,使AV=VDAV=VD成立。成立。V,D = eig(A,nobalance)V,D = eig(A,nobalance)% %当矩阵当矩阵A A中有与中有与截断误差数量级相差不远的值时,该指令截断误差数量级相差不远的值时,该指令 % %可能更精可能更精确。确。

74、nobalancenobalance起误差调节作用。起误差调节作用。2.8.6 特征值分解特征值分解V,D = eig(A,B) V,D = eig(A,B) % %计算广义特征值向量阵计算广义特征值向量阵V V和和广义特征值阵广义特征值阵D D,满足,满足AV=BVDAV=BVD。V,D = eig(A,B,flag)V,D = eig(A,B,flag)% %由由flagflag指定算法计算指定算法计算特征值特征值D D和特征向量和特征向量V V,flagflag的可能值的可能值% %为:为:chol chol 表示对表示对B B使用使用CholeskyCholesky分解算法,这里分解算

75、法,这里A A为对称为对称%Hermitian%Hermitian矩阵,矩阵,B B为正定阵。为正定阵。qz qz 表示使用表示使用QZQZ算算法,这里法,这里A A、B B % %为非对称或非为非对称或非HermitianHermitian矩阵。矩阵。svdsvd函数命令格式:函数命令格式:s = svd (X) s = svd (X) % %返回矩阵返回矩阵X X的奇异值向量。的奇异值向量。U,S,V = svd (X) U,S,V = svd (X) % %返回一个与返回一个与X X同大小的对角矩阵同大小的对角矩阵S S,两个酉矩阵,两个酉矩阵U U和和V V,且满足,且满足= U*S*

76、V= U*S*V。若。若A A % %为为mnmn阵,则阵,则U U为为mmmm阵,阵,V V为为nnnn阵。奇阵。奇 % %异值在异值在S S的对角线上,非负且按的对角线上,非负且按降序排列。降序排列。U,S,V = svd (X,0) U,S,V = svd (X,0) % %得到一个得到一个“有效大小有效大小”的分解,的分解,只计算出矩阵只计算出矩阵U U的前的前n n列,矩阵列,矩阵S S的大小为的大小为nnnn。【例【例2-742-74】svdsvd函数示例。函数示例。 2.8.7 奇异值分解奇异值分解gsvdgsvd函数命令格式:函数命令格式:U,V,X,C,S = gsvd(A,

77、B) U,V,X,C,S = gsvd(A,B) % %返回酉矩阵返回酉矩阵U U和和V V、一、一个普通方阵个普通方阵X X、非负对角矩阵、非负对角矩阵C C和和%S%S,满足,满足A = U*C*XA = U*C*X,B = V*S*XB = V*S*X,C*C + S*S = C*C + S*S = I (II (I为单位矩阵为单位矩阵) );%A%A和和B B的列数必须相同,行数可以不同。的列数必须相同,行数可以不同。U,V,X,C,S = gsvd(A,B,0) %U,V,X,C,S = gsvd(A,B,0) %含义与前面相似。含义与前面相似。sigma = gsvd (A,B)

78、%sigma = gsvd (A,B) %返回广义奇异值返回广义奇异值sigmasigma。【例【例2-752-75】gsvdgsvd函数示例。函数示例。 2.8.8 广义奇异值分解广义奇异值分解qzqz函数命令格式:函数命令格式:AA,BB,Q,Z,V = qz(A,B) AA,BB,Q,Z,V = qz(A,B) %A%A、B B为方阵,产为方阵,产生上三角阵生上三角阵AAAA和和BBBB,正交矩阵,正交矩阵Q Q、Z Z或或 % %其变换形式,其变换形式,V V为特征向量阵,且为特征向量阵,且Q*A*Z= AA Q*A*Z= AA 和和Q*B*Z = BBQ*B*Z = BB。AA,BB

79、,Q,Z,V = qz(A,B,flag) AA,BB,Q,Z,V = qz(A,B,flag) % %产生由产生由flagflag决定决定的分解结果,的分解结果,flagflag取值为:取值为:complexcomplex: % %表示复数分解表示复数分解(默认),取值为(默认),取值为realreal:表示实数分解。:表示实数分解。2.8.9 特征值问题的特征值问题的QZ分解分解 如如果果矩矩阵阵H H的的第第一一子子对对角角线线下下元元素素都都是是0 0,则则H H为为海海森森伯伯格格(HessenbergHessenberg)矩矩阵阵。如如果果矩矩阵阵是是对对称称矩矩阵阵,则则它它的的

80、海海森森伯伯格格形形式式是是对对角角三三角角阵阵。MATLABMATLAB可可以以通通过过相相似似变变换换将将矩矩阵阵变变换换成成这这种形式。种形式。2.8.10 海森伯格形式的分解海森伯格形式的分解hesshess函数命令格式:函数命令格式:H = hess(A) H = hess(A) % %返回矩阵返回矩阵A A的海森伯格的海森伯格形式。形式。P,H = hess(A) P,H = hess(A) %P%P为酉矩阵,满足:为酉矩阵,满足:A A = PHP = PHP 且且PP = eye(size(A)PP = eye(size(A)。【例【例2-762-76】hesshess函数示例

81、。函数示例。2.9.1 特征值与特征向量的求法特征值与特征向量的求法2.9.2 提高特征值的计算精度提高特征值的计算精度2.9.3 复对角矩阵转化为实对角矩阵复对角矩阵转化为实对角矩阵2.9.4 正交基正交基2.9 特征值与特征向量 设设A A为为n n阶方阵,如果数阶方阵,如果数“ ”和和n n维列向维列向量量x x使得关系式使得关系式AxAx= = x x成立,则称成立,则称 为方阵为方阵A A的的特征值,非零向量特征值,非零向量x x称为称为A A对应于特征值对应于特征值“ ”的特征向量。的特征向量。eigeig函数可以求解矩阵的特征值函数可以求解矩阵的特征值和特征向量。和特征向量。 命

82、令格式:命令格式:V,D = eig(A) V,D = eig(A) % %返回返回A A的特征值的特征值D D和对应的特征向和对应的特征向量量V V。2.9.1 特征值与特征向量的求法特征值与特征向量的求法 【例【例2-772-77】求矩阵】求矩阵 的特征值的特征值和特征向量。和特征向量。 【例【例2-782-78】求矩阵】求矩阵 的特征值的特征值和特征向量。和特征向量。balancebalance函数命令格式:函数命令格式:T,B = balance(A) T,B = balance(A) % %求相似变换矩阵求相似变换矩阵T T和平和平衡矩阵衡矩阵B B,满足。,满足。B = balan

83、ce(A) B = balance(A) % %求平衡矩阵求平衡矩阵B B。2.9.2 提高特征值的计算精度提高特征值的计算精度cdf2rdfcdf2rdf函数命令格式:函数命令格式:V,D = cdf2rdf (v,d) V,D = cdf2rdf (v,d) % %将复对角阵将复对角阵d d变为实对变为实对角阵角阵D D,在对角线上,在对角线上, % %用用2222实数块代替共实数块代替共轭复数对。轭复数对。【例【例2-792-79】cdf2rdfcdf2rdf函数示例。函数示例。2.9.3 复对角矩阵转化为实对角矩阵复对角矩阵转化为实对角矩阵orthorth函数命令格式:函数命令格式:B

84、=orth(A) B=orth(A) % %将矩阵将矩阵A A正交规范化,正交规范化,B B的列的列与与A A的列具有相同的空间,的列具有相同的空间, %B%B的列向量是正交向量,且的列向量是正交向量,且满足:满足:B*B = eye(rank(A)B*B = eye(rank(A)。 【例【例2-802-80】将矩阵】将矩阵 正交规范化。正交规范化。2.9.4 正交基正交基2.10 小 结 线性代数问题是科学技术中最常见的数学线性代数问题是科学技术中最常见的数学问题。问题。 很多理论和应用都是建立在线性代数的基很多理论和应用都是建立在线性代数的基础上,因此解决线性代数问题是很有意义的。础上,因此解决线性代数问题是很有意义的。 但经典线性代数的课程中介绍的都是手工但经典线性代数的课程中介绍的都是手工推导的方法,不适合于高阶矩阵的分析和计算,推导的方法,不适合于高阶矩阵的分析和计算,而而MATLABMATLAB在解决矩阵问题有着其它软件所没有在解决矩阵问题有着其它软件所没有的优势。的优势。 本章依次介绍了数组或矩阵的创建和运算,本章依次介绍了数组或矩阵的创建和运算,多种矩阵分解,矩阵的特征值与特征向量的求多种矩阵分解,矩阵的特征值与特征向量的求解等内容。解等内容。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号