多项式函数库学习课件_第1页
多项式函数库学习课件_第2页
多项式函数库学习课件_第3页
多项式函数库学习课件_第4页
多项式函数库学习课件_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

一、多项式表示及其四则运算1.MATLAB的多项式表示在MATLAB中,对多项式用其系数的行向量来表示。其中,该向量的元素按幂指数降序排列,变量x的幂次已隐含在系数元素的排序中。注意:如果x的某次幂的系数为零,这个零必须列入系数向量中。例如一个一元三次多项式:可表示成行向量:2.多项式的加减运算

MATLAB规定,只有长度相同的向量才能相加。因此如果两个多项式向量大小相同,则可利用标准的数组加减法来进行多项式的加减运算。例:把多项式与多项式相加。a=[1,2,3,4];b=[1,4,9,16];d=a+b结果:d=261220注意:若两多项式系数向量长度不等,必须在短的向量中补以若干个零元素,才能进行加减。3.多项式相乘多项式相乘就是两个多项式系数向量的卷积,利用函数conv来实现。格式:

w=conv(a,b)功能:返回a、b两向量的卷积,也就是a、b代表的两个多项式的乘积。例:a=[1234];b=[14916];w=conv(a,b)w=

1620507584644.多项式相除函数[q,r]=deconv(u,v)用于对多项式u和v作除法运算。其中q返回多项式u除以v的商式,r返回u除以P2的余式。这里,q和r仍是多项式系数向量。deconv是conv的逆函数,即有

u=conv(v,q)+r

例:a=[1234];b=[14916];w=conv(a,b)[q,r]=deconv(w,b)如令除数a1=a+1,则:b1=b+1;[q1,r1]=deconv(w,b1)可以用商式与除式相乘,再加上余式的方法来检验:w1=conv(q1,b1)+r1二、多项式求导、求根和求值

1.多项式求导函数对多项式求导数的函数是:p=polyder(P):求多项式P的导数p=polyder(P,Q):求P与Q乘积的导数[p,q]=polyder(P,Q):求商P/Q的导数,导函数的分子存入p,分母存入q。上述函数中,参数P,Q是多项式的向量表示,结果p,q也是多项式的向量表示。例:a=[1234];b=[14916];k1=polyder(a)k2=polyder(a,b)[p,q]=polyder(a,b)2.多项式的根求解多项式的根,即a(x)=0的解。MATLAB中求解多项式的根由roots函数命令来完成。格式:r=roots(p)返回多项式a(x)的根注意:MATLAB按惯例规定,多项式是行向量,根是列向量。例:求多项式x4+8x3-10的根。命令如下:A=[1,8,0,0,-10];x=roots(A)若已知多项式的全部根,则可以用poly函数建立起该多项式,其调用格式为:P=poly(x)若x为具有n个元素的向量,则poly(x)建立以x为其根的多项式,且将该多项式的系数赋给向量P。例:已知f(x)(1)计算f(x)=0的全部根。(2)由方程f(x)=0的根构造一个多项式g(x),并与f(x)进行对比。命令如下:P=[3,0,4,-5,-7.2,5];X=roots(P)%求方程f(x)=0的根G=poly(X)%求多项式g(x)3.多项式求值函数利用函数polyval可以求得多项式在某一点的值。基本调用格式为:

y=polyval(p,x)功能:返回多项式p在x处的值。其中x可以是复数,也可以是数组。例:设a1=[2,4,6,8]为系统分母系数向量,b1=[3,6,9]为系统分子系数向量,求此系统的频率响应并画出频率特性。程序:a1=[2,4,6,8];b1=[3,6,9];w=linspace(0,10);A=polyval(a1,j*w);B=polyval(b1,j*w);subplot(2,1,1);plot(w,abs(B./A));subplot(2,1,2);plot(w,angle(B./A));当多项式的变量是矩阵时,构成的矩阵多项式可以利用polyvalm函数求值。格式为:Y=polyvalm(p,X)X为方阵功能:返回矩阵多项式p在X处的值。例:p=[1,0,-2,-5];X=[2,4,5;-1,0,3;7,1,5];Y=polyvalm(p,X)结果:Y=377179439111811364902536394.部分分式展开函数在许多应用中,会出现有理多项式之比的形式如b(s)/a(s),在b(s)和a(s)没有重根的情况下,有理多项式b(s)/a(s)可以进行部分分式展开。

MATLAB提供了residue函数来完成有理多项式的部分分式展开,它是一个对系统传递函数特别有用的函数。residue函数调用格式格式一:[r,p,k]=residue(b,a)功能:把b(s)/a(s)展开成当分母多项式的阶次高于分子多项式的阶次时,ks=0。例:将有理多项式展开成部分分式。在命令窗口中可作如下操作:num=[10,20];den=[1,8,19,12];[res,poles,k]=residue(num,den)格式二:[b,a]=residue(r,p,k)如:[b,a]=residue(res,poles,k)结果:b=-0.000010.000020.0000a=1.00008.000019.000012.0000三、多项式拟合在线性代数中,对于数据的拟合,方法很多,多项式拟合则是其中之一。在MATLAB系统中提供一条专用多项式拟合函数polyfit,用户只需输入相应的数据和参数就可以构造出一条最光滑的曲线。格式:p=polyfit(x,y,n)功能:利用已知的数据向量x和y所确定的数据点,采用最小二乘法构造出n阶多项式去逼近已知的离散数据,实现多项式曲线的拟合.其中p是求出的多项式系数,n阶多项式应该有n+1个系数,故p的长度为n+1。例:设原始数据为x,在11个点上测得的y值如下:x=[-2.0,-1.6,-1.2,-0.8,-0.4,0,0.4,0.8,1.2,1.6,2.0];y=[2.8,2.96,2.54,3.44,3.56,5.4,6.0,8.4,9.5,13.3,15];若采用2阶多项式拟合,则可执行命令:p1=polyfit(x,y,2)%采用2阶多项式拟合p1=1.03033.08184.9788故所拟合的多项式为:

1.0303x2+3.0818x+4.9788为了比较,把原始数据和拟合得到的曲线画出来:x1=linspace(-2,2,100);y1=polyval(p1,x1);plot(x,y,'o',x1,y1,'r');legend('原始数据','2阶多项式')注意:1.拟合的多项式的阶数可以任意选取,但最大拟合阶次应为原始数据长度减1。2.如果选择拟合的多项式的阶次不同,就会得到不同的拟合结果。对于给定11点的最大拟合阶次为10

温馨提示

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

评论

0/150

提交评论