数值向量和数组矩阵_第1页
数值向量和数组矩阵_第2页
数值向量和数组矩阵_第3页
数值向量和数组矩阵_第4页
数值向量和数组矩阵_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第4章 数值向量和数组,介绍MATLAB 7的数值计算功能,包括MATLAB 7的向量和数组及它们之间的运算。 通过本章逐步掌握MATLAB 7的数值计算方法。,教学过程,向量及其运算方法 数组及其运算方法 多项式的创建和运算方法 关系和逻辑运算,(1)在命令窗口中直接输入向量,在MATLAB 7中,生成向量最简单的方法就是在命令窗口中按一定格式直接输入。输入的格式要求是,向量元素用“ ”括起来,元素之间用空格、逗号或者分号相隔。需要注意的是,用它们相隔生成的向量形式是不相同的:用空格或逗号生成行向量;用分号生成列向量。, a2=15,21,27,93,101; a1=15;21;27;93;

2、101; a1 a1 = 15 21 27 93 101 a2 a2 = 15 21 27 93 101 ,1.向量及其运算,(2)等差元素向量的生成,当向量的元素过多,同时向量各元素有等差的规律,此时采用直接输入法将过于繁琐。针对该种情况 ,可以使用冒号(:) 和linspace函数来生成等差元素向量。, vec1=10:5:60 vec1 = 10 15 20 25 30 35 40 45 50 55 60 vec2=linspace (10,60,11) vec2 = 10 15 20 25 30 35 40 45 50 55 60,(3) 向量与数的四则运算,向量与数的加法(减法):向

3、量中的每个元素与数的加法(减法)运算。 向量与数的乘法(除法):向量中的每个元素与数的乘法(除法)运算。, vec1=80:-9:10 vec1 = 80 71 62 53 44 35 26 17 vec1+101 ans = 181 172 163 154 145 136 127 118 ,(4)向量与向量之间的加减运算,向量与向量的加法(减法)运算:向量中的每个元素与另一个向量中相对应的元素的加法(减法)运算。 vec1=linspace(200,500,7) vec2=linspace(900,600,7) vec3=vec1+vec2 vec3 = Columns 1 through

4、5 1100 1100 1100 1100 1100 Columns 6 through 7 1100 1100 ,(5) 点积、叉积和混合积,两个向量的点积等于其中一个向量的模与另一个向量在这个向量的方向上的投影的乘积 叉积的几何意义是指过两个相交向量的交点,并与此两向量所在平面垂直的向量,点积 运算 x1=11 22 33 44 x2=1,2,3,4 a=dot(x1,x2) a = 330 sum(x1.*x2) ans = 330 ,叉积运算 x1=11 22 33 x1 = 11 22 33 x2=1 2 3 x2 = 1 2 3 x3=cross(x1,x2) x3 = 0 0 0

5、,(1) 数组寻址,通过对数组下表的访问来实现数组寻址 A=rand(1,5) A = 0.9501 0.2311 0.6068 0.4860 0.8913 A(4) ans = 0.4860 A(2:3) ans = 0.2311 0.6068,2. 数组及其运算,(2)数组的基本数值运算,数组的加法(减法) 数组的乘法(除法) 数组的乘方,加减法 X=1 4 7; Y=2 5 8; Z=X-Y Z = -1 -1 -1 V=X+Y V = 3 9 15 ,乘方 X=1 4 7 X = 1 4 7 Y=2 5 8 Y = 2 5 8 Z=X.Y Z = 1 1024 5764801,(3)数

