《第2章 矩阵和数组及其运算精选文档.ppt》由会员分享,可在线阅读,更多相关《第2章 矩阵和数组及其运算精选文档.ppt(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第2章 矩阵和数组及其运算本讲稿第一页,共三十七页n1 1、直接输入法、直接输入法n矩阵可在方括号“”中以直接列出元素的方式建立,列元素之间用空格或逗号“,”隔开,行与行之间用分号“;”或回车键隔开。n A=1 2 3;4 5 6;7 8 9n A=1,2,3;4,5,6;7,8,9n A=1 2 3 n4 5 6n7 8 9n以上3种方式建立矩阵A的显示结果是:nA=1 2 3n 4 5 6n 7 8 9本讲稿第二页,共三十七页n只有一行或一列的矩阵,分别称为行向量或列向量。例如n H=2,4,6,8,10nH=n 2 4 6 8 10n L=3;6;9nL=n 3n 6n 9本讲稿第三页,
2、共三十七页n2 2、建立线性分割的行向量、建立线性分割的行向量n行向量也是一维数组。n1、利用冒号“:”表达式建立线性分割的行向量,它的格式是:e1:e2:e3n其中,e1是初始值,e2是步长(e2=1时可以省略),e3是终止值。例如:n x=0:pi/5:pinx=0 0.6283 1.2566 1.8850 2.5133 3.1416n2、利用函数linspace(e1,e3,n)建立线性分割的行向量,n是行向量元素的总数。例如:n linspace(5,20,6)nans=5 8 11 14 17 20本讲稿第四页,共三十七页n3 3、利用函数来建立某些特定矩阵、利用函数来建立某些特定矩
3、阵n函数zeros(m,n)可以创建m 行n列各个元素全为零的零矩阵。例如n zeros(2,3)nans=n 0 0 0n 0 0 0n函数ones(m,n)可以创建m 行n列各个元素全为1的幺矩阵。例如n ones(3,2)nans=n 1 1n 1 1n 1 1本讲稿第五页,共三十七页n函数eye(m,n)可以创建m 行n列主对角元素全为1、其他元素全为0的单位矩阵。例如n eye(3,3)nans=n 1 0 0n 0 1 0n 0 0 1n函数rand(m,n)可以创建m 行n列的随机矩阵。例如n rand(2,3)nans=n 0.9501 0.6068 0.8913n 0.231
4、1 0.4860 0.7621本讲稿第六页,共三十七页n2.1.2 2.1.2 矩阵的转置和变换矩阵的转置和变换n1 1、矩阵的转置、矩阵的转置n矩阵的转置用单引号“”来实现。例如,求矩阵A=的转置矩阵Bn A=1 2 3;4 5 6;7 8 9nA=1 2 3n 4 5 6n 7 8 9n B=AnB=1 4 7n 2 5 8n 3 6 9n可见,矩阵的转置就是将它的行与列互换。本讲稿第七页,共三十七页n2 2、矩阵的旋转、矩阵的旋转n使用函数rot90(A,K)可以将A矩阵逆时针方向旋转90的K倍,K=1时可以省略。例如n A=1 2 3;4 5 6;7 8 9nB=rot90(A)n运算
5、结果:nA=n 1 2 3n 4 5 6n 7 8 9nB=n 3 6 9n 2 5 8n 1 4 7本讲稿第八页,共三十七页n3 3、矩阵的翻转、矩阵的翻转n使用函数flipud(A)可以将A矩阵上下翻转,即第1行与最后1行调换,第2行与倒数第2行调换,以此类推。例如n A=1 2 3;4 5 6;7 8 9;10 11 12nB=flipud(A)n运算结果:nA=B=n 1 2 3 10 11 12n 4 5 6 7 8 9n 7 8 9 4 5 6n 10 11 12 1 2 3本讲稿第九页,共三十七页2.2 2.2 矩阵元素和子矩阵的提取矩阵元素和子矩阵的提取n2.2.1 2.2.1
6、 矩阵元素的提取矩阵元素的提取n1、通过下标提取矩阵元素nA(i,j)表示A矩阵第i 行第j列的元素。例如,提取A矩阵第3行第3列元素A(3,1)n A=1 2 3;4 5 6;7 8 9,A(3,1)n运算结果:nA=1 2 3n 4 5 6n 7 8 9nans=7本讲稿第十页,共三十七页n2、通过元素序号提取矩阵元素n在MATLAB中,矩阵元素按列存储,首先是第1列,其次是第2列,以此类推,一直到矩阵的最后1列元素。例如,通过元素序号提取A矩阵第6个元素n A=1 2 3 4;5 6 7 8;9 10 11 12nA(6)n运算结果:nA=n 1 2 3 4n 5 6 7 8n 9 10
7、 11 12nans=n 10n可见,矩阵元素序号与它的存储顺序是一一对应本讲稿第十一页,共三十七页n3、函数find(c)查找符合条件的矩阵元素的行和列n函数find(c)的使用格式:row,col=find(c)n其中,c一般为逻辑表达式;row返回满足条件的元素的行号,col返回满足条件的元素的列号。n例例2-1 2-1 查找矩阵a=12 34 26 17 21;61 50 89 12 08;25 62 91 23 47中大于等于20、小于等于60的矩阵元素。na=12 34 26 17 21;61 50 89 12 08;25 62 91 23 47nr,c=find(a=20&a=2
8、0&a A=1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16;17 18 19 20nA6=A(end,:)n运算结果:nA=1 2 3 4n 5 6 7 8n 9 10 11 12n 13 14 15 16n 17 18 19 20nA6=n 17 18 19 20本讲稿第十七页,共三十七页2.3 2.3 矩阵的运算矩阵的运算n矩阵运算是MATLAB的核心,从运算的角度来看,数组和矩阵代表完全不同的两种变量,数组运算是针对数组元素之间进行运算;矩阵运算是从矩阵的整体出发,是按照线性代数法则进行运算。n2.3.1 2.3.1 矩阵的加法和减法矩阵的加法和减法n同阶(
9、行、列数分别相等)的两个矩阵之间可以进行加法或减法运算,是指它们对应元素之间的运算。n例例2-3 2-3 有两个2行3列的矩阵A=1,2,3;4,5,6和B=7,8,9;10,11,12,试进行加法和减法运算。nA=1,2,3;4,5,6,B=7,8,9;10,11,12本讲稿第十八页,共三十七页nC=A+B%矩阵C存储A+B的数据nD=A-B%矩阵D存储A-B的数据n运算结果:nA=1 2 3n 4 5 6nB=7 8 9n 10 11 12nC=8 10 12n 14 16 18nD=-6 -6 -6n -6 -6 -6 本讲稿第十九页,共三十七页n2.3.2 2.3.2 矩阵的乘法矩阵的
10、乘法n矩阵乘(*)是指两个内维相同(前矩阵的列数与后矩阵行数相等,称为两个矩阵的维数相容)的矩阵进行乘法运算。n例例2-4 2-4 有一个2行3列的矩阵A=1,2,3;4,5,6和一个3行4列的矩阵B=7,8,9,10;11,12,13,14;15,16,17,18,试对它们进行乘法运算。nA=1,2,3;4,5,6nB=7,8,9,10;11,12,13,14;15,16,17,18nC=A*B本讲稿第二十页,共三十七页n运算结果:nA=1 2 3n 4 5 6nB=7 8 9 10n 11 12 13 14n 15 16 17 18nC=74 80 86 92n 173 188 203 2
11、18n可见,矩阵A和B相乘法到的的矩阵C,其行数等于矩阵A行数(2行),其列数等于矩阵B列数(4列)本讲稿第二十一页,共三十七页n2.3.3 2.3.3 矩阵的求逆矩阵的求逆n根据线性代数理论,矩阵可逆的充分与必要条件是矩阵的行列式不为零。求矩阵的逆矩阵,可以使用函数inv()来实现。例如n H=2,1,2;1,2,1;3,2,1nH=2 1 2n 1 2 1n 3 2 1n nh=inv(H)%计算方阵H的逆矩阵nnh=-0.0000 -0.5000 0.5000n -0.3333 0.6667 0n 0.6667 0.1667 -0.5000本讲稿第二十二页,共三十七页n2.3.4 2.3
12、.4 向量的模和矩阵行列式的值向量的模和矩阵行列式的值n1、向量的模n一个n维向量的模表示为n使用MATLAB中的函数norm(X)可以计算维向量的模。例如n X=12 23 41 96 82 34 87;nnorm(X)nans=n 164.3746本讲稿第二十三页,共三十七页n2、矩阵行列式的值n如果某个矩阵是一个方阵(行数与列数相同),可以使用函数det()来计算矩阵行列式的值。例如n H=2,1,2;1,2,1;3,2,1ndet(H)n运算结果:nH=2 1 2n 1 2 1n 3 2 1nans=n -6本讲稿第二十四页,共三十七页n2.3.5 2.3.5 矩阵的除法矩阵的除法n如
13、果A和B是維数相同的两个方阵,而且B是可逆方阵,則它的逆矩阵 是另一个同維数的方阵。n因为矩阵乘法並沒有交換律,所以 和 一般而言並不相等。因此MATLAB提供两种除法(左除运算符号“”和右除运算符号“/”)。凡是按矩阵規則可以和逆矩阵 相乘的矩阵(两个矩阵的内维相同),都可以根据左乘或右乘而做除“”或除以“/”的计算。本讲稿第二十五页,共三十七页n1 1、矩阵的左除、矩阵的左除(运算符号“”)n在矩阵A的左边乘 ,即 ,称为矩阵B除矩阵A,运算符号是BA。如果矩阵A是一个非奇异方阵,矩阵的左除AB等于矩阵A的逆与B的左乘inv(A)B。应当指出:n如果矩阵A是一个方阵,表示矩阵方程AX=B的
14、解是X=AB,或X=inv(A)B,这里的X具有与矩阵B相同的维数。n如果矩阵B是一个列向量b时,则X=AB是线性系统AX=b的解。n如果矩阵A是一个mn矩阵(mn),X=AB得到矩阵方程AX=B的最小二乘解inv(A)B。本讲稿第二十六页,共三十七页n2 2、矩阵的右除、矩阵的右除(运算符号“/”)n在矩阵A的右边乘 ,即 ,称为矩阵A除以矩阵B,运算符号是A/B。如果矩阵A是一个非奇异方阵,矩阵的右除A/B等于矩阵A的逆与B的右乘B*inv(A)。n矩阵方程XA=B的解是X=B/A,或X=B inv(A)。n例例2-6 2-6 试对两个2行2列的方阵A=1 2;3 4和B=5 6;7 8进
15、行除法运算。n A=1 2;3 4,B=5 6;7 8nA=1 2n 3 4nB=5 6n 7 8本讲稿第二十七页,共三十七页n Left=AB%矩阵左除nLeft=n -3.0000 -4.0000n 4.0000 5.0000n Right=B/A%矩阵右除nRight=n -1 2n -2 3本讲稿第二十八页,共三十七页n L=inv(A)*B%矩阵A的逆与矩阵B的左乘nL=n -3.0000 -4.0000n 4.0000 5.0000n R=B*inv(A)%矩阵A的逆与矩阵B的右乘nR=n -1.0000 2.0000n -2.0000 3.0000本讲稿第二十九页,共三十七页n线
16、性联立方程组矩阵形式可以写成 Ax=b,其中A是一个n維可逆方阵,b是一个n維列向量。从矩阵除法可知,則x=Ab就是线性联立方程组一組解。n例例2-7 2-7 利用矩阵除法求解3维线性方程组nA=4,6,-1;5,-8,3;1,4,1;%系数矩阵nb=1;0;0;%线性方程组的常数列向量nx=Ab%运用矩阵左除求解xnr=A*x-b%计算残量nR=norm(r)%计算残量的向量的模本讲稿第三十页,共三十七页n运算结果:nx=n 0.1667n 0.0167n -0.2333nr=n 1.0e-015*n -0.1110n 0n 0.0278nR=n 1.1444e-016本讲稿第三十一页,共三
17、十七页2.4 2.4 数组的运算数组的运算n数组可以具有不同的维数,有一维、二维乃至高维,例如将三维数组看作是一本书,它的每一页是一个二维数组,它的第3维通常描述为页。因此,数组直接扩展了矩阵的功能,在图像处理和多维系统控制等问题上有所应用。n数组的运算也称为点运算,它实质上是针对数组中个每个元素进行运算。n2.4.1 2.4.1 数组的加法和减法数组的加法和减法n数组的加法和减法运算与矩阵的加法和减法运算,都是指两个同维的矩阵(数组)对应元素的相加和相减。因此,数组的加法运算符号(+)和减法运算符号(-)前面不需要加圆点(.)。本讲稿第三十二页,共三十七页n2.4.2 2.4.2 数组的乘法
18、数组的乘法n数组乘(.*)是指两个同维的矩阵对应元素相乘。n例例2-8 2-8 计算数组A=1,2,3;4,5,6;7,8,9和数组B=1,0,0;0,1,0;0,0,1的乘积。n A=1,2,3;4,5,6;7,8,9nA=1 2 3n 4 5 6n 7 8 9n B=1,0,0;0,1,0;0,0,1nB=1 0 0n 0 1 0n 0 0 1本讲稿第三十三页,共三十七页n C=A.*BnC=n 1 0 0n 0 5 0n 0 0 9n D=B.*AnD=n 1 0 0n 0 5 0n 0 0 9n可见,数组的乘法符合交换律。本讲稿第三十四页,共三十七页n2.4.3 2.4.3 数组的除法
19、数组的除法n数组除是指两个同维的矩阵对应元素相除。数组的左除运算(.)和右除运算(./)的关系是a.b=b./a。n例例2-9 2-9 计算数组a=1,3,4;2,6,5;3,2,4和数组b=2,3,1;4,1,2;4,5,3相除。n a=1,3,4;2,6,5;3,2,4na=1 3 4n 2 6 5n 3 2 4n b=2,3,1;4,1,2;4,5,3nb=2 3 1n 4 1 2n 4 5 3 本讲稿第三十五页,共三十七页n c=a.bnc=n 2.0000 1.0000 0.2500n 2.0000 0.1667 0.4000n 1.3333 2.5000 0.7500n d=b./and=n 2.0000 1.0000 0.2500n 2.0000 0.1667 0.4000n 1.3333 2.5000 0.7500n可见,数组的除法符合交换律。本讲稿第三十六页,共三十七页n2.4.4 2.4.4 数组的乘方数组的乘方n数组乘方的运算符号是(.)。n例例2-10 2-10 计算数组X=1,3,5和数组Y=2,4,6之间的乘方,计算数组X的3次方。n X=1,3,5;Y=2,4,6;nA=X.Y%计算数组X和数组Y之间的乘方nB=X.3%计算数组X的3次方n运算结果:nA=n 1 81 15625nB=n 1 27 125本讲稿第三十七页,共三十七页