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