《数值向量和数组》PPT课件.ppt_第1页
《数值向量和数组》PPT课件.ppt_第2页
《数值向量和数组》PPT课件.ppt_第3页
《数值向量和数组》PPT课件.ppt_第4页
《数值向量和数组》PPT课件.ppt_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

第4章数值向量和数组,教学目标教学重点教学过程,教学目标,本章将介绍MATLAB7的数值计算功能,包括MATLAB7的向量和数组,并介绍它们之间的运算。通过对本章的学习,读者可以编写简单且功能完善的MATLAB7程序,从而解决各类基本问题,用户可以通过本章逐步掌握MATLAB7的数值计算方法。,教学重点,向量的运算方法关系和逻辑运算,教学过程,向量及其运算方法数组及其运算方法多项式的创建和运算方法关系和逻辑运算,一.向量及其运算,在命令窗口中直接输入向量等差元素向量的生成,1.向量的生成,(1)在命令窗口中直接输入向量,在命令窗口中按一定格式直接输入。输入的格式要求是,向量元素用“”括起来,元素之间用空格、逗号或者分号相隔。需要注意的是,用它们相隔生成的向量形式是不相同的:用空格或逗号生成行向量;用分号生成列向量。,例1a3a2=15,21,27,93,101;a1=15;21;27;93;101;a1,a2a2a1a3a3Matlab可以用“”在行和列之间进行转置。,a1a2a3a1(2)等差元素向量的生成,冒号生成法:基本格式vec=vec0:n:vecn其中:vec表示生成的向量,vec0表示向量的第一个元素,n表示步长,vecn表示向量的最后一个元素。n缺省时,表示步长为1,当向量的元素过多,同时向量各元素有等差的规律,此时采用直接输入法将过于繁琐。针对该种情况,可以使用冒号(:)和linspace函数来生成等差元素向量。,vec1=10:5:60vec1=1015202530354045505560,linspace函数:基本格式vec=linspace(vec0,vecn,n)Vec表示要生成的向量,vec0表示向量的第一个元素,vecn表示向量的最后一个元素,n表示生成向量元素的个数。线性等分向量函数。,vec2=linspace(10,60,11)vec2=1015202530354045505560,向量的基本运算,向量与数的四则运算向量与向量之间的加减运算点积、叉积和混合积,(1)向量与数的四则运算,向量与数的加法(减法):向量中的每个元素与数的加法(减法)运算。向量与数的乘法(除法):向量中的每个元素与数的乘法(除法)运算。,vec1=80:-9:10vec1=8071625344352617vec1+10ans=9081726354453627vec1-10ans=706152433425167vec1*10vec1=800710620530440350260170vec1/10vec1=8.00007.10006.20005.30004.40003.50002.60001.7000,(2)向量与向量之间的加减运算,向量与向量的加法(减法)运算:向量中的每个元素与另一个向量中相对应的元素的加法(减法)运算。,vec1=linspace(200,500,7)vec1=200250300350400450500vec2=linspace(900,600,7)vec2=900850800750700650600vec3=vec1+vec2vec3=1100110011001100110011001100vec3=vec1-vec2vec3=-700-600-500-400-300-200-100,(3)点积、叉积和混合积,两个向量的点积:定义:也就是数分中“内积”。设向量a=a1,a2,.an,b=b1,b2.bn,则aba1b1a2b2anbn几何意义:一个向量在另一个向量上的投影的长度。格式:dot(A,B),x1=11223344x2=1,2,3,4a=dot(x1,x2)a=330sum(x1.*x2)ans=330,两个三维向量的叉积:定义:等于一个新的向量,该向量与前两者垂直,且长度为前两者张成的平行四边形面积,其方向按照右手螺旋决定。数学表达:叉积c=aXb可如下严格定义。(1)|c|=|ab|=|a|b|sin(2)ca,且cb,(3)c的方向要用“右手法则”判断格式:cross(a,b),x1=112233x1=112233x2=123x2=123x3=cross(x1,x2)x3=000,向量的混合积:定义:设a,b,c是空间中三个向量,则(ab)c称为三个向量a,b,c的混合积。(ab)c=|ab|c|cos(ab,c)几何意义:它的绝对值表示以向量为棱的平行六面体的体积格式:,dot(cross(a,b),c),dot(a,cross(b,c),a=123a=123b=243b=243c=521c=521v=dot(a,cross(b,c)v=-24v=dot(cross(a,b),c)v=-24,v=cross(a,dot(b,c)?Errorusing=crossAandBmustbesamesize.,2.数组及其运算,数组寻址和排序数组的基本数值运算,(1)数组寻址和排序,若访问单个元素,则直接采用访问下标的方法,1)数组的寻址即访问数组的元素。通过对数组的下标来访问数组元素。数组元素的下标是从1开始。,A=rand(1,5)%生成15的随机矩阵,元素(0,1)A=0.95010.23110.60680.48600.8913A(4)ans=0.4860,若访问一块连续标号的数据,可以使用冒号A(2:4)ans=0.23110.60680.4860若访问一块标号不连续的数据,可以使用中括号A(135)ans=0.95010.60680.8913可以用end表示数组的结尾A(3:end)ans=0.60680.48600.8913,A=0.95010.23110.60680.48600.8913,2)数组的排序使用sort函数对数组进行排序。格式:sort(X)当X是一维数组时,sort(X)将X中的元素按升序排列当X是多维数组时,sort(X)将X中的各列元素按升序排列当X是字符型单元数组时,sort(X)将X中的各列元素按对应的ASCII码进行升序排列sort(X,DIM,MODE):DIM表示选择用于排列的维数,MODE表示排序的方式,ascend升序,descend降序当X是复数数组时,将按各元素的模abs(X)进行排序。,X=375089X=375089sort(X,1)%将行进行升序排列ans=075389sort(X,1,descend)%将行进行降序排列ans=389075sort(X,2)%将列进行升序排列ans=357089,X=1+2i,4+i;1+i,2+3iX=1.0000+2.0000i4.0000+1.0000i1.0000+1.0000i2.0000+3.0000isort(X)ans=1.0000+1.0000i2.0000+3.0000i1.0000+2.0000i4.0000+1.0000i,(2)数组的基本数值运算,数组的加法(减法)数组的乘法(除法)数组的乘方,1)数组的加减法对应元素相加或者相减例:计算x=1,4,7与Y=2,5,8的和与差。X=147;Y=258;Z=X-YZ=-1-1-1V=X+YV=3915,2)数组的乘除法对应元素相乘或者相除。如果X和Y具有相同的维数,则X.*Y表示对应元素的乘积,X./Y表示X各元素除以对应的Y的各元素。X.Y表示Y各元素除以对应的X的各元素。,X=1052961256;Y=226348;X.*Yans=20135228848448X./Yans=523237X.Yans=0.20000.50000.03130.33330.1429,x1=11223344;x2=1,2,3,4;a=dot(x1,x2)a=330sum(x1.*x2)ans=330,3)数组的乘方,设,数组的乘方有三种不同的形式:,两个数组之间的乘方运算格式:X.Y意义:,数组为底数,指数为标量的乘方格式:X.a意义:,数组为指数,底数为标量的乘方格式:a.X意义:,X=147;Y=258;Z=X.YZ=110245764801X=3,6,9;Z=X.3Z=27216729X=45678;Z=3.XZ=8124372921876561,3.多项式,多项式的创建多项式的运算关系和逻辑运算,(1)多项式的创建,直接输入系数向量创建多项式特征多项式输入法由多项式的根逆推多项式,在Matlab中,n次多项式是用一个长度为n+1的向量来表示,缺少的幂次项系数为0。例如:,在Matlab中表示为相应的向量:,例:,直接输入系数向量创建多项式,P=2-102,然后用,poly2sym(P),将向量P转化为多项式,注意:书写向量的时候,系数按降幂排序。而该向量可以是行向量,也可以是列向量。系数中的零不能省!,P=3501012P=3501012y=poly2sym(P)%将向量P转化成多项式y=3*x5+5*x4+x2+12,特征多项式输入法,MATLAB7提供了poly函数,使用它可以由矩阵的特征多项式创建多项式。,注意:使用该方法生成多项式时,其首项的系数必为1。生成的结果是用一个向量表示的多项式,若想以多项式的形式显示,须用函数poly2sym,格式:poly(A),A是一个矩阵,poly(A)表示生成矩阵A的特征多项式,A=3141;5926;5358;9793;p=poly(A)p=1.0000-20.0000-16.0000480.000098.0000y=poly2sym(p)y=x4-20*x3-16*x2+480*x+1724034232352773/17592186044416vpa(y,6)%将多项式y中的各系数以不超过6位的形式出现ans=x4-20.*x3-16.*x2+480.*x+98.0000,注:vpa(a,n)实现数值精确到小数点后某一位,vpa会根据精度要求去掉末尾的数位或者补0。整数+小数部分的位数一共是n位。,由多项式的根逆推多项式,如果已知某个多项式的根,那么,使用poly函数,可以很轻松地产生其对应的多项式。,A是一个向量,A=a1,a2,.anpoly(A)表示生成以A为根的多项式,格式:poly(A),注意:使用该方法生成多项式时,其首项的系数必为1。生成的结果是用一个向量表示的多项式,若想以多项式的形式显示,须用函数poly2sym,roots=-4-2+2i-2-2i5roots=-4.0000-2.0000+2.0000i-2.0000-2.0000i5.0000p=poly(roots)p=13-16-88-160poly2sym(p)x4+3*x3-16*x2-88*x-160,(2)多项式的运算,多项式的求值求多项式的根多项式的四则运算,多项式的求值,MATLAB7提供了两个函数来对多项式进行求值,即polyval和polyvalm。,polyval用来求代数多项式的值,格式:y=polyval(P,x)意义:返回以向量P为系数的多项式在x处的值。说明:若x矩阵或向量,则将对矩阵或向量的每一个元素都进行计算,polyvalm用来求矩阵多项式的值格式:y=polyvalm(P,x)意义:返回以向量P为系数的多项式在矩阵x处的值。,p=1-20-1648098;x=4;polyval(p,x)ans=738,p=321;x=5,7,9;polyval(p,x)ans=86162262,p=321;x=1,2;1,-1;polyval(p,x)ans=61762,p=1-20-1648098;X=magic(3)%生成3*3的魔术矩阵X=816357492polyval(p,X)ans=-3230543-622935223-1785738-4897850polyvalm(p,X)ans=-4199-4489-4489-4489-4199-4489-4489-4489-4199,求多项式的根,在MATLAB7语言里,多项式由一个行向量表示,设为p,使用roots函数可以求出该多项式的根。格式roots(p),p=1,-5,6;ROOTS(p)ans=3.00002.0000,注:有的版本的matlab,求根函数是大写的ROOTSROOTS(p),第二种求多项式根的方法:,例如:求多项式的根solve(x2-5*x+6=0)ans=32,另外:多项式的合并多项式的因式分解多项式的展开多项式的简化多项式的作图留待第七章和第八章再讲,多项式的四则运算,加法和减法如果多项式以向量形式表示若两个多项式的向量阶数相同,两个向量相加减当两个多项式的向量阶数不同时,需要在低阶多项式的前边补0,使得它与相加的高阶多项式有相同的阶数。也可以直接让两个多项式相加减,已知向量a=8228;b=6161;求对应多项式的加法,方法一:a=8228;b=6161;c=a+b;Y3=poly2sym(c)Y3=14*x3+3*x2+8*x+9,方法二:a=8228;b=6161;Y1=poly2sym(a);Y2=poly2sym(b);Y3=Y1+Y2Y3=14*x3+3*x2+8*x+9,a=14389;b=24;a+b?Errorusing=plusMatrixdimensionsmustagree.c=a+00bc=1431013poly2sym(c)ans=14*x3+3*x2+10*x+13,当两个多项式的阶数不一致时:,乘法,方法一:使用conv(a,b)a和b为两个多项式的系数向量,c为相乘所生成的多项式的系数向量。a=1234;b=5678;c=conv(a,b)c=5163460615232Y3=poly2sym(c)Y3=5*x6+16*x5+34*x4+60*x3+61*x2+52*x+32,方法二:直接用乘号运算符a=1234;b=5678;Y1=poly2sym(a);%求向量a表示的多项式Y2=poly2sym(b);%求向量b表示的多项式Y3=Y1*Y2Y3=(x3+2*x2+3*x+4)*(5*x3+6*x2+7*x+8)expand(Y3)%展开多项式Y3ans=5*x6+16*x5+34*x4+60*x3+61*x2+52*x+32,除法,使用deconv(a,b)a和b为两个多项式的系数向量,c为相除得到的多项式所生成的多项式的系数向量。a=5163460615232;b=5678;c=deconv(a,b);poly2sym(c)ans=x3+2*x2+3*x+4,多项式除法运算的另外一种形式:k,r=deconv(p,q),其

温馨提示

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

评论

0/150

提交评论