收藏 分享(赏)

第章Matlab中的矩阵及其运算.doc

上传人:dreamzhangning 文档编号:5750380 上传时间:2019-03-15 格式:DOC 页数:19 大小:66.50KB
下载 相关 举报
第章Matlab中的矩阵及其运算.doc_第1页
第1页 / 共19页
第章Matlab中的矩阵及其运算.doc_第2页
第2页 / 共19页
第章Matlab中的矩阵及其运算.doc_第3页
第3页 / 共19页
第章Matlab中的矩阵及其运算.doc_第4页
第4页 / 共19页
第章Matlab中的矩阵及其运算.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

1、 第 3 章 Matlab 中的矩阵及其运算矩阵是数学中一个十分重要的概念,其应用能够十分广泛,Matlab 中最基本最重要的功能就是进行矩阵运算,其所有数值功能都已矩阵为基本单元来实现,掌握 Matlab 中的矩阵运算是十分重要的。关键词:Matlab 矩阵 特殊矩阵 一、矩阵的生成1、矩阵生成有多种方式,通常使用的有四种:(1) 在命令窗口中直接输入矩阵(2) 通过语句和函数产生矩阵(3) 在 M 文件中建立矩阵(4) 从外部的数据文件中导入矩阵其中第一种是最简单常用的创建数值矩阵的方法,较适合创建较小的简单矩阵。把矩阵的元素直接排列到方括号中,每行内元素用空格或逗号相隔,行与行之间的内容

2、用分号相隔。如:matrix=1,1,1,1;2,2,2,2;3,3,3,3;4,4,4,4 %逗号形式相隔matrix =1 1 1 12 2 2 23 3 3 34 4 4 4matrix=1 1 1 1;2 2 2 2 ;3 3 3 3;4 4 4 4 %采用空格形式相隔matrix =1 1 1 12 2 2 23 3 3 34 4 4 42、特殊矩阵的生成1、 零矩阵和全1 矩阵零矩阵指各个元素都为零的矩阵。(1) A=zeros(M,N)命令中,A 为要生成的零矩阵,M 和 N 分别为生成矩阵的行和列。(2) 若存在已知矩阵 B,要生成与 B维数相同的矩阵,可以使用命 令A=zer

