数值计算功能

上传人:豆浆 文档编号:50719396 上传时间:2018-08-10 格式:PPT 页数:66 大小:722.50KB
返回 下载 相关 举报
 数值计算功能_第1页
第1页 / 共66页
 数值计算功能_第2页
第2页 / 共66页
 数值计算功能_第3页
第3页 / 共66页
 数值计算功能_第4页
第4页 / 共66页
 数值计算功能_第5页
第5页 / 共66页
点击查看更多>>
资源描述

《 数值计算功能》由会员分享,可在线阅读,更多相关《 数值计算功能(66页珍藏版)》请在金锄头文库上搜索。

1、第2章 数值计算功能n MATLAB应用相当广泛的一个领域是解决数值计算问 题。这是由于MATLAB 对处理数组具有非凡的能力,使其成为许多科学与工程应用中的一个有力的工具。本 章主要介绍矩阵的创建、运算以及如何运用MATLAB解决线性代数中的相关问题。n【学习目标】n能够创建矩阵,并熟练掌握矩阵的各种运算法则n掌握稀疏矩阵的基本操作。n学会运用MATLAB解决线性代数的相关问题。n掌握如何运用MATLAB实现数据的插值、曲线的拟合和零极点的求解。2.1 矩阵及其运算nMATLAB最基本、最重要的功能就是进行 矩阵运算。所有的数值功能都是以矩阵为 基本单位实现的。2.1.1 矩阵生成n1.直接

2、生成n矩阵的生成可以通过在方括号中输入元素实现,不同 行之间要用分号隔开,不同列用空格分开。n【例2-1】生成一个23矩阵。n a=1 2 3;4 5 6 na =n 1 2 3n 4 5 6n可以用冒号快速建立矩阵,步长在默认的情况下为1, 也可以自定义步长。n a=1:3;4:6na =n 1 2 3n 4 5 6n2.函数生成nMATLAB中提供了特殊函数可以生成特殊矩阵。n【例2-2】生成一个23全零矩阵,一个33单位矩 阵。n a=zeros(2,3) %生成23全零阵na =n 0 0 0 n 0 0 0 n a=eye(3,3) %生成33单位阵na =n 1 0 0n 0 1

3、0n 0 0 1 常用的特殊矩阵列在表常用的特殊矩阵列在表2.12.1当中。当中。 表表2.12.1常用的特殊矩阵常用的特殊矩阵函数功能函数命令zeros生成全0矩阵阵compan生成多项项式的友矩阵阵eye生成单单位矩阵阵hadamar d生成哈达玛玛矩阵阵(由1 和-1构成的正交矩阵阵 ) ones生成全1阵阵vander生成范德蒙矩阵阵rand生成均匀分布随机矩阵阵hilbHilbert矩阵阵(沿主对对角 线对线对 称)randn生成正态态分布随机矩阵阵invhilb逆Hilbert矩阵阵triltriu生成上三角或下三角矩阵阵magicMagic矩阵阵diag生成对对角矩阵阵pasca

4、lPascal矩阵阵wilkinson生成威尔金森矩阵阵toeplitz托普利兹兹矩阵阵2.1.2 矩阵连接n矩阵连接,是联合一个或多个矩阵形成一个新矩阵。方 括号就可以作为矩阵连接操作符。表达式A=B C 就是水平连接矩阵B和C;A=B;C就是垂直连接矩 阵B和C连接矩阵也可以用函数形成一个新矩阵,如cat 函数。cat函数调用格式:n1) C=cat(dim,A,B)nDim指链接方向。Dim的可选值:1,垂直方向;2, 水平方向;3,生成三维数组。n2) C=cat(dim,A1,A2,)n可以实现连接多个矩阵。n【例2-3】把矩阵A,B分别在垂直方向,水平方向连接 ,A=1 2 3,B

5、=4 5 6。n C1=cat(1,A,B) %垂直方向连 接nC1 =n 1 2 3n 4 5 6n C2=cat(2,A,B) %水平方向连 接nC2 =n 1 2 3 4 5 6表2.2列出了常用的连接矩阵函数。 表2.2 连接矩阵函数函数功能函数功能cat连连接矩阵阵remat复制一个矩阵阵到另一 个矩阵阵horzcat水平连连接多个矩 阵阵blkdiag对对角连连接多个矩阵阵vertcat垂直连连接多个矩 阵阵2.1.3 矩阵元素的下标引用及操作n1.矩阵下标 n在MATLAB中,矩阵元素的引用可以通过下标表示,通常有如下规则:n1) 用两个下标来表示:在矩阵A中,第i行j列的 元素

6、用A(i,j)来表示。n2) 用一个下标来表示:对于矩阵,由于 MATLAB的基本运算都是对列操作的,矩阵认为是按列优先排列的一个长的列向量,从而可 用单下标引用。n【例2-4】提取矩阵的元素。n A = 1 2 3; 4 5 6; 7 8 9nA =n1 2 3n4 5 6n7 8 9n可以用A(m,n)选出第m行n列的元素。n A(2,3)nans =n6n也可以用一个下标选出元素。n A(8)nans =n6n2.矩阵的抽取n用下标可以从大矩阵里面抽取某些元素组成小 的矩阵,并使用()运算符。n【例2-5】提取矩阵A的前2行为一个新矩阵B。nB=A(1:2,:) % B=A(1 2,:)

