书签 分享 收藏 举报 版权申诉 / 73
上传文档赚钱

类型第2章-MATLAB矩阵和数组运算概况课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:4073825
  • 上传时间:2022-11-08
  • 格式:PPT
  • 页数:73
  • 大小:555KB
  • 【下载声明】
    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()可以求矩阵的秩。调用格式为

    21、:k=rank(A)返回矩阵A的行(或列)向量中线性无关个数。k=rank(A,tol)tol为给定误差。2022年年11月月8日星期二日星期二38【例2.22】求向量组a1=(1 2 1 3),a2=(4 -1 -5 -6),a3=(-1 -3 -4 -7),a4=(2 1 2 0)的秩,并判断其线性相关性。解 在MATLAB命令提示符下输入:clearZ=1 2 1 3;4-1-5-6;-1-3-4-7;2 1 2 0;k=rank(Z)k=42022年年11月月8日星期二日星期二392.4 矩 阵 分 析 矩阵分析主要包括矩阵结构的变换,如矩阵的转置、矩阵的旋转、矩阵的左右翻转、矩阵的上

    22、下翻转;矩阵的逆与伪逆的运算;方阵的行列式的运算。利用MATLAB可以方便快捷地进行上述运算。2022年年11月月8日星期二日星期二402.4.1 矩阵结构变换 1矩阵的转置 矩阵转置的运算符是()。【例2.23】求矩阵A的转置。解 在MATLAB命令提示符下输入:clear A=1 2 3;4 5 6 A=1 2 3 4 5 6 A=1 2 3;4 5 6 A=1 4 2 5 3 62022年年11月月8日星期二日星期二412矩阵的旋转 矩阵的旋转是利用函数rot90(A,k),功能是将矩阵A旋转90的k倍,当k为1时可省略。【例2.24】求矩阵B的旋转。解 在MATLAB命令提示符下输入:

    23、clear A=1 2 3;4 5 6 A=1 4 2 5 3 6 B=rot90(A,1)B=4 5 6 1 2 3 B=rot90(A,2)B=6 3 5 2 4 12022年年11月月8日星期二日星期二423矩阵的左右翻转 通过调用函数fliplr(A)可以实现矩阵的左右翻转。【例2.25】求矩阵A的左右翻转。解 在MATLAB命令提示符下输入:clear A=1 2 3;4 5 6A=1 4 2 5 3 6 fliplr(A)ans=4 1 5 2 6 32022年年11月月8日星期二日星期二434矩阵的上下翻转 通过调用函数flipud(A)可以实现矩阵的上下翻转。【例2.26】求矩

    24、阵A的上下翻转。解 在MATLAB命令提示符下输入:clear A=1 2 3;4 5 6 flipud(A)ans=3 6 2 5 1 42022年年11月月8日星期二日星期二442.4.2 矩阵的逆与伪逆 1矩阵的逆 通过调用函数inv(A)可以求矩阵A的逆。【例2.27】用求逆矩阵的方法解线性方程组6278294532321321321xxxxxxxxx2022年年11月月8日星期二日星期二45 解 在MATLAB命令提示符下输入:clear A=1,2,3;1,4,9;1,8,27;b=5,2,6;%A*X=B x=inv(A)*bx=23.0000-14.5000 3.6667202

    25、2年年11月月8日星期二日星期二46 2矩阵的伪逆 伪逆矩阵又称为广义逆矩阵。当矩阵A的行数m与列数n不等或det|A|=0时,则不存在逆矩阵。但存在广义逆矩阵P,它满足APA=A,PAP=P。在MATLAB中,调用函数pinv(A)可以求一个矩阵的伪逆矩阵。2022年年11月月8日星期二日星期二47【例2.28】求A的伪逆,并将结果存储到B中。解 在MATLAB命令提示符下输入:clearA=3,1,1,1;1,3,1,1;1,1,3,1;B=pinv(A)B=0.3929 -0.1071 -0.1071 -0.1071 0.3929 -0.1071 -0.1071 -0.1071 0.39

    26、29 0.0357 0.0357 0.03572022年年11月月8日星期二日星期二482.4.3 方阵的行列式 求方阵A所对应的行列式的值的函数是det(A)。【例2.30】求方阵A的行列式的值。解 在MATLAB命令提示符下输入:clear A=ones(4)A=1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 det(A)ans=02022年年11月月8日星期二日星期二49 A=magic(4)A=16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 det(A)ans=0 A=3 2-4 6;8 7 6 5;4 9 7-6;-3 4 6 8A=3

    27、2 -4 6 8 7 6 5 4 9 7 -6-3 4 6 8 det(A)ans=-56062022年年11月月8日星期二日星期二502.5 矩 阵 分 解 矩阵的分解主要包括矩阵的三角分解、矩阵的正交分解、矩阵的根分解。MATLAB为矩阵的分解提供了简单好用的命令函数,可以快速实现矩阵的分解,大大提高运算速度。2022年年11月月8日星期二日星期二512.5.1 矩阵的三角分解 三角分解又称LU分解、Gauss消去分解,可以将任何方阵表示为一个下三角阵L和一个上三角阵U的乘积,即A=LU。LU分解的命令为L,U=lu(A)。具体为:L,U=lu(A)。即将方阵A分解为交换下三角矩阵L和上三

    28、角矩阵U,使A=LU。L,U,P=lu(A)。即将方阵A分解为变换形式下的三角矩阵L和上三角矩阵U,使PA=LU。例如:A*X=b变成L*U*X=b,所以X=U(Lb),这样可以大大提高运算速度。2022年年11月月8日星期二日星期二52【例2.32】LU分解3阶幻方矩阵。解 在MATLAB命令提示符下输入:clear A=magic(3);L,U=lu(A);L=1.0000 0 0 0.3750 0.5441 1.0000 0.5000 1.0000 0 U=8.0000 1.0000 6.0000 0 8.5000 1.0000 0 0 5.2942022年年11月月8日星期二日星期二5

    29、32.5.2 矩阵的正交分解 正交分解,即QR分解,就是将矩阵分解为一个正交阵或者酉矩阵和一个上三角阵的乘积。其中R为上三角阵,Q为酉矩阵。E为置换矩阵,使得A*E=Q*R。对矩阵A进行QR分解的函数是Q,R=qr(A),根据方阵A,求一个正交矩阵Q和一个上三角矩阵R,使A=Q*R。命令为:Q,R=qr(A)Q,R,E=qr(A)Q,R=qr(A,0)Q,R,E=qr(A,0)2022年年11月月8日星期二日星期二542.5.3 矩阵的平方根分解 应用MATLAB函数C=chol(A)可以实现矩阵A的平方根分解。如果矩阵A是正定矩阵,那么存在唯一的对角线元素为正数的下三角矩阵L,让A=LL。平

    30、方根分解的目的就是找出这个矩阵L。2022年年11月月8日星期二日星期二55【例2.35】用平方根分解法分解矩阵A和a。解 在MATLAB命令提示符下输入:a=6 3 1;6 4 2;2 2 2a=6 3 1 6 4 2 2 2 2 c=chol(a)c=2.4495 1.2247 0.4082 0 1.5811 0.9487 0 0 0.9661 c*cans=6.0000 3.0000 1.0000 3.0000 4.0000 2.0000 1.0000 2.0000 2.0000 2022年年11月月8日星期二日星期二56 A=1 1 1;1 2 3;1 3 6A=1 1 1 1 2 3

    31、 1 3 6 c=chol(A)c=1 1 1 0 1 2 0 0 1 c*cans=1 1 1 1 2 3 1 3 62022年年11月月8日星期二日星期二572.6 稀 疏 矩 阵 稀疏矩阵指的是矩阵中只包含个别非零元素,非零元素仅占总元素的1%甚至更少。对于那些非零元素很少的大矩阵来说,按照行列进行存储,会造成计算机资源的很大浪费。因此MATLAB对稀疏矩阵采取了特殊的处理,但运算规则和满阵一样。2022年年11月月8日星期二日星期二582.6.1 稀疏矩阵的创建 1调用函数创建稀疏矩阵sparse()调用函数sparse()可以创建稀疏矩阵。调用格式:S=sparse(A)将矩阵A转化

    32、为稀疏矩阵形式,即由A的非零元素和下标构成稀疏矩阵S,若A本身为稀疏矩阵,则返回A本身;S=sparse(m,n)生成一个mn的所有元素都是0的稀疏矩阵。2022年年11月月8日星期二日星期二59 2将满矩阵转化为稀疏矩阵full()将满矩阵转化为稀疏矩阵的函数为full()。调用格式为:A=full(S)其中,S为稀疏矩阵,A为满矩阵。2022年年11月月8日星期二日星期二602.6.2 查看稀疏矩阵 1使用find()函数查看稀疏矩阵 find()函数可以用来查看所有矩阵,调用格式为:i,j,s=find(A)其中,i、j、s为返回值,i为非零元素的行下标向量,j为非零元素的列下标向量,s

    33、为非零元素值向量。2022年年11月月8日星期二日星期二61 2查看稀疏矩阵非零元素的分布图形 调用函数spy()可以查看稀疏矩阵中非零元素的分布图形。调用格式为:spy(S)画出稀疏矩阵S中非零元素的分布图形。S也可以是满矩阵。spy(S,markersize)markersize为整数,指定点阵大小。spy(S,LineSpec)LineSpec指定绘图标记和颜色。spy(S,LineSpec,markersize)参数含义与上面相同。2022年年11月月8日星期二日星期二622.6.3 稀疏矩阵的运算 1稀疏矩阵的基本运算 计算稀疏矩阵中非零元素的个数:计算稀疏矩阵中非零元素个数的函数为

    34、nnz()。调用格式为:n=nnz(X)返回矩阵X中非零元素的个数。2022年年11月月8日星期二日星期二63 2稀疏矩阵的排序(1)列最小度排序:对矩阵排序常用的方法是列最小度排序法。列最小度排序函数为:B=colmmd(A)返回一个稀疏矩阵S的列最小度排序向量B。按B排列后的矩阵为S(:,B)。(2)稀疏矩阵逆Cuthill-McKee排序:稀疏矩阵逆Cuthill-McKee排序函数为symrcm()。调用格式为:r=symrcm(S)返回S的对称逆Cuthill-McKee排序r,使S的非0元素集中在主对角线附近。2022年年11月月8日星期二日星期二64 3稀疏矩阵的置换 对稀疏矩阵

    35、置换分为行置换和列置换。假定B是一个置换矩阵,对稀疏矩阵A的行置换表示为BA,对稀疏矩阵A的列置换表示为AB。4稀疏矩阵的排列 稀疏矩阵对称最小度排列:稀疏矩阵对称最小度排列函数为symamd()。调用格式为:p=symamd(S)返回S的对称最小度排列向量p,S为对称正定矩阵。2022年年11月月8日星期二日星期二652.7 矩阵的初等变换 在线性代数中,常把矩阵通过行变换化为行最简形,即非零行向量的第一个元素为1,且包含这些元素的列的其他元素都为0。利用矩阵的行最简形,可以求出矩阵的秩、矩阵的逆、向量的最大无关组,在MATLAB中调用函数rref()就可以把矩阵化为行最简形,其格式为:R=

    36、rref(A)给出矩阵的行最简形。R,jb=rref(A)jb是一个向量,r=length(jb)是矩阵A的秩,A(:,jb)为矩阵的列向量基,jb表示列向量基的所在列数。2022年年11月月8日星期二日星期二662.8 MATLAB的数组运算 矩阵与数组都是指含有M行N列数字的矩形结构。它们的外观相同,但是代表不同的变量。数组有行与列的概念,数组运算是两矩阵对应元素进行相关运算,要求两矩阵的维数相同。而矩阵运算则采用线性代数的运算方式。2022年年11月月8日星期二日星期二672.8.1 创建数组 创建数组与创建矩阵的方法相同。【例2.49】创建一个数组A。解 在MATLAB命令提示符下输入

    37、:clear A=1:6A=1 2 3 4 5 62022年年11月月8日星期二日星期二682.8.2 数组的算术运算 1数组的加减运算【例2.50】求数组A+B,A-B。解 在MATLAB命令提示符下输入:clear A=1:6A=1 2 3 4 5 6 B=7:12B=7 8 9 10 11 12 A+Bans=8 10 12 14 16 18 A-Bans=-6 -6 -6 -6 -6 -62022年年11月月8日星期二日星期二69 2数组的标量运算【例2.51】求数组A4。解 在MATLAB命令提示符下输入:clear A=1:6A=1 2 3 4 5 6 A*4ans=4 8 12

    38、16 20 242022年年11月月8日星期二日星期二70 3数组的乘法运算【例2.52】求数组AB。解 在MATLAB命令提示符下输入:clear A=1:6A=1 2 3 4 5 6 B=7:12B=7 8 9 10 11 12 A.*Bans=7 16 27 40 55 72 B.*Aans=7 16 27 40 55 722022年年11月月8日星期二日星期二714数组的除法运算【例2.53】求数组A/B、B/A。解 在MATLAB命令提示符下输入:clear A=1:6A=1 2 3 4 5 6 B=7:12B=7 8 9 10 11 12 A./Bans=0.1429 0.2500

    39、 0.3333 0.4000 0.4545 0.5000 B./Aans=7.0000 4.0000 3.0000 2.5000 2.2000 2.0000 A.Bans=7.0000 4.0000 3.0000 2.5000 2.2000 2.0000 B.Aans=0.1429 0.2500 0.3333 0.4000 0.4545 0.50002022年年11月月8日星期二日星期二725数组的乘方运算【例2.54】求数组的乘方运算。解 在MATLAB命令提示符下输入:clear A=1:6A=1 2 3 4 5 6 B=0:5B=0 1 2 3 4 5 A.*2ans=2 4 6 8 1

    40、0 12 A.2ans=1 4 9 16 25 36 A.Bans=Columns 1 through 5 1 2 9 64 625 Column 6 7776 A.*Bans=0 2 6 12 20 302022年年11月月8日星期二日星期二73小 结 本章重点为矩阵的建立,其中包括利用相关函数命令建立矩阵和直接建立矩阵两种方法 矩阵的算术运算,包括:(加)、(减)、*(乘)、/(右除)、(左除)及(乘方)运算 矩阵的线性运算,包括矩阵的特征值与特征向量的求法、正交基、二次型、秩和线性相关性等运算 矩阵分析包括矩阵的结构变换、矩阵的逆与伪逆、方阵的行列式 矩阵分解包括矩阵的三角分解、正交分解、平方根分解;稀疏矩阵的相关运算以及MATLAB数组的相关运算

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:第2章-MATLAB矩阵和数组运算概况课件.ppt
    链接地址:https://www.163wenku.com/p-4073825.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库