第5章 数值计算功优秀课件.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第5章 数值计算功优秀课件.ppt》由会员分享,可在线阅读,更多相关《第5章 数值计算功优秀课件.ppt(78页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第5章数值计算功第1页,本讲稿共78页n n MATLAB MATLAB应用相当广泛的一个领域是解决数值计算问题。这是应用相当广泛的一个领域是解决数值计算问题。这是因为因为MATLAB MATLAB 对处理数组具有非凡的能力,使其成为许多科学对处理数组具有非凡的能力,使其成为许多科学与工程应用中的一个有力的工具。本章主要介绍如何运用与工程应用中的一个有力的工具。本章主要介绍如何运用MATLABMATLAB解决线性代数以及概率统计中的相关问题。解决线性代数以及概率统计中的相关问题。n n 【学习目标】【学习目标】n n能够创执行矩阵运算及掌握稀疏矩阵的基本操作。能够创执行矩阵运算及掌握稀疏矩阵的
2、基本操作。n n学会运用学会运用MATLABMATLAB解决线性代数的相关问题。解决线性代数的相关问题。n n掌握如何运用掌握如何运用MATLABMATLAB实现数据的插值、曲线的拟合和零极实现数据的插值、曲线的拟合和零极点的求解。点的求解。n n掌握利用统计工具箱解决概率统计的相关基本问题。掌握利用统计工具箱解决概率统计的相关基本问题。第2页,本讲稿共78页5.1 矩阵及其运算n nMATLAB最基本、最重要的功能就是进行矩阵运算。所有的数值功能都是以矩阵为基本单位实现的。第3页,本讲稿共78页5.1.1矩阵生成n n1.1.直接生成直接生成直接生成直接生成n n矩阵的生成可以通过在方括号矩
3、阵的生成可以通过在方括号中输入元素实现,不同行之间要用分号隔开,不同列中输入元素实现,不同行之间要用分号隔开,不同列用空格分开。用空格分开。n n【例【例5-15-1】生成一个】生成一个2323矩阵。矩阵。n n a=1 2 3;4 5 6 a=1 2 3;4 5 6 n na=a=n 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
4、 6第4页,本讲稿共78页n n2.2.函数生成函数生成函数生成函数生成n nMATLABMATLAB中提供了特殊函数可以生成特殊矩阵。中提供了特殊函数可以生成特殊矩阵。n n【例【例5-25-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 0 1 0 0 1 0n
5、 n 0 0 1 0 0 1 第5页,本讲稿共78页常用的特殊矩阵列在表5.1当中。表表5.1常用的特殊矩阵常用的特殊矩阵命令命令函数函数命令命令函数函数全零全零阵阵zeroszeros友矩友矩阵阵compancompan单单位位阵阵eyeeyehadamardhadamard矩矩阵阵hadamardhadamard全全1 1阵阵onesonesHankelHankel矩矩阵阵hankelhankel均匀分布随机矩均匀分布随机矩阵阵randrandHilbertHilbert矩矩阵阵hilbhilb正正态态分布随机矩分布随机矩阵阵randnrandn逆逆HilbertHilbert矩矩阵阵in
6、vhilbinvhilb产产生生线线性等分向量性等分向量linspacelinspaceMagicMagic矩矩阵阵magicmagic产产生生对对数等分向量数等分向量logspacelogspacePascalPascal矩矩阵阵pascalpascalWilkinsonWilkinson特征特征值测试阵值测试阵wilkinsonwilkinson托普利托普利兹兹矩矩阵阵toeplitztoeplitz第6页,本讲稿共78页5.1.2矩阵连接n n矩阵连接,是联合一个或多个矩阵形成一个新矩阵。方括矩阵连接,是联合一个或多个矩阵形成一个新矩阵。方括号号就可以作为矩阵连接操作符。表达式就可以作为
7、矩阵连接操作符。表达式A=B CA=B C就是水就是水平连接矩阵平连接矩阵B B和和C C;A=BA=B;CC就是垂直连接矩阵就是垂直连接矩阵B B,C C。n n连接矩阵也可以用函数形成一个新矩阵,如连接矩阵也可以用函数形成一个新矩阵,如catcat函函数。数。catcat函数调用格式:函数调用格式:n n1)C=cat(dim1)C=cat(dim,A A,B)B)n nDimDim指链接方向。指链接方向。DimDim的可选值:的可选值:1 1,垂直方向;,垂直方向;2 2,水,水平方向;平方向;3 3,生成三维数组。,生成三维数组。n n2)C=cat(dim2)C=cat(dim,A1
8、A1,A2A2,)n n可以实现连接多个矩阵。可以实现连接多个矩阵。第7页,本讲稿共78页n n【例【例5-35-3】把矩阵】把矩阵A A,B B分别在垂直方向,水平方向连接,分别在垂直方向,水平方向连接,A=1 2 3A=1 2 3,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 6n 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页,
9、本讲稿共78页表5.2列出了常用的连接矩阵函数。表表5.2 连接矩阵函数连接矩阵函数函数函数功能功能函数函数功能功能catcat连连接矩接矩阵阵rematremat复制一个矩复制一个矩阵阵到另一个矩到另一个矩阵阵horzcathorzcat水平水平连连接多个矩接多个矩阵阵blkdiagblkdiag对对角角连连接多个矩接多个矩阵阵vertcatvertcat垂直垂直连连接多个矩接多个矩阵阵第9页,本讲稿共78页5.1.35.1.3矩阵元素的下标引用及操作矩阵元素的下标引用及操作n n1矩阵下标矩阵下标 n n在MATLAB中,矩阵元素的引用可以通过下标表示,通常有如下规则:n n1)用两个下标
10、来表示:在矩阵A中,第i行j列的元素用A(i,j)来表示。n n2)用一个下标来表示:对于矩阵,由于MATLAB的基本运算都是对列操作的,矩阵认为是按列优先排列的一个长的列向量,从而可用单下标引用。第10页,本讲稿共78页n n【例【例5-45-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列的元素。列的元素。n n A(2,3)A(2,3)n nans=an
11、s=n n6 6n n也可以用一个下标选出元素。也可以用一个下标选出元素。n n A(8)A(8)n nans=ans=n n6 6第11页,本讲稿共78页n n2矩阵的抽取矩阵的抽取n n用下标可以从大矩阵里面抽取某些元素组成小的矩阵,并使用()运算符。n n【例5-5】提取矩阵A的前2行为一个新矩阵B。n nB=C(1:2,:)n nC=n n 1 2 3n n 4 5 6第12页,本讲稿共78页n n3 3删除矩阵的行和列删除矩阵的行和列删除矩阵的行和列删除矩阵的行和列 n n我们把空的中括号我们把空的中括号称为空矩阵,即矩阵大小为称为空矩阵,即矩阵大小为0000。可。可以通过把矩阵的行
12、或列赋值为空矩阵来删除某行或某列。以通过把矩阵的行或列赋值为空矩阵来删除某行或某列。n n【例【例5-65-6】删除上例中】删除上例中A A的第的第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)=将给出错误信息。但可以用单下标来删除矩阵的某个或某些元素,将给出错误信息。但可以用单下标来删除矩阵的某个或某些元素,MATLABMATLAB删除这些元素后,将剩下的元素按列编成一个长的行向量
13、。删除这些元素后,将剩下的元素按列编成一个长的行向量。第13页,本讲稿共78页n n4reshape4reshape函数实现改变矩阵大小函数实现改变矩阵大小函数实现改变矩阵大小函数实现改变矩阵大小n nreshapereshape函数可以实现矩阵行列大小的变化,但变化前矩函数可以实现矩阵行列大小的变化,但变化前矩阵行列值的乘积和变化后的行列值的乘积不变。阵行列值的乘积和变化后的行列值的乘积不变。n nreshape(A,M,N)reshape(A,M,N)命令将矩阵命令将矩阵A A的所有元素分配到一个的的所有元素分配到一个的新的矩阵,当矩阵新的矩阵,当矩阵A A的元素个数不是时,将返回一个错误
14、。的元素个数不是时,将返回一个错误。n nreshape(A,M,N,P,reshape(A,M,N,P,)命令返回由矩阵命令返回由矩阵A A的元素组成的多维的矩的元素组成的多维的矩阵,如果与阵,如果与A A的元素个数不一样时将返回错误。的元素个数不一样时将返回错误。n nreshape(A,M,N,P,reshape(A,M,N,P,)命令与命令与reshape(A,M,N,P,reshape(A,M,N,P,)命令命令的作用一样。的作用一样。第14页,本讲稿共78页n n【例5-7】把2行3列矩阵A变成变成1行6列的矩阵B。n n B=reshape(A,1,6)n nB=n n 1 4
15、2 5 3 6第15页,本讲稿共78页5.1.4矩阵运算n n1 1矩阵的加减矩阵的加减矩阵的加减矩阵的加减 n n矩阵的加减运算使用、运算符,能够相加减的矩矩阵的加减运算使用、运算符,能够相加减的矩阵需满足以下两个条件之一:阵需满足以下两个条件之一:n n1)1)类型相同,即行数相等,且列数相等。类型相同,即行数相等,且列数相等。n n2)2)其中一个为标量,此时的加减运算结果等于矩阵中每其中一个为标量,此时的加减运算结果等于矩阵中每一个元素都和标量做加减运算。一个元素都和标量做加减运算。n n【例【例5-85-8】求矩阵】求矩阵A A与与B B的和,的和,A=1 2 3 A=1 2 3,B
16、=2 3 B=2 3 66。n n A+B A+Bn nans=ans=n n 3 5 9 3 5 9第16页,本讲稿共78页n n2 2矩阵的乘积矩阵的乘积矩阵的乘积矩阵的乘积 n n矩阵的乘积运算使用矩阵的乘积运算使用*运算符,而且相乘的矩阵必须满足维数条件。如果运算符,而且相乘的矩阵必须满足维数条件。如果A A是一是一个个mpmp矩阵,而矩阵,而B B是是pn pn 矩阵,它们可以相乘产生矩阵,它们可以相乘产生mn mn 矩阵。矩阵。n n【例【例5-95-9】求例】求例5-85-8中矩阵中矩阵A A与与B B的转置矩阵的乘积。的转置矩阵的乘积。n n A*B A*Bn nans=ans
17、=n n 26 26n n在在MATLABMATLAB里,单引号表示复共轭转置,一个点加单引号里,单引号表示复共轭转置,一个点加单引号.表示普通转表示普通转置。置。n n B Bn nans=ans=n n 2 2n n 3 3n n 6 6第17页,本讲稿共78页n n3 3矩阵的除法矩阵的除法矩阵的除法矩阵的除法n nMATLABMATLAB定义了矩阵的左除及右除。定义了矩阵的左除及右除。“”运算符号运算符号表示两个矩阵的左除,表示两个矩阵的左除,“/”表示两个矩阵的右除。表示两个矩阵的右除。ABAB即由即由GaussGauss消去法来获得线性方程消去法来获得线性方程AXAXB B的解的解
18、X X,即,即X XA-1BA-1B。如果矩阵不是方阵,也可以求出。如果矩阵不是方阵,也可以求出ABAB,这时将使用最小二乘法来求取,这时将使用最小二乘法来求取AXAXB B中的中的X X矩阵。矩阵。n n矩阵的右除:矩阵的右除:MATLABMATLAB用用“/”表示两个矩阵的右除。表示两个矩阵的右除。X=B/AX=B/A是是X*A=BX*A=B的解,对于非奇异方阵的解,对于非奇异方阵A A,B/AB/A等等效为。效为。n n通常:通常:x=ABx=AB就是就是A*x=BA*x=B的解的解 ,x=B/Ax=B/A就是就是x*A=Bx*A=B的解的解.第18页,本讲稿共78页n n【例【例5-1
19、05-10】求矩阵】求矩阵a a与与b b的左除和右除。的左除和右除。n n,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%矩阵右除,相当于矩阵右除,相当于a*inv(b)a*inv(b)n nd=d=n n 1.3333 1
20、.3333 -1.0000 1.3333 1.3333 -1.0000n n 0 -0.5000 1.5000 0 -0.5000 1.5000n n1.6667 0.1667 -0.50001.6667 0.1667 -0.5000第19页,本讲稿共78页表5.3给出了可以获得有关矩阵的形状与大小信息的函数。表表5.3 取得矩阵相关信息的函数取得矩阵相关信息的函数函数函数说说明明函数函数说说明明lengthlength返回矩返回矩阵阵最最长长的那的那维长维长度度numelnumel返回矩返回矩阵阵的元素数的元素数ndimsndims返回矩返回矩阵阵的的维维数数sizesize返回矩返回矩阵阵
21、每一每一维维的的长长度度第20页,本讲稿共78页n n【例【例5-115-11】:产品成本分析,】:产品成本分析,表表5.45.4显示了与特定产品相显示了与特定产品相关的成本,而表关的成本,而表5.55.5则显示了一个财政年度中则显示了一个财政年度中4 4个季度的产个季度的产量。使用量。使用MATLABMATLAB算出:每个季度的材料成本、劳动成本算出:每个季度的材料成本、劳动成本和运输成本;一年中总的材料成本、劳动成本和运输成本,和运输成本;一年中总的材料成本、劳动成本和运输成本,以及每个季度的总成本。以及每个季度的总成本。表表5.4 产品成本产品成本单位成本(美元单位成本(美元10103
22、3)产产品品材料材料劳动劳动运运输输1 16 62 21 12 22 25 54 43 34 43 32 24 49 97 73 3表表5.5 每季度产量每季度产量产产品品第第1 1季度季度第第2 2季度季度第第3 3季度季度第第4 4季度季度1 110101212131315152 28 87 76 64 43 31212101013139 94 46 64 411115 5第21页,本讲稿共78页n n成本是单位成本与产量的乘积。因此,用户定义两个矩阵:成本是单位成本与产量的乘积。因此,用户定义两个矩阵:X X(包含(包含表表5.1.35.1.3中的单位成本,单位为千元)和中的单位成本,单
23、位为千元)和Y Y(包含表(包含表5.1.45.1.4中每季度的中每季度的产品数据)。然后在运行下列命令行即可得到问题的答案。产品数据)。然后在运行下列命令行即可得到问题的答案。n n X=6 2 1;2 5 4;4 3 2;9 7 3;X=6 2 1;2 5 4;4 3 2;9 7 3;n n Y=10 12 13 15;8 7 6 4;12 10 13 9;6 4 11 5;Y=10 12 13 15;8 7 6 4;12 10 13 9;6 4 11 5;n n quarterly_costs=sum(X*Y)quarterly_costs=sum(X*Y)n nquarterly_co
24、sts=quarterly_costs=n n 400 351 509 355 400 351 509 355n n category_costs=sum(X*Y)category_costs=sum(X*Y)n ncategory_costs=category_costs=n n 760 539 316 760 539 316n n所以,每个季度的总成本分别是:所以,每个季度的总成本分别是:400 400,351 351,509 509 和和355355(美元)。一年中总的材料成本:(美元)。一年中总的材料成本:760760美元,劳动总成美元,劳动总成本:本:539539美元和运输成本美元和
25、运输成本316316美元。美元。第22页,本讲稿共78页n n4矩阵的乘方运算和开方运算矩阵的乘方运算和开方运算n nMATLAB中矩阵的乘方可以由符号“”实现,而矩阵的开方则由sqrtm函数实现。n n【例5-12】求如下矩阵A的3次方。n n A3n nans=n n 468 576 684n n 1062 1305 1548n n 1656 2034 2412第23页,本讲稿共78页n n如果想实现矩阵中每个元素都进行如果想实现矩阵中每个元素都进行3 3次方,则可用次方,则可用“.”实现,实现,在运算符前面加在运算符前面加“.”后就表示是对矩阵的元素操作。后就表示是对矩阵的元素操作。n
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第5章 数值计算功优秀课件 数值 计算 优秀 课件
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内