7、 nB =n 1 2 3n 4 5 6n3.删除矩阵的行和列 n我们把空的中括号称为空矩阵,即矩阵大小为00。 可以通过把矩阵的行或列赋值为空矩阵来删除某行或某 列。n【例2-6】删除上例中A的第1,2列。 n A(:,1 2)= nA =n 3n 6n 9n 在MATLAB里不能用双下标来删除矩阵的某个元 素,例如X(1,2)=将给出错误信息。但可以用单下 标来删除矩阵的某个或某些元素,MATLAB删除这些 元素后,将剩下的元素按列编成一个长的行向量。n4.reshape函数实现改变矩阵大小nreshape函数可以实现矩阵行列大小的变化,但变化 前矩阵行列值的乘积和变化后的行列值的乘积不变。

8、nreshape(A,M,N)命令将矩阵A的所有元素分配到一 个MN的新的矩阵,当矩阵A的元素个数不是MN时 ,将返回一个错误。nreshape(A,M,N,P,)命令返回由矩阵A的元素组成 的MNP.多维的矩阵,如果MNP.与A的元 素个数不一样时将返回错误。nreshape(A,M,N,P,)命令与 reshape(A,M,N,P,)命令的作用一样。n【例2-7】把2行3列矩阵A变成变成1行6 列的矩阵B。n B=reshape(A,1,6)nB =n 1 4 2 5 3 62.1.4 矩阵运算n1.矩阵的加、减 n矩阵的加减运算使用、运算符,能够相加 减的矩阵需满足以下两个条件之一: n

9、1)类型相同,即行数相等,且列数相等。n2)其中一个为标量,此时的加减运算结果等于 矩阵中每一个元素都和标量做加减运算。n【例2-8】求矩阵A与B的和,A=1 2 3 , B=2 3 6。n A+Bnans =n 3 5 9n2.矩阵的乘积 n矩阵的乘积运算使用*运算符,而且相乘的矩阵必须满 足维数条件。如果A是一个mp矩阵,而B是pn 矩阵, 它们可以相乘产生mn 矩阵。n【例2-9】求例2-8中矩阵A与B的转置矩阵的乘积。n A*Bnans =n 26n在MATLAB里,单引号表示复共轭转置,一个点加单引 号“.”表示普通转置,即沿主对角线左上与右下相对元 素对调。n Bnans =n 2

10、n 3n 6n3、矩阵的除法nMATLAB定义了矩阵的左除及右除。“”运算符号表示 两个矩阵的左除,“/”表示两个矩阵的右除。AB即由 Gauss消去法来获得线性方程AXB的解X,即XA-1B 。n矩阵的右除:MATLAB用“/”表示两个矩阵的右除。 X*A=B的解是X=B/A,对于非奇异方阵A,B/A等效为 BA-1 。n【例2-10】求矩阵a与b的左除和右除。n c=ab %矩阵左除,相当于inv(a)*bnc =n 0.3333 0.6000 -0.2000n -0.6667 -0.4000 0.8000n 1.0000 0.4000 0.2000n d=a/b %矩阵右除,相当于a*i

11、nv(b)nd =n 1.3333 1.3333 -1.0000n 0 -0.5000 1.5000n 1.6667 0.1667 -0.5000表2.3给出了可以获得有关矩阵的形状与大小信息的函数。 表2.3 取得矩阵相关信息的函数函数说说明函数说说明lengt h返回矩阵阵 最长长的 那维长维长 度nume l返回矩阵阵的 元素数ndim s返回矩阵阵 的维维数 (如二 维维、三 维维)size返回矩阵阵每 一维维的长长 度(23 , 33 )n4. 矩阵的乘方运算和开方运算nMATLAB中矩阵的乘方可以由符号“”实现,而 矩阵的开方则由sqrtm函数实现。n【例2-11】求如下矩阵A的3

12、次方。n A3nans =n 468 576 684n 1062 1305 1548n 1656 2034 2412n如果想实现矩阵中每个元素都进行3次方,则可用“.” 实现,在运算符前面加“.”后就表示是对矩阵的元素操 作。n A.3nans =n 1 8 27n 64 125 216n 343 512 729n【例2-12】求例2-11中矩阵A的开方。n sqrtm(A) % sqrtm(A) 相当于A0.5nans =n 0.4498 + 0.7623i 0.5526 + 0.2068i 0.6555 - 0.3487in 1.0185 + 0.0842i 1.2515 + 0.0228

13、i 1.4844 - 0.0385in 1.5873 - 0.5940i 1.9503 - 0.1611i 2.3134 + 0.2717in其实矩阵的开方运算和乘方运算互为逆运算。n5.矩阵的指数和对数运算n指数函数和对数函数是非常重要的两个函数, 所以MATLAB提供了两个专门的函数expm和 logm来实现矩阵的指数运算和对数运算。n【例2-13】求矩阵的指数运算和对数运算n A=rand(3)nA =n 0.9501 0.4860 0.4565n 0.2311 0.8913 0.0185n 0.6068 0.7621 0.8214n expm(A) %对A矩阵的每个元素求以e为 底的指

14、数nans =n 3.1250 1.7453 1.1993n 0.6360 2.6358 0.1796n 1.8010 2.2981 2.6663n logm(A) %对A矩阵的每个元素求以e为底 的对数nans =n -0.2977 0.3399 0.6044n 0.2874 -0.1588 -0.0604n 0.6696 0.8173 -0.39016.矩阵的数组运算运算中,往往需要在矩阵之间进行对应元素 的运算,这就是矩阵的数组运算。矩阵的数组 运算与前面运算区别主要放映在乘和除两种运 算中。n1.乘法矩阵的数组运算A.*B(称为数乘)n2.除法矩阵的数组运算A./B(称为数除)练习n已知A=1 3 5;2 4 6;7 8 9;B=1 2 1;2 3 2;3 4

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号