3、os(size(B)。(3) 要生成方阵时,可使用命令A=zeros(N) 来生成 N 阶方针。全 1 矩阵用ones 函数实现。A=zeros(4,5)A =0 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 0B=1 2 3 4 5 ;2 3 4 5 6 ;9 8 7 6 5 ;8 7 6 5 4B =1 2 3 4 52 3 4 5 69 8 7 6 58 7 6 5 4A=zeros(size(B)A =0 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 0A=zeros(5)A =0 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0

4、 00 0 0 0 0C=ones(5,6)C =1 1 1 1 1 11 1 1 1 1 11 1 1 1 1 11 1 1 1 1 11 1 1 1 1 1C=ones(3)C =1 1 11 1 11 1 12、单位矩阵的生成(1) A=eye(M,N)命令,可生成单位矩阵,M 和 N 分别为生成单位矩阵的行和列。(2) 若存在已知矩阵 B,要生成一个 与 B 维数相同的单位矩 阵,可以使用命令A=eye(size(B)。(3) 也可以使用A=eye(N)来生成 N 阶方阵。A=eye(4,5)A =1 0 0 0 00 1 0 0 00 0 1 0 00 0 0 1 0A=eye(si

5、ze(B) %B 与上例相同A =1 0 0 0 00 1 0 0 00 0 1 0 00 0 0 1 0A=eye(4)A =1 0 0 00 1 0 00 0 1 00 0 0 13 对角矩阵的生成对角矩阵指的是对角线上的元素为任意数,其它元素为0 的矩阵。(1) A=diag(V,K)命令中,V 为某个向量,K 为向量 V偏离主对角线的列数。K=0时表示 V 为主对角线;K0 的数时表示 V 在主对角线上;K0 表示矩阵的主对角线K 列以上的部分;K0 或 N=2 除外。magic(2)ans =1 34 2magic(3)ans =8 1 63 5 74 9 2magic(4)ans

6、=16 2 3 135 11 10 89 7 6 124 14 15 17、Hilbert 矩阵和 反 Hilbert 矩阵的生成Hilbert 矩阵是有名的病态 矩阵,它的第 i 行第 j 列的元素值为 1/(i+j-1)。(1) hilb(N)命令生成 N阶的 Hilbert 矩阵。(2) invhilb(N)命令生成 N阶反 Hilbert 矩阵。A=hilb(5)A =1.0000 0.5000 0.3333 0.2500 0.20000.5000 0.3333 0.2500 0.2000 0.16670.3333 0.2500 0.2000 0.1667 0.14290.2500 0

7、.2000 0.1667 0.1429 0.12500.2000 0.1667 0.1429 0.1250 0.1111B=invhilb(5)B =25 -300 1050 -1400 630-300 4800 -18900 26880 -126001050 -18900 79380 -117600 56700-1400 26880 -117600 179200 -88200630 -12600 56700 -88200 44100C=A*BC =1.0000 0 0 0 00 1.0000 0 0 00 0 1.0000 -0.0000 00 0 0 1.0000 00 0 0 0 1.0

8、0008、Hadamard 矩阵Hadamard 矩阵为元素 1 或-1 组成,并且满足条件 H*H=N*I, Hadamard 矩阵的维数为N,I 为 N 阶单 位矩阵,Hadam ard 矩阵在组合数学,数值分析和信号处理方面都有广泛的应用。与要注意的是,当 N=1 时,Hadamard 矩阵就是 1,当 N=2 时,Hadamard 的维数 N 有一定的要求,即 N、N/12 或 N/20 是 2 的正整数次幂。Hadamard(8)ans =1 1 1 1 1 1 1 11 -1 1 -1 1 -1 1 -11 1 -1 -1 1 1 -1 -11 -1 -1 1 1 -1 -1 11

9、 1 1 1 -1 -1 -1 -11 -1 1 -1 -1 1 -1 11 1 -1 -1 -1 -1 1 11 -1 -1 1 -1 1 1 -1hadamard(6)? Error using = hadamardn must be an integer and n, n/12 or n/20 must be a power of 2.9、Hankel 矩阵Hankel矩阵是针对于一个向量C 或者两个 向量 C 或 R,而生成的一个对称矩阵。矩阵中各元素满足如下规律:(1)当只有一个向量 C 时, H=hankel(C):以向量 C 作为 Hankel矩阵的第一列;反对角线上的各元素相等

10、;主反对角线下方元素为0。(3) 当有两个向量 C 和 R 时,H=hankel(C,R ):以向量 C 作为 Hankel 矩阵的的第一列;以向量 R 作为矩阵的第 一行; 当 C 的第一个元素不同于 R 的第一个元素时,取 C 的第一个元素作为主反对角上 的元素。 c=5 6 7 8 9 10;r=6 7 8 9 10 11;H=hankel(c)H =5 6 7 8 9 106 7 8 9 10 07 8 9 10 0 08 9 10 0 0 09 10 0 0 0 010 0 0 0 0 0H=hankel(c,r)Warning: Last element of input colu

11、mn does not match first element of input row. Column wins anti-diagonal conflict.(Type “warning off MATLAB:hankel:AntiDiagonalConflict“ to suppress this warning.) In C:MATLAB6p5toolboxmatlabelmathankel.m at line 27H =5 6 7 8 9 106 7 8 9 10 77 8 9 10 7 88 9 10 7 8 99 10 7 8 9 1010 7 8 9 10 1110、Toepl

12、 itz 矩阵Toeplitz 矩阵与 Hankel 矩阵类似,也是针对于一个向量 C或者两个向量 C 或 R,而生成的一个对称矩阵。矩阵中各元素满足如下规律:(1) 当只有一个向量 C 时,T=toepl ita(C ):以向量 C 作为 Toeplitz 矩阵的第一列:对角线上的各元素相等;各元素关于主对角线对称。(2) 当有两个向量 C 或 R 时,T=toeplitz(C,R)时:以向量 C 作为 Toeplitz 矩阵的第一列;以向量 R 作为矩阵的最 后一行;当 C 的第一 个元素不同于 R 第一个元素时,取 C 的第一个元素作为主对角上的元素。c=5 6 7 8 9 10;r=6

13、 7 8 9 10 11;T=toeplitz(c)T =5 6 7 8 9 106 5 6 7 8 97 6 5 6 7 88 7 6 5 6 79 8 7 6 5 610 9 8 7 6 5 T=toeplitz(c,r)Warning: First element of input column does not match first element of input row. Column wins diagonal conflict.(Type “warning off MATLAB:toeplitz:DiagonalConflict“ to suppress this warni

14、ng.) In C:MATLAB6p5toolboxmatlabelmattoeplitz.m at line 18T =5 7 8 9 10 116 5 7 8 9 107 6 5 7 8 98 7 6 5 7 89 8 7 6 5 710 9 8 7 6 5二、矩阵的特征参数运算1、 矩阵的逆运算的充分必要条件是矩阵的行列式不为零。A=1 0 0 0;1 2 0 0;2 1 3 0;1 2 1 4A =1 0 0 01 2 0 02 1 3 01 2 1 4 B=inv(A)B =1.0000 0 0 0-0.5000 0.5000 0 0-0.5000 -0.1667 0.3333 00

15、.1250 -0.2083 -0.0833 0.25002、矩阵的行列式运算当矩阵为方阵时,可以进行矩阵的行列式运算操作,用 det 函数操作。 x=det(A) %A、B 取自上例x =24 y=det(B)y =0.0417 i=x*yi =13、矩阵的特征值运算(1) 用 eig 和eigs 两个函数来进行矩阵的特征值运算。其格式如下:E=eig(X) 命令生成由矩阵 X 的特阵值所组成的一个列向 量。(2) V,D=eig(X)命令生成两 个矩阵 V 和D,其中 V 是以矩阵 X 的特征向量作为列向量组成的矩阵, D 是由矩阵X 的特征值作为主对角线元素购成 的对角矩阵。(3) eig

16、s(A)命令是由迭代法求解矩 阵的特阵值和特征向量。(4) D=eigs(A)命令生成由矩阵 A 的特征值组成的一个列向量。A 必须为方阵,最好是大型稀疏矩阵。(5) V,D=eigs(A)命令生成两个矩阵 V 和D,其中 V 是以矩阵 A 的特征向量作为列向量组成的矩阵,D 是由矩阵A 的特征值作为主对角线与元素构 成的对角矩阵 x=magic(3)x =8 1 63 5 74 9 2 a=1 0 0;0 0 3;0 9 0a =1 0 00 0 30 9 0 E=eig(x)E =15.00004.8990-4.8990 V,D=eig(x)V =-0.5774 -0.8131 -0.34

17、16-0.5774 0.4714 -0.4714-0.5774 0.3416 0.8131D =15.0000 0 00 4.8990 00 0 -4.8990 D=eigs(a)D =-5.19625.19621.0000 V,D=eigs(a)V =0 0 1.00000.5000 0.5000 0-0.8660 0.8660 0D =-5.1962 0 00 5.1962 00 0 1.0000 D=eigs(a)D =-5.19625.19621.00004、矩阵的范数运算数值分析与计算方法所得不同之处在于引入了范数的概念,用 norm和 normest 函数来计算矩阵的范数,其格式如

18、下:(1) norm 函数norm(X)用来计算矩阵 X 的 2-范数norm(X,2)与 norm(X)的功能相同norm(X,1)用来计算矩阵 X 的 1-范数norm(X,inf )用来计算矩 阵 X 的无穷范数norm(X, fro)用来计算矩阵 X 的 frobenius 范数(2) normest 函数normest 函数只 能计算矩阵的 2-范数。且是其 2-范数的估计 值,适用于计算norm(X)比较费时的情况,其格式为 normest(X). X=hilb(4)X =1.0000 0.5000 0.3333 0.25000.5000 0.3333 0.2500 0.20000

19、.3333 0.2500 0.2000 0.16670.2500 0.2000 0.1667 0.1429 norm(4)ans =4 norm(X)ans =1.5002 norm(X,2)ans =1.5002 norm(X,1)ans =2.0833 norm(X,inf)ans =2.0833 norm(X,fro)ans =1.5097 normest(X)ans =1.50025、矩阵的条件数运算矩阵的条件舒适判断矩阵“病态”程度的一个量值,矩阵 A 的条件数越大,表明 A越“病态” ,反之,表明 A 越 “良态”。(1) cond 函数cond 函数用于计算矩阵的条件数,cond

20、(X)返回关于矩阵 X 的 2-范数的条件数。cond(X,P)关于矩阵 X的 P-范数的条件数(P 为 1、2、inf 或 fro) 。(2) rcon 函数rcond函数用于计算矩阵条件数的倒数值,所以当矩阵X 病态时,rcond(X)就接近 0;X“良态”时,rcond(X)就接近 1。(3) condestcondest(X)用于计算关于矩阵 X 的1-范数的条件数的估计值 。 M=magic(3); H=hilb(4); c1=cond(M)c1 =4.3301 c2=cond(M,1)c2 =5.3333 c3=rcond(M)c3 =0.1875 c4=condest(M)c4

21、=5.3333 h1=cond(H)h1 =1.5514e+004 h2=cond(H,inf)h2 =2.8375e+004 h3=rcond(H)h3 =3.5242e-005 h4=condest(H)h4 =2.8375e+0046、特征值的条件数运算通过函数 condeig 进行特征值条件数的计算。函数使用方式为 condeig(A)或者V,D ,S= condeig(A) ,其中 condeig( A)表示有矩阵的各特阵值条件数所构成的列向量;V,D, S= condeig(A)等价于上面 介绍V,D=eig(A)和 S=condeig(A)。V 表示特征向量组成的矩阵,D 表示特

22、征值组成的对 角阵,S 表示对应的特征值条件数。 V=1 1 1 10E10V =1.0e+011 *0.0000 0.0000 0.0000 1.0000 A=diag(V)A =1.0e+011 *0.0000 0 0 00 0.0000 0 00 0 0.0000 00 0 0 1.0000 Jt=cond(A) %矩阵的条件数计算Jt =1.0000e+011 Tt=condeig(A) %矩阵特征值的条件数计算Tt =1111 M=magic(7)M =30 39 48 1 10 19 2838 47 7 9 18 27 2946 6 8 17 26 35 375 14 16 25

23、34 36 4513 15 24 33 42 44 421 23 32 41 43 3 1222 31 40 49 2 11 20 Jt=cond(M) %矩阵的条件数计算Jt =7.1113 Tt=condeig(M) %矩阵特征值的条件数计算Tt =1.00001.00481.31711.31251.00481.31251.31717、矩阵的秩用 rank来求得矩阵的秩 T=rand(6)T =0.9501 0.4565 0.9218 0.4103 0.1389 0.01530.2311 0.0185 0.7382 0.8936 0.2028 0.74680.6068 0.8214 0.1

24、763 0.0579 0.1987 0.44510.4860 0.4447 0.4057 0.3529 0.6038 0.93180.8913 0.6154 0.9355 0.8132 0.2722 0.46600.7621 0.7919 0.9169 0.0099 0.1988 0.4186 r=rank(T)r =6 T1=1 1 1;2 2 3T1 =1 1 12 2 3 r=rank(T1)r =28、矩阵的迹矩阵的迹是指矩阵主对角线上所有元素的和,也是矩阵的特征值。用 trace 函数求得。 T=trace(M)T =65 T1=eig(M)T1 =65.0000-21.2768-1

25、3.126321.276813.1263 T2=65-21-13+21+13T2 =659、矩阵的伪逆在 MATLAB 中,矩阵的伪逆 运算可以有函数 pinv 实现。完整的应用形式为X=pinv(A),矩阵 X 和矩阵 A 同维数,并且矩阵 A和矩阵 X 满足条件 A* X*A=A、X*A*X=X 和 A*X=X*A=I(在一定的误差条件下近似成立) A=magic(4)A =16 2 3 135 11 10 89 7 6 124 14 15 1 B=inv(A)Warning: Matrix is close to singular or badly scaled.Results may

26、be inaccurate. RCOND = 1.306145e-017.B =1.0e+014 *0.9382 2.8147 -2.8147 -0.93822.8147 8.4442 -8.4442 -2.8147-2.8147 -8.4442 8.4442 2.8147-0.9382 -2.8147 2.8147 0.9382 B1=pinv(A)B1 =0.1011 -0.0739 -0.0614 0.0636-0.0364 0.0386 0.0261 0.00110.0136 -0.0114 -0.0239 0.0511-0.0489 0.0761 0.0886 -0.0864 C1=

27、A*BC1 =1.0000 0 -1.0000 -0.5000-0.2500 0 0 0.37500.2500 0.5000 0 -0.25000.1563 0.1250 0 1.2344 C2=A*B1C2 =0.9500 -0.1500 0.1500 0.0500-0.1500 0.5500 0.4500 0.15000.1500 0.4500 0.5500 -0.15000.0500 0.1500 -0.1500 0.9500 C3=B*A*1 1 1 1C3 =0.84386.6250-4.31250.4219 C4=B1*A*1 1 1 1C4 =1.00001.00001.00001.000010、正交矩阵函数 orth(A)可以很方便 的求得矩阵 A 的正交矩阵。完整的应用形式为 Q=orth(A),Q是基于矩阵 A 的范围内的正交阵 ,且满足 Q*Q=I,Q 的列数与矩阵 A 的秩相同。 V=2 2 -2;2 5 -4;-2 -4 5V =2 2 -22 5 -4-2 -4 5 R=orth(V)R =-0.3333 0.0000 0.9428-0.6667 0.7071 -0.23570.6667 0.7071 0.2357 E=R*RE =1.0000 0 -0.00000 1.0000 0.0000-0.0000 0.0000 1.0000

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

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报