您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 商业计划书 > 第3章Matlab中的矩阵及其运算
第3章Matlab中的矩阵及其运算矩阵是数学中一个十分重要的概念,其应用能够十分广泛,Matlab中最基本最重要的功能就是进行矩阵运算,其所有数值功能都已矩阵为基本单元来实现,掌握Matlab中的矩阵运算是十分重要的。关键词:Matlab矩阵特殊矩阵一、矩阵的生成1、矩阵生成有多种方式,通常使用的有四种:(1)在命令窗口中直接输入矩阵(2)通过语句和函数产生矩阵(3)在M文件中建立矩阵(4)从外部的数据文件中导入矩阵其中第一种是最简单常用的创建数值矩阵的方法,较适合创建较小的简单矩阵。把矩阵的元素直接排列到方括号中,每行内元素用空格或逗号相隔,行与行之间的内容用分号相隔。如:matrix=[1,1,1,1;2,2,2,2;3,3,3,3;4,4,4,4]%逗号形式相隔matrix=1111222233334444matrix=[1111;2222;3333;4444]%采用空格形式相隔matrix=11112222333344442、特殊矩阵的生成1、零矩阵和全1矩阵零矩阵指各个元素都为零的矩阵。(1)A=zeros(M,N)命令中,A为要生成的零矩阵,M和N分别为生成矩阵的行和列。(2)若存在已知矩阵B,要生成与B维数相同的矩阵,可以使用命令A=zeros(size(B))。(3)要生成方阵时,可使用命令A=zeros(N)来生成N阶方针。全1矩阵用ones函数实现。A=zeros(4,5)A=00000000000000000000B=[12345;23456;98765;87654]B=12345234569876587654A=zeros(size(B))A=00000000000000000000A=zeros(5)A=0000000000000000000000000C=ones(5,6)C=111111111111111111111111111111C=ones(3)C=1111111112、单位矩阵的生成(1)A=eye(M,N)命令,可生成单位矩阵,M和N分别为生成单位矩阵的行和列。(2)若存在已知矩阵B,要生成一个与B维数相同的单位矩阵,可以使用命令A=eye(size(B))。(3)也可以使用A=eye(N)来生成N阶方阵。A=eye(4,5)A=10000010000010000010A=eye(size(B))%B与上例相同A=10000010000010000010A=eye(4)A=10000100001000013对角矩阵的生成对角矩阵指的是对角线上的元素为任意数,其它元素为0的矩阵。(1)A=diag(V,K)命令中,V为某个向量,K为向量V偏离主对角线的列数。K=0时表示V为主对角线;K0的数时表示V在主对角线上;K0表示V在主对角线以下。(2)A=diag(V)相当于A=diag(V,0)v=[19816]diag(v,1)ans=010000009000000800000010000006000000diag(v,-1)ans=000000100000090000008000000100000060diag(v,-1)ans=0000001000000900000080000001000000604、上三角阵和下三角阵的生成(1)triu(X,K)命令中,K=0表示主对角线以上部分(包括主对角线);K0表示矩阵的主对角线K列以上的部分;K0表示矩阵的主对角线K列以下的部分。triu(X)等价于triu(X,0)。B=[1980;1981;1949;2008]B=1980198119492008triu(B,2)ans=0080000100000000triu(B)ans=1980098100490008triu(B,0)ans=19800981004900085、随机矩阵的生成随机矩阵之矩阵元素是由随机数构成的矩阵。(1)rand(N)生成N阶随机矩阵,生成的元素值在区间(0.0,1.0)之间。(2)rand(M,N)命令生成M*N阶随机矩阵,生成的元素值在区间(0.0,1.0)之间。(3)randn(N)命令生成N阶随机矩阵,生成的元素服从正态分布N(0,1)。(4)randn(M,N)命令生成M*N阶随机矩阵,生成的元素服从正态分布N(0,1)。rand(5)ans=0.95010.76210.61540.40570.05790.23110.45650.79190.93550.35290.60680.01850.92180.91690.81320.48600.82140.73820.41030.00990.89130.44470.17630.89360.1389randn(5)ans=-0.43261.1909-0.18670.11390.2944-1.66561.18920.72581.0668-1.33620.1253-0.0376-0.58830.05930.71430.28770.32732.1832-0.09561.6236-1.14650.1746-0.1364-0.8323-0.69186、范德蒙德矩阵的生成范德蒙德矩阵是线性代数中一个很重要的矩阵。用A=vander(V),其中有V(i,j)=V(i)^(n-j)。v=[13579];A=vander(v)A=111118127931625125255124013434971656172981917、魔术矩阵魔术矩阵是一个方阵,且方针的每一行每一列以及每条主对角线的元素之和都相同(2阶方阵除外),用magic函数生成魔术矩阵。Magic(N)命令生成N阶的魔术矩阵,使矩阵的每一行每一列以及主对角线的元素和相等;N0或N=2除外。magic(2)ans=1342magic(3)ans=816357492magic(4)ans=162313511108976124141517、Hilbert矩阵和反Hilbert矩阵的生成Hilbert矩阵是有名的病态矩阵,它的第i行第j列的元素值为1/(i+j-1)。(1)hilb(N)命令生成N阶的Hilbert矩阵。(2)invhilb(N)命令生成N阶反Hilbert矩阵。A=hilb(5)A=1.00000.50000.33330.25000.20000.50000.33330.25000.20000.16670.33330.25000.20000.16670.14290.25000.20000.16670.14290.12500.20000.16670.14290.12500.1111B=invhilb(5)B=25-3001050-1400630-3004800-1890026880-126001050-1890079380-11760056700-140026880-117600179200-88200630-1260056700-8820044100C=A*BC=1.0000000001.0000000001.0000-0.000000001.0000000001.00008、Hadamard矩阵Hadamard矩阵为元素1或-1组成,并且满足条件H’*H=N*I,Hadamard矩阵的维数为N,I为N阶单位矩阵,Hadamard矩阵在组合数学,数值分析和信号处理方面都有广泛的应用。与要注意的是,当N=1时,Hadamard矩阵就是1,当N=2时,Hadamard的维数N有一定的要求,即N、N/12或N/20是2的正整数次幂。Hadamard(8)ans=111111111-11-11-11-111-1-111-1-11-1-111-1-111111-1-1-1-11-11-1-11-1111-1-1-1-1111-1-11-111-1hadamard(6)???Errorusing==hadamardnmustbeanintegerandn,n/12orn/20mustbeapowerof2.9、Hankel矩阵Hankel矩阵是针对于一个向量C或者两个向量C或R,而生成的一个对称矩阵。矩阵中各元素满足如下规律:(1)当只有一个向量C时,H=hankel(C):以向量C作为Hankel矩阵的第一列;反对角线上的各元素相等;主反对角线下方元素为0。(3)当有两个向量C和R时,H=hankel(C,R):以向量C作为Hankel矩阵的的第一列;以向量R作为矩阵的第一行;当C的第一个元素不同于R的第一个元素时,取C的第一个元素作为主反对角上的元素。c=[5678910];r=[67891011];H=hankel(c)H=567891067891007891000891000091000001000000H=hankel(c,r)Warning:Lastelementofinputcolumndoesnotmatchfirstelementofinputrow.Columnwinsanti-diagonalconflict.(TypewarningoffMATLAB:hankel:AntiDiagonalConflicttosuppressthiswarning.)InC:\MATLAB6p5\toolbox\matlab\elmat\hankel.matline27H=56789106789107789107889107899107891010789101110、Toeplitz矩阵Toeplitz矩阵与Hankel矩阵类似,也是针对于一个向量C或者两个向量C或R,而生成的一个对称矩阵。矩阵中各元素满足如下规律:(1)当只有一个向量C时,T=toeplita(C):以向量C作为Toeplitz矩阵的第一列:对角线上的各元素相等;各元素关于主对角线对称。(2)当有两个向量C或R时,T=toeplitz(C,R)时:以向量C作为Toeplitz矩阵的第一列;以向量R作为矩阵的最后一行;当C的第一个元素不同于R第一个元素时,取C的第一个元素作为主对角上的元素。c=[5678910];r=[67891011];T=toeplitz(c)T=56789106567897656788765679876561098765T=toeplitz(c,r)Warning:Firstelementofinputcolumndoesnotmatchfirstelementofinputrow.Columnwinsdiagonalconflict.(TypewarningoffMATLAB:toeplitz:DiagonalConflicttosuppressthiswarning.)InC:\MATLAB6p5\toolbox\matlab\elmat\toeplitz.matline18T=5789101165789107657898765789876571098765二、矩阵的特征参数运算1、矩阵的逆运算的充分必要条件是矩阵的行列式不为零。A=[1000;1200;2130;1214]A=1000120021301214B=inv(A)B=1.0000000-0.50000.500000-0.5000-0.16670.333300.1250-0.2083-0.08330.25002、矩阵的行列式运算当矩阵为方阵时,可以进行矩阵的行列式运算操作,用det函数操作。x=det(A)%A、B取自上例x=24y=det(B)y=0.0417i=x*yi=13、矩阵的特征值运算(1)用eig和eigs两个函数来进行矩阵的特征值运算。其格式如下:E=eig(X)命令生成由矩阵X的特阵值所组成的一个列向量。(2)[V,D]=eig(X)命令生成两个矩阵V和D,其中V是以矩阵X的特征向量作为列向量组成的矩阵,D是由矩阵X的特征值作为主对角线元素购成的对角矩阵。(3)eigs(A)命令是由迭代法求解矩阵的特阵值和特征向量。(4)D=eigs(A)命令生成由矩阵A的特征值组成的一个列向量。A必须为方阵,最好是大型稀疏矩阵。(5)[V,D]=eig
本文标题:第3章Matlab中的矩阵及其运算
链接地址:https://www.777doc.com/doc-2193021 .html