《第2章 数值计算功能精选PPT.ppt》由会员分享,可在线阅读,更多相关《第2章 数值计算功能精选PPT.ppt(66页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第2章 数值计算功能第1页,此课件共66页哦n n MATLABMATLAB应用相当广泛的一个领域是解决数值计算问题。这是由应用相当广泛的一个领域是解决数值计算问题。这是由应用相当广泛的一个领域是解决数值计算问题。这是由应用相当广泛的一个领域是解决数值计算问题。这是由于于于于MATLAB MATLAB 对处理数组具有非凡的能力,使其成为许多科学与工对处理数组具有非凡的能力,使其成为许多科学与工对处理数组具有非凡的能力,使其成为许多科学与工对处理数组具有非凡的能力,使其成为许多科学与工程应用中的一个有力的工具。本章主要介绍矩阵的创建、运算以程应用中的一个有力的工具。本章主要介绍矩阵的创建、运算以
2、程应用中的一个有力的工具。本章主要介绍矩阵的创建、运算以程应用中的一个有力的工具。本章主要介绍矩阵的创建、运算以及如何运用及如何运用及如何运用及如何运用MATLABMATLAB解决线性代数中的相关问题。解决线性代数中的相关问题。解决线性代数中的相关问题。解决线性代数中的相关问题。n n【学习目标】【学习目标】【学习目标】【学习目标】n n能够创建矩阵,并熟练掌握矩阵的各种运算法则能够创建矩阵,并熟练掌握矩阵的各种运算法则能够创建矩阵,并熟练掌握矩阵的各种运算法则能够创建矩阵,并熟练掌握矩阵的各种运算法则n n掌握稀疏矩阵的基本操作。掌握稀疏矩阵的基本操作。掌握稀疏矩阵的基本操作。掌握稀疏矩阵的
3、基本操作。n n学会运用学会运用学会运用学会运用MATLABMATLAB解决线性代数的相关问题。解决线性代数的相关问题。解决线性代数的相关问题。解决线性代数的相关问题。n n掌握如何运用掌握如何运用掌握如何运用掌握如何运用MATLABMATLAB实现数据的插值、曲线的拟合和零极点实现数据的插值、曲线的拟合和零极点实现数据的插值、曲线的拟合和零极点实现数据的插值、曲线的拟合和零极点的求解。的求解。的求解。的求解。第2页,此课件共66页哦2.1 矩阵及其运算矩阵及其运算n nMATLAB最基本、最重要的功能就是进行矩阵运算。所有的数值功能都是以矩阵为基本单位实现的。第3页,此课件共66页哦2.1.
4、1 矩阵生成矩阵生成n n1.1.直接生成直接生成直接生成直接生成n n矩阵的生成可以通过在方括号矩阵的生成可以通过在方括号矩阵的生成可以通过在方括号矩阵的生成可以通过在方括号中输入元素实现,不同行之间要用分中输入元素实现,不同行之间要用分中输入元素实现,不同行之间要用分中输入元素实现,不同行之间要用分号隔开,不同列用空格分开。号隔开,不同列用空格分开。号隔开,不同列用空格分开。号隔开,不同列用空格分开。n n【例【例【例【例2-12-1】生成一个】生成一个】生成一个】生成一个2 23 3矩阵。矩阵。矩阵。矩阵。n n a=1 2 3;4 5 6 a=1 2 3;4 5 6 n na=a=n
5、n 1 2 3 1 2 3n n 4 5 6 4 5 6n n可以用冒号快速建立矩阵,步长在默认的情况下为可以用冒号快速建立矩阵,步长在默认的情况下为可以用冒号快速建立矩阵,步长在默认的情况下为可以用冒号快速建立矩阵,步长在默认的情况下为1 1,也可,也可,也可,也可以自定义步长。以自定义步长。以自定义步长。以自定义步长。n n a=1:3;4:6 a=1:3;4:6n na=a=n n 1 2 3 1 2 3n n 4 5 6 4 5 6第4页,此课件共66页哦n n2.2.函数生成函数生成函数生成函数生成n nMATLABMATLAB中提供了特殊函数可以生成特殊矩阵。中提供了特殊函数可以生
6、成特殊矩阵。中提供了特殊函数可以生成特殊矩阵。中提供了特殊函数可以生成特殊矩阵。n n【例【例【例【例2-22-2】生成一个】生成一个】生成一个】生成一个2323全零矩阵,一个全零矩阵,一个全零矩阵,一个全零矩阵,一个3333单位矩阵。单位矩阵。单位矩阵。单位矩阵。n n a=zeros(2 a=zeros(2,3)3)%生成生成生成生成2323全零阵全零阵全零阵全零阵n na=a=n n 0 0 0 0 0 0 n n 0 0 0 0 0 0 n n a=eye(3 a=eye(3,3)%3)%生成生成生成生成3333单位阵单位阵单位阵单位阵n na=a=n n 1 0 0 1 0 0n n
7、 0 1 0 0 1 0n n 0 0 1 0 0 1 第5页,此课件共66页哦 常用的特殊矩阵列在表常用的特殊矩阵列在表常用的特殊矩阵列在表常用的特殊矩阵列在表2.12.1当中。当中。当中。当中。表表表表2.12.1常用的特殊矩阵常用的特殊矩阵常用的特殊矩阵常用的特殊矩阵函数函数函数函数功能功能功能功能函数函数函数函数命令命令命令命令zeroszeros生成全生成全生成全生成全0 0矩矩矩矩阵阵阵阵compancompan生成多生成多生成多生成多项项项项式的友矩式的友矩式的友矩式的友矩阵阵阵阵eyeeye生成生成生成生成单单单单位矩位矩位矩位矩阵阵阵阵hadamardhadamard生成哈达
8、生成哈达生成哈达生成哈达玛玛玛玛矩矩矩矩阵阵阵阵(由(由(由(由1 1和和和和-1-1构成的正交矩构成的正交矩构成的正交矩构成的正交矩阵阵阵阵)onesones生成全生成全生成全生成全1 1阵阵阵阵vandervander生成范德蒙矩生成范德蒙矩生成范德蒙矩生成范德蒙矩阵阵阵阵randrand生成均匀分布随机矩生成均匀分布随机矩生成均匀分布随机矩生成均匀分布随机矩阵阵阵阵hilbhilbHilbertHilbert矩矩矩矩阵阵阵阵(沿主(沿主(沿主(沿主对对对对角角角角线对线对线对线对称)称)称)称)randnrandn生成正生成正生成正生成正态态态态分布随机矩分布随机矩分布随机矩分布随机矩阵
9、阵阵阵invhilbinvhilb逆逆逆逆HilbertHilbert矩矩矩矩阵阵阵阵triltriutriltriu生成上三角或下三角矩生成上三角或下三角矩生成上三角或下三角矩生成上三角或下三角矩阵阵阵阵magicmagicMagicMagic矩矩矩矩阵阵阵阵diagdiag生成生成生成生成对对对对角矩角矩角矩角矩阵阵阵阵pascalpascalPascalPascal矩矩矩矩阵阵阵阵wilkinsonwilkinson生成威生成威生成威生成威尔尔尔尔金森矩金森矩金森矩金森矩阵阵阵阵toeplitztoeplitz托普利托普利托普利托普利兹兹兹兹矩矩矩矩阵阵阵阵第6页,此课件共66页哦2.1
10、.2 矩阵连接矩阵连接n n矩阵连接,是联合一个或多个矩阵形成一个新矩阵。方括号矩阵连接,是联合一个或多个矩阵形成一个新矩阵。方括号矩阵连接,是联合一个或多个矩阵形成一个新矩阵。方括号矩阵连接,是联合一个或多个矩阵形成一个新矩阵。方括号就就就就可以作为矩阵连接操作符。表达式可以作为矩阵连接操作符。表达式可以作为矩阵连接操作符。表达式可以作为矩阵连接操作符。表达式A=B CA=B C就是水平连接矩阵就是水平连接矩阵就是水平连接矩阵就是水平连接矩阵BB和和和和C C;A=BA=B;CC就是垂直连接矩阵就是垂直连接矩阵就是垂直连接矩阵就是垂直连接矩阵BB和和和和C C连接矩阵也可以用函数连接矩阵也可
11、以用函数连接矩阵也可以用函数连接矩阵也可以用函数形成一个新矩阵,如形成一个新矩阵,如形成一个新矩阵,如形成一个新矩阵,如catcat函数。函数。函数。函数。catcat函数调用格式:函数调用格式:函数调用格式:函数调用格式:n n1)C=cat(dim1)C=cat(dim,AA,B)B)n nDimDim指链接方向。指链接方向。指链接方向。指链接方向。DimDim的可选值:的可选值:的可选值:的可选值:1 1,垂直方向;,垂直方向;,垂直方向;,垂直方向;2 2,水平方向;,水平方向;,水平方向;,水平方向;3 3,生成三维数组。,生成三维数组。,生成三维数组。,生成三维数组。n n2)C=
12、cat(dim2)C=cat(dim,A1A1,A2A2,)n n可以实现连接多个矩阵。可以实现连接多个矩阵。可以实现连接多个矩阵。可以实现连接多个矩阵。第7页,此课件共66页哦n n【例【例【例【例2-32-3】把矩阵】把矩阵】把矩阵】把矩阵AA,BB分别在垂直方向,水平方向连接,分别在垂直方向,水平方向连接,分别在垂直方向,水平方向连接,分别在垂直方向,水平方向连接,A=1 2 A=1 2 33,B=4 5 6B=4 5 6。n n C1=cat(1 C1=cat(1,A A,B)%B)%垂直方向连接垂直方向连接n nC1=C1=n n 1 2 3 1 2 3n n 4 5 6 4 5 6
13、n n C2=cat(2 C2=cat(2,A A,B)%B)%水平方向连接水平方向连接n nC2=C2=n n 1 2 3 4 5 6 1 2 3 4 5 6第8页,此课件共66页哦表表2.2列出了常用的连接矩阵函数。列出了常用的连接矩阵函数。表表2.2 连接矩阵函数连接矩阵函数函数函数函数函数功能功能功能功能函数函数函数函数功能功能功能功能catcat连连连连接矩接矩接矩接矩阵阵阵阵rematremat复制一个矩复制一个矩复制一个矩复制一个矩阵阵阵阵到另一个到另一个到另一个到另一个矩矩矩矩阵阵阵阵horzcathorzcat水平水平水平水平连连连连接多个矩接多个矩接多个矩接多个矩阵阵阵阵b
14、lkdiagblkdiag对对对对角角角角连连连连接多个矩接多个矩接多个矩接多个矩阵阵阵阵vertcatvertcat垂直垂直垂直垂直连连连连接多个矩接多个矩接多个矩接多个矩阵阵阵阵第9页,此课件共66页哦2.1.3 2.1.3 矩阵元素的下标引用及操作矩阵元素的下标引用及操作矩阵元素的下标引用及操作矩阵元素的下标引用及操作n n1.矩阵下标矩阵下标 n n在MATLAB中,矩阵元素的引用可以通过下标表示,通常有如下规则:n n1)1)用两个下标来表示:在矩阵用两个下标来表示:在矩阵A A中,第中,第i i行行j j列的元素用列的元素用A A(i(i,j)j)来表示。来表示。n n2)2)用一
15、个下标来表示:对于矩阵,由于用一个下标来表示:对于矩阵,由于MATLABMATLAB的的基本运算都是对列操作的,矩阵认为是按列优先排基本运算都是对列操作的,矩阵认为是按列优先排列的一个长的列向量,从而可用单下标引用。列的一个长的列向量,从而可用单下标引用。第10页,此课件共66页哦n n【例【例2-42-4】提取矩阵的元素。】提取矩阵的元素。n n A=1 2 3;4 5 6;7 8 9 A=1 2 3;4 5 6;7 8 9n nA=A=n n1 2 31 2 3n n4 5 64 5 6n n7 8 97 8 9n n可以用可以用A(m,n)A(m,n)选出第选出第mm行行n n列的元素。
16、列的元素。n n A(2,3)A(2,3)n nans=ans=n n6 6n n也可以用一个下标选出元素。也可以用一个下标选出元素。n n A(8)A(8)n nans=ans=n n6 6第11页,此课件共66页哦n n2.2.矩阵的抽取矩阵的抽取矩阵的抽取矩阵的抽取n n用下标可以从大矩阵里面抽取某些元素组成小的矩阵,并使用()运算符。n n【例【例2-52-5】提取矩阵】提取矩阵A A的前的前2 2行为一个新矩阵行为一个新矩阵B B。n nB=A(1:2,:)B=A(1:2,:)%B=A(12,:)B=A(12,:)n nB=B=n n 1 2 3 1 2 3n n 4 5 6 4 5
17、 6第12页,此课件共66页哦n n3.3.删除矩阵的行和列删除矩阵的行和列删除矩阵的行和列删除矩阵的行和列 n n我们把空的中括号我们把空的中括号我们把空的中括号我们把空的中括号称为空矩阵,即矩阵大小为称为空矩阵,即矩阵大小为称为空矩阵,即矩阵大小为称为空矩阵,即矩阵大小为0000。可以通。可以通。可以通。可以通过把矩阵的行或列赋值为空矩阵来删除某行或某列。过把矩阵的行或列赋值为空矩阵来删除某行或某列。过把矩阵的行或列赋值为空矩阵来删除某行或某列。过把矩阵的行或列赋值为空矩阵来删除某行或某列。n n【例【例【例【例2-62-6】删除上例中】删除上例中】删除上例中】删除上例中AA的第的第的第的
18、第1 1,2 2列。列。列。列。n n A(:,1 2)=A(:,1 2)=n nA=A=n n 3 3n n 6 6n n 9 9n n 在在在在MATLABMATLAB里不能用双下标来删除矩阵的某个元素,里不能用双下标来删除矩阵的某个元素,里不能用双下标来删除矩阵的某个元素,里不能用双下标来删除矩阵的某个元素,例如例如例如例如X(1X(1,2)=2)=将给出错误信息。但可以用单下标来删除将给出错误信息。但可以用单下标来删除将给出错误信息。但可以用单下标来删除将给出错误信息。但可以用单下标来删除矩阵的某个或某些元素,矩阵的某个或某些元素,矩阵的某个或某些元素,矩阵的某个或某些元素,MATLA
19、BMATLAB删除这些元素后,将剩删除这些元素后,将剩删除这些元素后,将剩删除这些元素后,将剩下的元素按列编成一个长的行向量。下的元素按列编成一个长的行向量。下的元素按列编成一个长的行向量。下的元素按列编成一个长的行向量。第13页,此课件共66页哦n n4.reshape4.reshape函数实现改变矩阵大小函数实现改变矩阵大小函数实现改变矩阵大小函数实现改变矩阵大小n nreshapereshape函数可以实现矩阵行列大小的变化,但变化前矩阵函数可以实现矩阵行列大小的变化,但变化前矩阵函数可以实现矩阵行列大小的变化,但变化前矩阵函数可以实现矩阵行列大小的变化,但变化前矩阵行列值的乘积和变化后
20、的行列值的乘积不变。行列值的乘积和变化后的行列值的乘积不变。行列值的乘积和变化后的行列值的乘积不变。行列值的乘积和变化后的行列值的乘积不变。n nreshape(A,M,N)reshape(A,M,N)命令将矩阵命令将矩阵命令将矩阵命令将矩阵AA的所有元素分配到一个的所有元素分配到一个的所有元素分配到一个的所有元素分配到一个MMNN的新的矩阵,当矩阵的新的矩阵,当矩阵的新的矩阵,当矩阵的新的矩阵,当矩阵AA的元素个数不是的元素个数不是的元素个数不是的元素个数不是MMNN时,将返时,将返时,将返时,将返回一个错误。回一个错误。回一个错误。回一个错误。n nreshape(A,M,N,P,resh
21、ape(A,M,N,P,)命令返回由矩阵命令返回由矩阵命令返回由矩阵命令返回由矩阵AA的元素组成的的元素组成的的元素组成的的元素组成的MMNNP P.多维的矩阵,如果多维的矩阵,如果多维的矩阵,如果多维的矩阵,如果MMNNP P.与与与与AA的元素个的元素个的元素个的元素个数不一样时将返回错误。数不一样时将返回错误。数不一样时将返回错误。数不一样时将返回错误。n nreshape(A,M,N,P,reshape(A,M,N,P,)命令与命令与命令与命令与reshape(A,M,N,P,reshape(A,M,N,P,)命令的作用一样。命令的作用一样。命令的作用一样。命令的作用一样。第14页,此
22、课件共66页哦n n【例2-7】把2行3列矩阵A变成变成1行6列的矩阵B。n n B=reshape(A,1,6)n nB=n n 1 4 2 5 3 6第15页,此课件共66页哦2.1.4 矩阵运算矩阵运算n n1.1.矩阵的加、减矩阵的加、减矩阵的加、减矩阵的加、减 n n矩阵的加减运算使用、运算符,能够相加减的矩阵需满足以下两个条件之一:n n1)类型相同,即行数相等,且列数相等。n n2)2)其中一个为标量,此时的加减运算结果等于矩阵其中一个为标量,此时的加减运算结果等于矩阵中每一个元素都和标量做加减运算。中每一个元素都和标量做加减运算。n n【例【例2-82-8】求矩阵】求矩阵A A
23、与与B B的和,的和,A=1 2 3 A=1 2 3,B=2 3 B=2 3 66。n n A+B A+Bn nans=ans=n n 3 5 9 3 5 9第16页,此课件共66页哦n n2.2.矩阵的乘积矩阵的乘积矩阵的乘积矩阵的乘积 n n矩阵的乘积运算使用矩阵的乘积运算使用矩阵的乘积运算使用矩阵的乘积运算使用*运算符,而且相乘的矩阵必须满足维运算符,而且相乘的矩阵必须满足维运算符,而且相乘的矩阵必须满足维运算符,而且相乘的矩阵必须满足维数条件。如果数条件。如果数条件。如果数条件。如果A A是一个是一个是一个是一个mpmp矩阵,而矩阵,而矩阵,而矩阵,而B B是是是是pn pn 矩阵,它
24、们可以矩阵,它们可以矩阵,它们可以矩阵,它们可以相乘产生相乘产生相乘产生相乘产生mn mn 矩阵。矩阵。矩阵。矩阵。n n【例【例【例【例2-92-9】求例】求例】求例】求例2-82-8中矩阵中矩阵中矩阵中矩阵A A与与与与B B的转置矩阵的乘积。的转置矩阵的乘积。的转置矩阵的乘积。的转置矩阵的乘积。n n A*B A*Bn nans=ans=n n 26 26n n在在在在MATLABMATLAB里,单引号表示复共轭转置,一个点加单引号里,单引号表示复共轭转置,一个点加单引号里,单引号表示复共轭转置,一个点加单引号里,单引号表示复共轭转置,一个点加单引号“.”“.”表示普通转置,即沿主对角线
25、左上与右下相对元表示普通转置,即沿主对角线左上与右下相对元表示普通转置,即沿主对角线左上与右下相对元表示普通转置,即沿主对角线左上与右下相对元素对调。素对调。素对调。素对调。n nBBn nans=ans=n n22n n33n n66第17页,此课件共66页哦n n3 3、矩阵的除法、矩阵的除法、矩阵的除法、矩阵的除法n nMATLABMATLAB定义了矩阵的左除及右除。定义了矩阵的左除及右除。定义了矩阵的左除及右除。定义了矩阵的左除及右除。“”“”运算符号表示两个运算符号表示两个运算符号表示两个运算符号表示两个矩阵的左除,矩阵的左除,矩阵的左除,矩阵的左除,“/”“/”表示两个矩阵的右除。
26、表示两个矩阵的右除。表示两个矩阵的右除。表示两个矩阵的右除。ABAB即由即由即由即由GaussGauss消去消去消去消去法来获得线性方程法来获得线性方程法来获得线性方程法来获得线性方程AXAXB B的解的解的解的解X X,即,即,即,即X XA A-1-1B B。n n矩阵的右除:矩阵的右除:矩阵的右除:矩阵的右除:MATLABMATLAB用用用用“/”“/”表示两个矩阵的右除。表示两个矩阵的右除。表示两个矩阵的右除。表示两个矩阵的右除。X*A=BX*A=B的解是的解是的解是的解是X=B/AX=B/A,对于非奇异方阵,对于非奇异方阵,对于非奇异方阵,对于非奇异方阵A A,B/AB/A等效为等效
27、为等效为等效为BABA-1-1 。n n【例【例【例【例2-102-10】求矩阵】求矩阵】求矩阵】求矩阵a a与与与与b b的左除和右除。的左除和右除。的左除和右除。的左除和右除。n n c=ab%c=ab%矩阵左除,相当于矩阵左除,相当于inv(a)*binv(a)*bn nc=c=n n 0.3333 0.6000 -0.2000 0.3333 0.6000 -0.2000n n -0.6667 -0.4000 0.8000 -0.6667 -0.4000 0.8000n n 1.0000 0.4000 0.2000 1.0000 0.4000 0.2000n n d=a/b%d=a/b%
28、矩阵右除,相当于矩阵右除,相当于a*inv(b)a*inv(b)n nd=d=n n 1.3333 1.3333 -1.0000 1.3333 1.3333 -1.0000n n 0 -0.5000 1.5000 0 -0.5000 1.5000n n 1.6667 0.1667 -0.5000 1.6667 0.1667 -0.5000第18页,此课件共66页哦表表2.3给出了可以获得有关矩阵的形状与大小信息的函数给出了可以获得有关矩阵的形状与大小信息的函数。表表2.3 取得矩阵相关信息的函数取得矩阵相关信息的函数函数函数函数函数说说说说明明明明函数函数函数函数说说说说明明明明lengthl
29、ength返回矩返回矩返回矩返回矩阵阵阵阵最最最最长长长长的那的那的那的那维长维长维长维长度度度度numelnumel返回矩返回矩返回矩返回矩阵阵阵阵的元素数的元素数的元素数的元素数ndimsndims返回矩返回矩返回矩返回矩阵阵阵阵的的的的维维维维数数数数(如二(如二(如二(如二维维维维、三、三、三、三维维维维)sizesize返回矩返回矩返回矩返回矩阵阵阵阵每一每一每一每一维维维维的的的的长长长长度(度(度(度(2 233,3 333 )第19页,此课件共66页哦n n4.4.矩阵的乘方运算和开方运算矩阵的乘方运算和开方运算矩阵的乘方运算和开方运算矩阵的乘方运算和开方运算n nMATLAB
30、MATLAB中矩阵的乘方可以由符号中矩阵的乘方可以由符号“”“”实现,而实现,而矩阵的开方则由矩阵的开方则由sqrtmsqrtm函数实现。函数实现。n n【例【例2-112-11】求如下矩阵】求如下矩阵A A的的3 3次方。次方。n nA3A3n nans=ans=n n468576684468576684n n106213051548106213051548n n165620342412165620342412第20页,此课件共66页哦n n如果想实现矩阵中每个元素都进行如果想实现矩阵中每个元素都进行如果想实现矩阵中每个元素都进行如果想实现矩阵中每个元素都进行3 3次方,则可用次方,则可用次
31、方,则可用次方,则可用“.”实现,实现,实现,实现,在运算符前面加在运算符前面加在运算符前面加在运算符前面加“.”后就表示是对矩阵的元素操作。后就表示是对矩阵的元素操作。后就表示是对矩阵的元素操作。后就表示是对矩阵的元素操作。n n A.3 A.3n nans=ans=n n 1 8 27 1 8 27n n 64 125 216 64 125 216n n 343 512 729 343 512 729n n【例【例2-122-12】求例】求例2-112-11中矩阵中矩阵A A的开方。的开方。n n sqrtm(A)%sqrtm(A)sqrtm(A)%sqrtm(A)相当于相当于A0.5A0
32、.5n nans=ans=n n 0.4498+0.7623i 0.5526+0.2068i 0.6555-0.3487i 0.4498+0.7623i 0.5526+0.2068i 0.6555-0.3487in n 1.0185+0.0842i 1.2515+0.0228i 1.4844-0.0385i 1.0185+0.0842i 1.2515+0.0228i 1.4844-0.0385in n 1.5873-0.5940i 1.9503-0.1611i 2.3134+0.2717i 1.5873-0.5940i 1.9503-0.1611i 2.3134+0.2717in n其实矩阵的
33、开方运算和乘方运算互为逆运算。其实矩阵的开方运算和乘方运算互为逆运算。其实矩阵的开方运算和乘方运算互为逆运算。其实矩阵的开方运算和乘方运算互为逆运算。第21页,此课件共66页哦n n5.5.矩阵的指数和对数运算矩阵的指数和对数运算矩阵的指数和对数运算矩阵的指数和对数运算n n指数函数和对数函数是非常重要的两个函数,所以指数函数和对数函数是非常重要的两个函数,所以MATLABMATLAB提供了两个专门的函数提供了两个专门的函数expmexpm和和logmlogm来实现来实现矩阵的指数运算和对数运算。矩阵的指数运算和对数运算。n n【例【例2-132-13】求矩阵的指数运算和对数运算】求矩阵的指数
34、运算和对数运算n n A=rand(3)A=rand(3)n nA=A=n n 0.9501 0.4860 0.4565 0.9501 0.4860 0.4565n n 0.2311 0.8913 0.0185 0.2311 0.8913 0.0185n n 0.6068 0.7621 0.8214 0.6068 0.7621 0.8214第22页,此课件共66页哦n n expm(A)%对A矩阵的每个元素求以e为底的指数n nans=ans=n n 3.1250 1.7453 1.1993n n 0.6360 2.6358 0.1796n n 1.8010 2.2981 2.6663 1.8
35、010 2.2981 2.6663n n logm(A)%logm(A)%对对A A矩阵的每个元素求以矩阵的每个元素求以e e为底的对数为底的对数n nans=ans=n n -0.2977 0.3399 0.6044n n 0.2874 -0.1588 -0.0604 0.2874 -0.1588 -0.0604n n 0.6696 0.8173 -0.3901 0.6696 0.8173 -0.3901第23页,此课件共66页哦6.矩阵的数组运算矩阵的数组运算运算中,往往需要在矩阵之间进行对应元素的运算,这就是矩阵的数组运算。矩阵的数组运算与前面运算区别主要放映在乘和除两种运算中。n n1
36、.乘法矩阵的数组运算A.*B(称为数乘)n n2.除法矩阵的数组运算A./B(称为数除)练习练习n n已知A=1 3 5;2 4 6;7 8 9;B=1 2 1;2 3 2;3 4 3 比较A*B和A.*B以及A/B和A./B的区别第24页,此课件共66页哦2.2 稀疏型矩阵稀疏型矩阵n n如果在矩阵中,多数的元素并没有值,称此矩阵为稀疏矩如果在矩阵中,多数的元素并没有值,称此矩阵为稀疏矩如果在矩阵中,多数的元素并没有值,称此矩阵为稀疏矩如果在矩阵中,多数的元素并没有值,称此矩阵为稀疏矩阵阵阵阵(Sparse Matrix)(Sparse Matrix),由于矩阵在方程中常使用二维阵列,由于矩
37、阵在方程中常使用二维阵列,由于矩阵在方程中常使用二维阵列,由于矩阵在方程中常使用二维阵列表示,二维阵列的大小与使用的内存空间成正比,如果多表示,二维阵列的大小与使用的内存空间成正比,如果多表示,二维阵列的大小与使用的内存空间成正比,如果多表示,二维阵列的大小与使用的内存空间成正比,如果多数的元素没有值,则会造成内存空间的浪费,为此,必须数的元素没有值,则会造成内存空间的浪费,为此,必须数的元素没有值,则会造成内存空间的浪费,为此,必须数的元素没有值,则会造成内存空间的浪费,为此,必须设计稀疏矩阵的阵列储存方式,利用较少的内存空间储存设计稀疏矩阵的阵列储存方式,利用较少的内存空间储存设计稀疏矩阵
38、的阵列储存方式,利用较少的内存空间储存设计稀疏矩阵的阵列储存方式,利用较少的内存空间储存完整的矩阵信息。完整的矩阵信息。完整的矩阵信息。完整的矩阵信息。第25页,此课件共66页哦2.2.1 稀疏型矩阵生成稀疏型矩阵生成n n在在在在MATLABMATLAB中,用中,用中,用中,用sparsesparse函数来创建一个稀疏矩阵。函数来创建一个稀疏矩阵。函数来创建一个稀疏矩阵。函数来创建一个稀疏矩阵。n nsparse(A)sparse(A)n n由非零元素和下标建立稀疏矩阵由非零元素和下标建立稀疏矩阵由非零元素和下标建立稀疏矩阵由非零元素和下标建立稀疏矩阵AA。如果。如果。如果。如果AA已是一个
39、稀疏矩阵,则已是一个稀疏矩阵,则已是一个稀疏矩阵,则已是一个稀疏矩阵,则返回返回返回返回AA本身。本身。本身。本身。n nsparse(msparse(m,n)n)n n生成一个生成一个生成一个生成一个mnmn的所有元素都是的所有元素都是的所有元素都是的所有元素都是0 0的稀疏矩阵。的稀疏矩阵。的稀疏矩阵。的稀疏矩阵。n n【例【例【例【例2-142-14】把】把】把】把3 3阶的单位矩阵转换成稀疏矩阵。阶的单位矩阵转换成稀疏矩阵。阶的单位矩阵转换成稀疏矩阵。阶的单位矩阵转换成稀疏矩阵。n n as=sparse(eye(3)%as=sparse(eye(3)%生成主对角线为生成主对角线为生成
40、主对角线为生成主对角线为1 1的稀疏矩阵。的稀疏矩阵。的稀疏矩阵。的稀疏矩阵。n nas=as=n n (1 (1,1)1%1)1%第第1 1行第行第1 1列的元素为列的元素为1 1n n (2 (2,2)1%2)1%第第2 2行第行第2 2列的元素为列的元素为1 1n n (3 (3,3)1%3)1%第第3 3行第行第3 3列的元素为列的元素为1 1第26页,此课件共66页哦2.2.2 转换成满矩阵转换成满矩阵n nfull(S)full(S)函数可以将稀疏矩阵函数可以将稀疏矩阵S S转换成一个满矩阵。转换成一个满矩阵。n n【例【例2-152-15】将例】将例2-142-14中的结果再转换
41、成满矩阵。中的结果再转换成满矩阵。n n full(as)full(as)n nans=ans=n n 1 0 0n n 0 1 0 0 1 0n n 0 0 1 0 0 1第27页,此课件共66页哦2.2.3 对非零元素进行操作n nnnz(A)nnz(A)函数可以求矩阵函数可以求矩阵A A中非零元素的个数,它既可求中非零元素的个数,它既可求满矩阵也可求稀疏矩阵。满矩阵也可求稀疏矩阵。n nspy(A)函数可以画出稀疏矩阵A中非零元素的分布。也可用在满矩阵中,在这种情况下,只给出非零元素的分布。n nspy(Aspy(A,cstrcstr,size)size)函数可以用指定的颜色函数可以用指
42、定的颜色cstrcstr在在sizesize规定的范围内画出稀疏矩阵规定的范围内画出稀疏矩阵A A中非零元素的分布。中非零元素的分布。n nnonzeros(A)nonzeros(A)函数可以按照列的顺序找出矩阵函数可以按照列的顺序找出矩阵A A中中非零的元素。非零的元素。第28页,此课件共66页哦n nspones(A)函数可以把矩阵A中的非零元素全换为1。n nnzmax(A)nzmax(A)函数可以给出为矩阵函数可以给出为矩阵A A中非零元素分配的中非零元素分配的内存数内存数.不一定和不一定和nnz(A)nnz(A)得到的数相同。得到的数相同。n nissparse(A)issparse
43、(A)函数在矩阵函数在矩阵A A是稀疏矩阵的情况下返回是稀疏矩阵的情况下返回1;1;否则返回否则返回0 0。n nspfun(fcnspfun(fcn,A)A)函数可以用函数可以用A A中所有非零元素对函数中所有非零元素对函数fcnfcn求值,如果函数不是对稀疏矩阵定义的,同样也可求值,如果函数不是对稀疏矩阵定义的,同样也可以求值。以求值。n nsprank(A)sprank(A)函数可以求稀疏矩阵函数可以求稀疏矩阵A A的结构秩。对于所有的结构秩。对于所有的矩阵来说,都有的矩阵来说,都有sprank(Asprank(A)rank(A)rank(A)。第29页,此课件共66页哦n n【例2-1
44、6】求3阶单位矩阵的非零元素的个数,并画出非零元素的分布。n n nnz(eye(3)n nans=n n 3n n spy(eye(3)n n结果如图2.1所示。n n图图2.1 矩阵矩阵A 的稀疏表示的稀疏表示第30页,此课件共66页哦2.2.4 稀疏矩阵的特例n nMATLABMATLAB中有四个基本稀疏矩阵,它们是单位矩阵,随机矩中有四个基本稀疏矩阵,它们是单位矩阵,随机矩中有四个基本稀疏矩阵,它们是单位矩阵,随机矩中有四个基本稀疏矩阵,它们是单位矩阵,随机矩阵,对称随机矩阵和对角矩阵。下面介绍各自的生成函数。阵,对称随机矩阵和对角矩阵。下面介绍各自的生成函数。阵,对称随机矩阵和对角矩
45、阵。下面介绍各自的生成函数。阵,对称随机矩阵和对角矩阵。下面介绍各自的生成函数。n nspeye(n)speye(n)函数可以生成函数可以生成函数可以生成函数可以生成nnnn的单位稀疏矩阵。的单位稀疏矩阵。的单位稀疏矩阵。的单位稀疏矩阵。n nspeye(mspeye(m,n)n)函数可以生成函数可以生成函数可以生成函数可以生成mnmn的单位稀疏矩阵。的单位稀疏矩阵。的单位稀疏矩阵。的单位稀疏矩阵。n nsprand(A)sprand(A)函数可以生成与函数可以生成与函数可以生成与函数可以生成与AA有相同结构的随机稀疏矩阵,且有相同结构的随机稀疏矩阵,且有相同结构的随机稀疏矩阵,且有相同结构的
46、随机稀疏矩阵,且元素服从均匀分布。元素服从均匀分布。元素服从均匀分布。元素服从均匀分布。n nsprand(msprand(m,n n,dens)dens)函数可以函数可以函数可以函数可以 生成一个生成一个生成一个生成一个mnmn的服从均的服从均的服从均的服从均匀分布的随机稀疏矩阵,有匀分布的随机稀疏矩阵,有匀分布的随机稀疏矩阵,有匀分布的随机稀疏矩阵,有densmndensmn个非零元素,个非零元素,个非零元素,个非零元素,0dens1.0dens1.参数参数参数参数densdens是非零元素的分布密度。是非零元素的分布密度。是非零元素的分布密度。是非零元素的分布密度。n nsprandn(
47、A)sprandn(A)函数可以生成与函数可以生成与函数可以生成与函数可以生成与AA有相同结构的随机稀疏矩有相同结构的随机稀疏矩有相同结构的随机稀疏矩有相同结构的随机稀疏矩阵,且元素服从正态分布。阵,且元素服从正态分布。阵,且元素服从正态分布。阵,且元素服从正态分布。第31页,此课件共66页哦n nsprandsym(S)sprandsym(S)函数可以生成一个随机对称稀疏矩阵。它函数可以生成一个随机对称稀疏矩阵。它函数可以生成一个随机对称稀疏矩阵。它函数可以生成一个随机对称稀疏矩阵。它的下三角及主对角线部分与的下三角及主对角线部分与的下三角及主对角线部分与的下三角及主对角线部分与S S的结构
48、相同,矩阵元素服从正态的结构相同,矩阵元素服从正态的结构相同,矩阵元素服从正态的结构相同,矩阵元素服从正态分布。分布。分布。分布。n nsprandsym(nsprandsym(n,dens)dens)函数可以生成一个函数可以生成一个函数可以生成一个函数可以生成一个nnnn的随机对的随机对的随机对的随机对称稀疏矩阵称稀疏矩阵称稀疏矩阵称稀疏矩阵.矩阵元素服从正态分布,分布密度为矩阵元素服从正态分布,分布密度为矩阵元素服从正态分布,分布密度为矩阵元素服从正态分布,分布密度为densdens。n nBB,d=spdiags(A)d=spdiags(A)函数可以求出函数可以求出函数可以求出函数可以求
49、出AA中所有的对角元,对角中所有的对角元,对角中所有的对角元,对角中所有的对角元,对角元保存在矩阵元保存在矩阵元保存在矩阵元保存在矩阵BB中,它们的下标保存在向量中,它们的下标保存在向量中,它们的下标保存在向量中,它们的下标保存在向量d d中。中。中。中。n nspdiags(Aspdiags(A,d)d)函数可以生成一个矩阵,这个矩阵包含有矩阵函数可以生成一个矩阵,这个矩阵包含有矩阵函数可以生成一个矩阵,这个矩阵包含有矩阵函数可以生成一个矩阵,这个矩阵包含有矩阵AA中向量中向量中向量中向量d d规定的对角元。规定的对角元。规定的对角元。规定的对角元。n nspdiags(Bspdiags(B
50、,d d,A)A)函数可以生成矩阵函数可以生成矩阵函数可以生成矩阵函数可以生成矩阵AA,用矩阵,用矩阵,用矩阵,用矩阵BB中的列替换中的列替换中的列替换中的列替换d d定义的对角元。定义的对角元。定义的对角元。定义的对角元。n nA=spdiags(BA=spdiags(B,d d,mm,n)n)用保存在由用保存在由用保存在由用保存在由d d定义的定义的定义的定义的BB中的对角元创中的对角元创中的对角元创中的对角元创建稀疏矩阵建稀疏矩阵建稀疏矩阵建稀疏矩阵AA。第32页,此课件共66页哦2.3 MATLAB与线性代数与线性代数n n2.3.1 2.3.1 矩阵的特征参数矩阵的特征参数矩阵的特征