《第三章矩阵精选文档.ppt》由会员分享,可在线阅读,更多相关《第三章矩阵精选文档.ppt(46页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第三章矩阵本讲稿第一页,共四十六页MATLAB以矩阵为基本的运算单位。向量和标量作为特殊的矩阵处理:向量看作只有一行或一列的矩阵;标量看作是只有一个元素的矩阵。本讲稿第二页,共四十六页MATLAB的矩阵按行输入。整个矩阵应以“”为首尾,即整个输入矩阵必须包含在方括号中。矩阵中,行与行之间必须用分号(;)或Enter键(按Enter键)符分隔。每行中的元素用逗号(,)或空格分隔。本讲稿第三页,共四十六页A=1,2,3;4,5,6;7,8,9A=1 2 3;4 5 6;7 8 9A=1 2 3 4 5 6 7 8 9A=1 2 3 4 5 6 7 8 9本讲稿第四页,共四十六页矩阵中的元素可以是数
2、字或表达式,但表达式中不可包含未知的变量,MATLAB用表达式的值为该位置的矩阵元素赋值。当矩阵中没有任何元素时,该矩阵被称作“空阵”(Empty Matrix)。本讲稿第五页,共四十六页矩阵元素可以是复数。用书写复数的方法输入复数元素。用一个矩阵表示复数矩阵的实部,用另一个矩阵表示复数矩阵的虚部,再将两个矩阵相加得到所需的复数矩阵。A=1 3;2 4-5 8;6 9*iB=1+5i 2+6i;3+8i 4+9iC=A*B本讲稿第六页,共四十六页生成矩阵的方法直接输入矩阵元素;创建M文件,生成矩阵;由外部文件导入矩阵;构造大矩阵;由内部语句或函数生成矩阵。本讲稿第七页,共四十六页导入数据使用I
3、mport Wizard功能,可从外部数据文件中直接读取数据。File|Import Data 命令选项,在对话框中,选择将要读取数据的数据文件。选中文件,单击打开按钮,然后打开“Import Wizard”窗口。单击“FINISH”按钮,即可输入该数据文件中数据。本讲稿第八页,共四十六页构造大矩阵m=1 2 3 4 5 6 7 8 9A=m m+10;m+20 m+30本讲稿第九页,共四十六页A=1 2 3 11 12 13 4 5 6 14 15 16 7 8 9 17 18 19 21 22 23 31 32 33 24 25 26 34 35 36 27 28 29 37 38 39本
4、讲稿第十页,共四十六页特殊矩阵可以用MATLAB函数生成特殊矩阵。本讲稿第十一页,共四十六页全零阵 B=zeros(n)%生成nn全零阵B=zeros(m,n)%生成mn全零阵B=zeros(m n)%生成mn全零阵B=zeros(d1,d2,d3)%生成d1d2d3全零阵或数组B=zeros(d1 d2 d3)%生成d1d2d3全零阵或数组B=zeros(size(A)%生成与矩阵A相同大小的全零阵本讲稿第十二页,共四十六页单位阵Y =eye(n)%生成nn单位阵Y =eye(m,n)%生成mn单位阵Y =eye(size(A)%生成与矩阵A相同大小的单位阵本讲稿第十三页,共四十六页全1阵Y
5、=ones(n)%生成nn全1阵Y=ones(m,n)%生成mn全1阵Y=ones(m n)%生成mn全1阵Y=ones(d1,d2,d3)%生成d1d2d3全1阵或数组Y=ones(d1 d2 d3)%生成d1d2 d3全1阵或数组Y=ones(size(A)%生成与矩阵A相同大小的全1阵本讲稿第十四页,共四十六页均匀分布随机数矩阵Y=rand(n)%生成nn随机数矩阵,其元素在(0,1)内Y=rand(m,n)%生成mn随机数矩阵Y=rand(m n)%生成mn随机数矩阵Y=rand(m,n,p,)%生成mnp随机数矩阵或数组Y=rand(m n p)%生成mnp随机数矩阵或数组Y=ran
6、d(size(A)%生成与矩阵A相同大小的随机数矩阵 本讲稿第十五页,共四十六页正态分布随机数矩阵 Y=randn(n)%生成nn正态分布随机数矩阵Y=randn(m,n)%生成mn正态分布随机数矩阵Y=randn(m n)%生成mn正态分布随机数矩阵Y=randn(m,n,p,)%生成mnp正态分布随机数矩阵或数组Y=randn(m n p)%生成mnp正态分布随机数矩阵或数组本讲稿第十六页,共四十六页Y=randn(size(A)%生成与矩阵A相同大小的正态分布随机数矩阵randn%无变量输入时只产生一个正态分布随机数本讲稿第十七页,共四十六页产生线性等分向量y=linspace(a,b)
7、%在(a,b)上产生100个线性等分点y=linspace(a,b,n)%在(a,b)上产生n个线性等分点本讲稿第十八页,共四十六页产生对数等分向量y=logspace(a,b)%在(10a,10b)之间产生50个对数等分向量y=logspace(a,b,n)%在(10a,10b)之间产生n个对数等分向量y=logspace(a,pi)%在(10a,)之间产生50个对数等分向量本讲稿第十九页,共四十六页矩阵操作矩阵的保存、读取矩阵的元素的引用矩阵元素的删除矩阵元素的赋值本讲稿第二十页,共四十六页矩阵的保存和提取MATLAB用MAT文件保存二进制的数据。用save命令保存已经存在的矩阵A和B。s
8、ave filename A Bfilename是用户定义的文件名,MATLAB系统将会自动在文件名后加上后缀.MAT。用load命令读入MATLAB工作空间。load filename本讲稿第二十一页,共四十六页矩阵元素的引用在MATLAB中,矩阵元素的引用可以用两个下标来表示,如在矩阵A中,第i行第j列的元素用A(i,j)表示;也可以用一个下标来表示。MATLAB的运算基本上都是对列操作的,矩阵可以认为是按列优先排列的一个长的列向量,从而可用单下标引用。22的矩阵A,A(1)表示第一列的第一个元素,A(2)表示第一列的第二个元素,A(3)表示第二列的第个元素,A(4)表示第二列的第二个元素
9、。本讲稿第二十二页,共四十六页当矩阵的下标超出矩阵的实际元素的下标时,将给出错误信息。当某个值被赋给矩阵的一个新的元素时,MATLAB会自动增加矩阵的维数大小。44的矩阵A,执行命令A(4,5)18后,矩阵A将变成45的矩阵。A=1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16A(4,5)=18;本讲稿第二十三页,共四十六页删除矩阵的行和列在MATLAB里,可通过把矩阵的列或行赋值为空矩阵来删除某行或某列。某列x(:,2)=将删除矩阵x的第二列。在MATLAB中,不能用双下标来删除矩阵的某个元素。当矩阵x不为标量时,运行命令x(1,2)将给出错误信息。可用单下标来删
10、除矩阵的某个或某些元素,剩下的元素将按列编成个长行向量。本讲稿第二十四页,共四十六页矩阵运算运算符:“+”和“-”分别为矩阵加、减运算符。运算规则:对应元素相加、减,即按线性代数中矩阵的“+”,“-”运算进行。本讲稿第二十五页,共四十六页运算符:*运算规则:按线性代数中矩阵乘法运算进行,即左面矩阵的各行元素分别与右面矩阵的各列对应元素相乘并相加。运算符:.*数组乘法:A.*B表示A与B对应元素相乘,A与B的维数要相同。本讲稿第二十六页,共四十六页向量点积向量的点乘(内积):维数相同的两个向量的点乘。C=dot(A,B)若A、B为向量,则返回向量A与B的点积,A与B长度相同。A与B也可以是多维数
11、组。C=dot(A,B,dim)%在dim维数中给出A与B的点积。与sum(X.*Y)的作用相同。本讲稿第二十七页,共四十六页向量叉乘两向量的叉乘是一个过两相交向量的交点且垂直于两向量所在平面的向量。在MATLAB中,用函数cross实现。C=cross(A,B)若A、B为向量,则返回A与B的叉乘,即C=AB,A、B必须是3个元素的向量;本讲稿第二十八页,共四十六页若A、B为矩阵,则返回一个3n矩阵,其中的列是A与B对应列的叉积,A、B都是3n矩阵。C=cross(A,B,dim)%在dim维数中给出向量A与B的叉积。A和B必须具有相同的维数,size(A,dim)和size(B,dim)必须
12、是3 本讲稿第二十九页,共四十六页混合积混合积由以上两函数实现:计算向量a=(1,2,3)、b=(4,5,6)和c=(-3,6,-3)的混合积。x=dot(a,cross(b,c)本讲稿第三十页,共四十六页除法运算Matlab提供了两种除法运算:左除()和右除(/)。一般情况下,x=ab是方程a*x=b的解,而x=b/a是方程x*a=b的解。若a为非奇异矩阵,则ab和b/a可由a的逆矩阵与b阵得到:ab=inv(a)*b b/a=b*inv(a)本讲稿第三十一页,共四十六页数组除法A.B表示A中元素与B中对应元素相除B(i,j)/A(i,j)A./B表示A中元素与B中对应元素相除A(i,j)/
13、B(i,j)本讲稿第三十二页,共四十六页矩阵转置运算符为“”。若矩阵A的元素为实数,则与线性代数的矩阵转置相同;若A为复数矩阵,则A转置后的元素由A对应元素的共轭复数构成。本讲稿第三十三页,共四十六页行列式d=det(X)%返回矩阵X的行列式的值。本讲稿第三十四页,共四十六页矩阵逆 Y=inv(X)%求方阵X的逆矩阵。若X为奇异阵或近似奇异阵,将给出警告信息,例如求A的逆矩阵。本讲稿第三十五页,共四十六页A=1 2 3;2 2 1;3 4 3;Y=inv(A)或Y=A(-1)Y=1.0000 3.0000 -2.0000 -1.5000 -3.0000 2.5000 1.0000 1.0000
14、 -1.0000本讲稿第三十六页,共四十六页由增广矩阵进行初等行变换本讲稿第三十七页,共四十六页B=1,2,3,1,0,0;2,2,1,0,1,0;3,4,3,0,0,1;C=rref(B)%化行最简形X=C(:,4:6)%取矩阵C中的A(-1)部分C=1.0000 0 0 1.0000 3.0000 -2.0000 0 1.0000 0 -1.5000 -3.0000 2.5000 0 0 1.0000 1.0000 1.0000 -1.0000本讲稿第三十八页,共四十六页X=1.0000 3.0000 -2.0000 -1.5000 -3.0000 2.5000 1.0000 1.0000
15、 -1.0000本讲稿第三十九页,共四十六页矩阵的迹b=trace(A)%返回矩阵A的迹,即A的对角线元素之和。本讲稿第四十页,共四十六页矩阵的秩k=rank(A)%求矩阵A的秩。k=rank(A,tol)%tol为给定的误差。本讲稿第四十一页,共四十六页矩阵的变维矩阵的变维有两种方法,即用“:”和函数“reshape”。前者主要针对2个已知维数矩阵之间的变维操作;而后者是对于一个矩阵的操作。本讲稿第四十二页,共四十六页A=1 2 3 4 5 6;6 7 8 9 0 1A=1 2 3 4 5 6 6 7 8 9 0 1B=ones(3,4)B=1 1 1 1 1 1 1 1 1 1 1 1本讲稿第四十三页,共四十六页B(:)=A(:)B=1 7 4 0 6 3 9 6 2 8 5 1本讲稿第四十四页,共四十六页reshape函数B=reshape(A,m,n)%返回以矩阵A的元素构成的mn矩阵B。B=reshape(A,m,n,p,)%将矩阵A变维为mnp。B=reshape(A,m n p)%同上。B=reshape(A,siz)%由siz决定变维的大小,元素个数与A中元素个数相同。本讲稿第四十五页,共四十六页a=1:12;b=reshape(a,2,6)b=1 3 5 7 9 11 2 4 6 8 10 12本讲稿第四十六页,共四十六页