第2章-MATLAB矩阵和数组运算概况课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第2章-MATLAB矩阵和数组运算概况课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 矩阵 数组 运算 概况 课件
- 资源描述:
-
1、2022年年11月月8日星期二日星期二1第第2 2章章MATLABMATLAB矩阵和数组运算矩阵和数组运算2022年年11月月8日星期二日星期二2第2章 MATLAB矩阵和数组运算 学习目标 了解稀疏矩阵的相关内容;理解矩阵和数组运算的命令;掌握使用MATLAB命令建立矩阵及矩阵的算术运算、线性运算、矩阵的分解。2022年年11月月8日星期二日星期二32.1 矩阵的建立 矩阵的建立共有两种方法,可以通过MATLAB命令直接建立矩阵,也可以通过MATLAB提供的函数建立相应的矩阵。在MATLAB中创建矩阵有以下规则:矩阵元素必须在“”内。矩阵的同行元素之间用空格(或“,”)隔开 矩阵的行与行之间
2、用“;”(或回车符)隔开 矩阵的元素可以是数值、变量、表达式或函数 矩阵的尺寸不必预先定义2022年年11月月8日星期二日星期二42.1.1 直接建立矩阵 直接建立矩阵的方法就是把矩阵的各元素用中括号括起来,括号内同一行的元素之间用空格或逗号分开,行与行之间用分号或回车符分开。在MATLAB环境下,分号具有三个作用:在“”方括号内,它是矩阵行间的分隔符 它可作为指令与指令见得分隔符 当它放在赋值指令后时,该指令执行后的赋值结果将不显示在屏幕上2022年年11月月8日星期二日星期二5【例2.1】直接建立一个矩阵 解 在MATLAB命令提示符下输入:clear X=1 2 3;4 5 6;7 8
3、9X=1 2 3 4 5 6 7 8 9 Y=1.5 2.5 3 4 7 6 7 8 9Y=1.5000 2.5000 3.0000 4.0000 7.0000 6.0000 7.0000 8.0000 9.00002022年年11月月8日星期二日星期二62.1.2 利用函数建立矩阵 MATLAB提供了很多函数,可以通过这些函数方便地建立矩阵。1单位矩阵函数eye()2随机矩阵函数rand()3魔方矩阵函数magic()4范得蒙(Vandermonde)矩阵函数vander()5托普利兹(Toeplitz)矩阵函数toeplitz()2022年年11月月8日星期二日星期二71单位矩阵函数eye
4、()单位矩阵的特点是主对角线上元素为1,其他位置上的元素全为0。通过调用函数eye()可以建立单位矩阵,调用方法是:Y=eye(n)用于生成nn阶单位阵。Y=eye(m,n)用于生成mn阶单位阵。2022年年11月月8日星期二日星期二8【例2.2】创建一个55阶单位阵 解 在MATLAB命令提示符下输入:clear X=eye(5)X=1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 Y=eye(2,3)Y=1 0 0 0 1 02022年年11月月8日星期二日星期二92随机矩阵函数rand()随机矩阵的特点是由计算机随机产生数据而生成的矩阵。
5、通过运行rand()函数可以生成随机矩阵,调用方法为:Y=rand(n)生成nn阶随机矩阵,其元素在(0,1)内。Y=rand(m,n)生成mn阶随机矩阵。2022年年11月月8日星期二日星期二10【例2.3】产生一个56阶的随机矩阵 解 在MATLAB命令提示符下输入:clear Y=rand(5,6)Y=0.9501 0.7621 0.6154 0.4057 0.0579 0.2028 0.2311 0.4565 0.7919 0.9355 0.3529 0.1987 0.6068 0.0185 0.9218 0.9169 0.8132 0.6038 0.4860 0.8214 0.738
6、2 0.4103 0.0099 0.2722 0.8913 0.4447 0.1763 0.8936 0.1389 0.19882022年年11月月8日星期二日星期二113魔方矩阵函数magic()魔方矩阵的特点是每行、每列及两条对角线上的元素和都相等。对于n阶魔方阵,其元素由1,2,3,nn共nn个整数组成。函数为magic(),调用方法为:Y=magic(n)生成nn阶魔方矩阵。2022年年11月月8日星期二日星期二12【例2.5】建立一个魔方矩阵 解 在MATLAB命令提示符下输入:clear Y=magic(4)Y=16 2 3 13 5 11 10 8 9 7 6 12 4 14 1
7、5 12022年年11月月8日星期二日星期二134范得蒙(Vandermonde)矩阵函数vander()范得蒙(Vandermonde)矩阵的特点是最后一列全为1,倒数第二列为一个指定的向量,倒数第二列为一个指定的向量,其他各列是其后列与倒数第二列的点积。生成范得蒙矩阵的函数为vander(),调用方法为:vander(x)其中x为一给定向量,可以用此向量生成一个范得蒙矩阵。2022年年11月月8日星期二日星期二14【例2.6】利用向量m建立一个范得蒙矩阵 解 在MATLAB命令提示符下输入:m=2 3 4 5;vander(m)ans=8 4 2 1 27 9 3 1 64 16 4 1
8、125 25 5 1 2022年年11月月8日星期二日星期二155托普利兹(Toeplitz)矩阵函数toeplitz()托普利兹(Toeplitz)矩阵的特点是除第一行、第一列外,其他每个元素都与左上角的元素相同。生成托普利兹矩阵的函数为toeplitz()。调用方法为:A=toeplitz(b,c)生成一个把b作为第1列、把c作为第一行、其他元素与左上角相邻元素相等的矩阵。2022年年11月月8日星期二日星期二16【例2.7】建立一个托普利兹矩阵 解 在MATLAB命令提示符下输入:clear b=8 9 4 5 7;c=8 2 3 12 15 10;A=toeplitz(b,c)A=8
9、2 3 12 15 10 9 8 2 3 12 15 4 9 8 2 3 12 5 4 9 8 2 3 7 5 4 9 8 22022年年11月月8日星期二日星期二172.1.3 用冒号表达式建立矩阵 利用冒号表达式建立矩阵时,只需要把冒号表达式加中括号就可以了。需要注意的是:用冒号表达式建立矩阵一定要每行的元素个数相等。冒号表达式格式为:a1:a2:a3其中,a1是起始数据,a2是步长,a3是终止数据。若a2省略不写,则默认步长为1。2022年年11月月8日星期二日星期二18【例2.8】用冒号表达式建立矩阵 解 在MATLAB命令提示符下输入:clear Y=1:1:6Y=1 2 3 4 5
10、 6 Y=1:4;5:8 Y=1 2 3 4 5 6 7 8 Y=1:4;5:9 这里无法建立矩阵,因为14是4个元素,59是5个元素。这里的“%”后面的文字表示对MATLAB命令的注释,以后不再一一说明。2022年年11月月8日星期二日星期二192.1.4 创建复合矩阵 复合矩阵可由中括号中的小矩阵建立。【例2.9】生成一个复合矩阵Y,它由小矩阵X建立。解 在MATLAB命令提示符下输入:clear X=1 2 3;4 5 6;7 8 9X=1 2 3 4 5 6 7 8 9 size(X)ans=3 3 eye(size(X)ans=1 0 0 0 1 0 0 0 12022年年11月月8
11、日星期二日星期二20 ones(size(X)ans=1 1 1 1 1 1 1 1 1 Y=X,eye(size(X);ones(size(X),XY=1 2 3 1 0 0 4 5 6 0 1 0 7 8 9 0 0 1 1 1 1 1 2 3 1 1 1 4 5 6 1 1 1 7 8 9 Z=X X+1Z=1 2 3 2 3 4 4 5 6 5 6 7 7 8 9 8 9 102022年年11月月8日星期二日星期二212.2 矩阵的算术运算 矩阵的算术运算包括:(加)、(减)、*(乘)、/(右除)、(左除)、及其(乘方)运算。使用MATLAB可以方便地实现矩阵的算术运算。2022年年1
12、1月月8日星期二日星期二222.2.1 加、减运算 两个矩阵进行加、减运算时,两个矩阵必须具有相同的行数和列数。【例2.10】两个矩阵相加减。解 在MATLAB命令提示符下输入:A=1,2,3;4,5,3;9,5,6;B=12,11,10;8,7,5;1,5,2;A+Bans=13 13 13 12 12 8 10 10 8 A-Bans=-11 -9 -7 -4 -2 -2 8 0 42022年年11月月8日星期二日星期二232.2.2 乘法 两个矩阵A、B进行乘法运算(AB)时,矩阵A(nm)的列数必须和矩阵B(mk)的行数相等,乘法运算后生成一个nk阶矩阵。2022年年11月月8日星期二
13、日星期二241两个矩阵相乘【例2.11】求两个矩阵X、Y相乘后得到的矩阵Z。解 在MATLAB命令提示符下输入:X=1 3 5 7;2 4 6 8;Y=1 2 3;4 5 6;7 8 9;5 4 0;Z=X*YZ=83 85 66 100 104 842022年年11月月8日星期二日星期二252矩阵的数乘 【例2.12】求数乘矩阵Y=4X。解 在MATLAB命令提示符下输入:clear X=1 2 3 4;5 6 7 8X=1 2 3 4 5 6 7 8 Y=4*XY=4 8 12 16 20 24 28 322022年年11月月8日星期二日星期二263矩阵的乘方【例2.13】求矩阵的乘方Y=
14、X2、Y=X3。解 在MATLAB命令提示符下输入:clear X=1 2 3;4 5 6;7 8 9X=1 2 3 4 5 6 7 8 9Y=X2Y=30 36 42 66 81 96 102 126 150 Y=X3Y=468 576 684 1062 1305 1548 1656 2034 24122022年年11月月8日星期二日星期二272.2.3 矩阵相除 在MATLAB中,矩阵相除分为左除()和右除(/)。X=AB是方程AXB的解;而X=A/B是方程XA=B的解。注意左除和右除里面的A、B必须就有相应的行和列。2022年年11月月8日星期二日星期二28【例2.14】已知矩阵A、B,
15、求矩阵X解 在MATLAB命令提示符下输入:clear A=eye(3)A=1 0 0 0 1 0 0 0 1B=1 2 3;4 5 6;7 8 9B=1 2 3 4 5 6 7 8 9X=AB X=1 2 3 4 5 6 7 8 9X=B/A%矩阵右除,求X*A=B的解X=1 2 3 4 5 6 7 8 92022年年11月月8日星期二日星期二292.3 矩阵线性运算 矩阵的线性运算包括矩阵的特征值与特征向量的求法、正交基、二次型、秩和线性相关性等运算。MATLAB为矩阵的线性运算提供了大量的运算函数,通过调用这些函数,可以进行相应的矩阵线性运算。2022年年11月月8日星期二日星期二302
16、.3.1 矩阵的特征值 1矩阵特征值与特征向量的求法 如果A是nn矩阵,若存在实数和向量x满足式子Axx,则为A的特征值,x为A的特征向量。计算矩阵A的特征值和特征向量的函数是eig(A),有以下3种常用的调用格式:(1)E=eig(A):(2)V,D=eig(A):(3)V,D=eig(A,nobalance):2022年年11月月8日星期二日星期二312.3.1 矩阵的特征值 2复对角矩阵转化为实对角矩阵cdf2rdf()通过调用函数cdf2rdf()可以将复对角矩阵转化为实对角矩阵。调用格式为:V,D=cdf2rdf(v,d)将复对角阵d变为实对角阵D,在对角线上,用22实数块代替共轭复
17、数对。2022年年11月月8日星期二日星期二322.3.2 矩阵的正交基 通过调用函数orth()可以求矩阵正交基。调用格式为:B=orth(A)将矩阵A正交规范化,B的列与A的列具有相同的空间,B的列向量是正交向量,且满足B*B=eye(rank(A)。这里rank(A)表示矩阵的秩。2022年年11月月8日星期二日星期二33【例2.19】将矩阵 正交规范化 解 在MATLAB命令提示符下输入:clear Y=8 0 0;0 4 2;0 5 9;B=orth(Y)B=0 1.0000 0 -0.3540 0 -0.9352 -0.9352 0 0.3540 Q=B*BQ=1.0000 0 -
18、0.0000 0 1.0000 0-0.0000 0 1.0000800042059Y2022年年11月月8日星期二日星期二342.3.3 矩阵的二次型 n个变量的二次齐次函数 ,其中,,(i,j=1,2,n),称为n元二次型,简称二次型。若令,则二次型f可改写为矩阵向量形式f=xTAx。其中A称为二次型矩阵。任一实二次型f都可合同变换为规范型 jininjijnyxaxxxf1121),(jiijaa 12,.nxx xx11 1212122212.;.;,.nnnnnnAa aaa aaaaa11 1212122212.;.;,.nnnnnnAa aaa aaaaa22122221rppz
19、zzzzf2022年年11月月8日星期二日星期二35【例2.20】求一个正交变换X=PY,把二次型f(x1,x2,x3)化成标准形。解 在MATLAB命令提示符下输入:clearA=0 2-2;2 4 4;-2 4-3;A=0 2-2;2 4 4;-2 4-3A=0 2 -2 2 4 4-2 4 -3 P,D=eig(A)P=0.4082 0.8944 -0.1826 -0.4082 -0.0000 -0.9129 0.8165 -0.4472 -0.3651D=-6.0000 0 0 0 1.0000 0 0 0 6.00002212323121 323(,)43448f x x xxxx
20、xx xx x2022年年11月月8日星期二日星期二36 syms y1 y2 y3%声明变量 y=y1;y2;y3y=y1 y2 y3 X=vpa(P,2)*y X=.43*y1+.88*y2-.18*y3 -.43*y1-.66e-16*y2-.94*y3 .83*y1-.44*y2-.37*y3 f=y1 y2 y3*D*yf=-6*y12+y22+6*y322022年年11月月8日星期二日星期二372.3.4 秩 1矩阵和向量组的秩 矩阵A的秩指的是矩阵A中非零子式最高阶的阶数,记为r(A);向量组的秩通常通过该向量组构成的矩阵来计算。通过调用函数rank()可以求矩阵的秩。调用格式为
展开阅读全文