6、组的关系运算,两个数通常可以用6种关系来进行描述:小于()、大于等于( =)、等于(= =)和不等于( =) 比较两个元素的大小时,如果结果为1,则表明关系式为真;如果结果为0,则表明关系式为假。例如关系式4+3=6(数学语言表示4与3的和小于等于6),通过上面的叙述可知,此关系式的结果为0,标明关系式为假。,(4)数组的逻辑运算,在各种逻辑运算中,有3种逻辑运算:与( Y1=poly2sym(a) Y1 = x3+2*x2+3*x+4 Y2=poly2sym(b) Y2 = 5*x3+6*x2+7*x+8 c=conv(a,b); Y=poly2sym(c) Y = 5*x6+16*x5+3

7、4*x4+60*x3+61*x2+52*x+32,多项式的四则运算,除法 在数值计算中,经常需要用一个多项式去除另一个多项式。在MATLAB 7语言中,使用decon函数来完成该项功能。, a=1 2 3 4,b=5 6 7 8; c=conv(a,b); d=deconv(c,a); e=deconv(c,b) x=poly2sym(d),y=poly2sym(e) x = 5*x3+6*x2+7*x+8 y = x3+2*x2+3*x+4 ,多项式的四则运算,求导和积分 在MATLAB 7语言中,分别使用polyder函数和polyint函数来求多项式的导数与积分。, p=3 1 8 8

8、p = 3 1 8 8 q=polyder(p) q = 9 2 8 p1=polyint(q) p1 = 3 1 8 0 ,7多项式求值函数polyval( ) 利用函数polyval可以求得多项式在某一点的值。 格式:y=polyval(p,x) 功能:返回多项式p在x处的值。其中x可以是复数,也可以是数组。,8部分分式展开函数residue( ) 格式:r,p,k=residue(b,a) 功能:把b(s)/a(s)展开成:,其中r代表余数数组,p代表极点数组,ks代表部分分式展开的常数项。当分母多项式的阶次数高于分子多项式的阶次数时ks=0,多项式的求值,polyval函数对多项式进行

9、求值,以数组为计算单位。, p=1.0000 -20.0000 -16.0000 480.0000 98.0000 p = 1 -20 -16 480 98 x=4 x = 4 polyval(p,x) ans = 738,将其展开成部分分式,num=10,20; den=1,8,19,12; res,poles,k=residue(num,den),res = -6.6667 5.0000 1.6667 poles = -4.0000 -3.0000 -1.0000 k = ,部分分式展开,多项式拟合与多项式插值 9多项式拟合函数polyfit( ) 格式:p=polyfit(x,y,n)

10、功能:利用已知的数据向量x和y所确定的数据点,采用最小二乘法构造出n阶多项式去逼近已知的离散数据,实现多项式曲线的拟合。其中p是求出的多项式系数,n阶多项式应该有n+1个系数,故p的长度为n+1。,10多项式插值 插值和拟合的不同点在于:插值函数通常是分段的,人们关心的不是函数的表达式,而是插值出的数据点;插值函数应通过给定的数据点。 (1)一维插值函数interpl( ) 格式:yiinterpl (x, y, xi, method) 功能:为给定的数据对(x,y)以及x坐标上的插值范围向量xi,用指定所使用的插值方法method实现插值。yi是插值后的对应数据点集的y坐标。插值的方法met

11、hod有以下6种可供选择: nearest(最邻近插值法)、linear(线性插值)、 spline(三次样条插值)、cubic(立方插值)、pchip(三次Hermite插值)、v5cubic。,所谓数据拟合是求一个简单的函数,例如是一个低次多项式,不要求通过已知的这些点,而是要求在整体上“尽量好”的逼近原函数。这时,在每个已知点上就会有误差,数据拟合就是从整体上使误差,尽量的小一些。,多项式拟合-数据最小二乘拟合,例1: 某种铝合金的含铝量为x%,其溶解温度为y摄氏度,由试验测得的x与y的数据表如下,试用最小二乘算法建立x,y的经验公式。, x=36.9 46.7 63.7 77.8 84

12、 87.5; y=181 197 235 270 283 292; a=polyfit(x,y,1) a = 2.2337 95.3524, x0=0:.1:1; y0=(x0.2-3*x0+5).*exp(-5*x0).*sin(x0); p3=polyfit(x0,y0,3); %先进行三次拟合 p3 = 2.8400 -4.7898 1.9432 0.0598 多项式如下: 2.8400*x3-4.7898*x2+1.9432*x+0.0598,例2:已知数据点来自 用多项式拟合方法在不同阶次下进行拟合。,拟合该数据的程序,绘制拟合曲线: x=0:.01:1; ya=(x.2-3*x+5

13、).*exp(-5*x).*sin(x); %原函数数据 y1=polyval(p3,x); %获得新拟合曲线数据 plot(x,y1,x,ya,x0,y0,o),就不同的次数进行拟合: p4=polyfit(x0,y0,4); y2=polyval(p4,x); p5=polyfit(x0,y0,5); y3=polyval(p5,x); p8=polyfit(x0,y0,8); y4=polyval(p8,x); plot(x,ya,x0,y0,o,x,y2,x,y3,x,y4),例1: t = 1900:10:1990; p = 75.995 91.972 105.711 123.203

14、 131.669. 150.697 179.323 203.212 226.505 249.633; 对应于美国从1900年到1990年的每10年的人口数,求1975年的人口。由此推断美国1900年到2000年每一年的人口数,并画出图形。,一维插值函数interpl,推广到多个点计算:, t = 1900:10:1990; p = 75.995 91.972 105.711 123.203 131.669. 150.697 179.323 203.212 226.505 249.633; x=1965 1975 x = 1965 1975 y=interp1(t,p,x) y = 191.26

15、75 214.8585,例2: x= 0:1:9; x1=0:0.01:9; y = 0,1.8,2,0.9,0.2,-0.5,-0.2,-1.7,-0.9,-0.3; y1=interp1(x,y,x1,*nearset); y2=interp1(x,y,x1,*linear); y3=interp1(x,y,x1,spline); y4=interp1(x,y,x1,cubic); figure(1) plot(x,y,ko,x1,y1,r-,x1,y2,b-,x1,y3,c:,x1,y4,k-); legend(原始数据,最近点插值,线性插值,样条插值,立方插值),2020/7/11,第

16、4章 数值向量和数组,29,(2)二维插值函数 格式:zi=griddata(x,y,z,xi,yi,method) 功能:非等距插值。已知的元素值由3个向量来描述:x、y和z。函数返回值为一矩阵zi,其元素的值由x、y和z确定的二元函数插值得到。method可为:linear(默认值)、cubic 、nearest 、v4 。,格式:zi=interp2(x, y, z, xi, yi, method) 功能:单调节点插值。已知的元素值由3个向量来描述:x、y和z。其中,x、y是已知数据组并且大小相同,z是相对应的已知点上的函数值;xi、yi是用于插值的矢量; zi是根据相应的插值方法并且与

17、(xi, yi)对应的插值结果。插值方法method:linear(默认值)、cubic 、nearest 、spline 。,4.关系和逻辑运算,关系操作符 逻辑操作符 关系与逻辑函数 NaNs和空矩阵 各种运算符的优先级,(1) 关系操作符,关系操作符及其功能,(2) 逻辑操作符,逻辑操作符及其功能,(3) 关系与逻辑函数,关系与逻辑函数及其功能,(4) NaNs和空矩阵,NaNs和空矩阵( ) 在MATLAB 7中作特殊处理: 根据IEEE数学标准。对NaNs的几乎所有运算结果都得出NaNs。 空矩阵由MATLAB 7的生成器确定,并有它自己的特性。空矩阵是简单的,它们是MATLAB 7

18、大小为零的变量 。, a=size() a = 0 0 b=ones(4,0) b = Empty matrix: 4-by-0 size(b) ans = 4 0 length(b) ans = 0 ,各种运算符的优先级,第6章 数值计算功能(矩阵),介绍MATLAB 7的矩阵以及它们之间的运算。 介绍了一些特殊的矩阵数据结构。,1. 矩阵的生成,矩阵的生成有多种方式,通常使用的有4种方法: 在命令窗口中直接输入矩阵 通过语句和函数产生矩阵 在M文件中建立矩阵 从外部的数据文件中导入矩阵, matrix=1 ,1, 1, 1;2, 2, 2, 2;3, 3, 3, 3;4, 4, 4, 4

19、matrix = 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4,6.1 矩阵及其运算,2. 矩阵的基本数值运算,矩阵与常数的四则运算 矩阵之间的四则运算,matrix=1 2 1 2; 3 4 3 4; 5 6 5 6; 7 8 7 8 matrix = 1 2 1 2 3 4 3 4 5 6 5 6 7 8 7 8 m1=500+matrix m1 = 501 502 501 502 503 504 503 504 505 506 505 506 507 508 507 508 m3=10*matrix m3 = 10 20 10 20 30 40 30 40 50 60

20、50 60 70 80 70 80,A=1 2 1 2; 3 4 3 4; 5 6 5 6; 7 8 7 8 A = 1 2 1 2 3 4 3 4 5 6 5 6 7 8 7 8 B=4 4 4 4; 2 2 2 2; 3 3 3 3; 1 1 1 1 B = 4 4 4 4 2 2 2 2 3 3 3 3 1 1 1 1 C=A*B C = 13 13 13 13 33 33 33 33 53 53 53 53 73 73 73 73,3. 特殊矩阵的生成,零矩阵和全1矩阵的生成 (zeros 、ones),例6-6 零矩阵的生成。 解:在命令窗口中输入如下命令,并按Enter键确认。 A=zeros(3,5) A = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 B=2 3 4 5 6;9 8 7 6 5;1 2 3 4 5 B = 2 3 4 5 6 9 8 7 6 5 1 2 3 4 5 A=zeros(size(B) A = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0, A=zeros(4) A = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 C=ones(3,4) C = 1 1 1 1 1 1 1 1 1 1 1 1,对角矩阵的生成 (diag

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论