




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第10章 多 项 式10.1 根 找出多项式的根,即多项式为零的值,可能是许多学科共同的问题,。MATLAB求解这个问题,并提供其它的多项式操作工具。在MATLAB里,多项式由一个行向量表示,它的系数是按降序排列。例如,输入多项式x412x30x225x116 p=1 -12 0 25 116p = 1 -12 0 25 116 注意,必须包括具有零系数的项。除非特别地辨认,MATLAB无法知道哪一项为零。给出这种形式,用函数roots找出一个多项式的根。 r=roots(p)r = 11.7473 2.7028 -1.2251 + 1.4672i -1.2251 - 1.4672i 因为在MATLAB中,无论是一个多项式,还是它的根,都是向量,MATLAB按惯例规定,多项式是行向量,根是列向量。给出一个多项式的根,也可以构造相应的多项式。在MATLAB中,命令poly执行这个任务。 pp=poly(r)pp = 1.0e+002 * Columns 1 through 4 0.0100 -0.1200 0.0000 0.2500 Column 5 1.1600 + 0.0000i pp=real(pp) %throw away spurious imaginary partpp = 1.0000 -12.0000 0.0000 25.0000 116.0000 因为MATLAB无隙地处理复数,当用根重组多项式时,如果一些根有虚部,由于截断误差,则poly的结果有一些小的虚部,这是很普通的。消除虚假的虚部,如上所示,只要使用函数real抽取实部。10.2 乘法 函数conv支持多项式乘法(执行两个数组的卷积)。考虑两个多项式a(x)=x32x23x4和b(x)= x34x29x16的乘积: a=1 2 3 4 ; b=1 4 9 16; c=conv(a , b)c = 1 6 20 50 75 84 64 结果是c(x)=x66x520x450x375x284x64。两个以上的多项式的乘法需要重复使用conv。10.3 加法 对多项式加法,MATLAB不提供一个直接的函数。如果两个多项式向量大小相同,标准的数组加法有效。把多项式a(x)与上面给出的b(x)相加。 d=a+bd = 2 6 12 20 结果是d(x)= 2x36x212x20。当两个多项式阶次不同,低阶的多项式必须用首零填补,使其与高阶多项式有同样的阶次。考虑上面多项式c和d相加: e=c+0 0 0 de = 1 6 20 52 81 96 84 结果是e(x)= x66x520x452x381x296x84。要求首零而不是尾零,是因为相关的系数象x幂次一样,必须整齐。 如果需要,可用一个文件编辑器创建一个函数M文件来执行一般的多项式加法。精通MATLAB工具箱包含下列实现:function p=mmpadd(a,b)% MMPADD Polynomial addition.% MMPADD(A,B) adds the polynomial A and B% Copyright (c) 1996 by Prentice Hall,Inc.if nargin2 error( Not enough input arguments )enda=a(:). ; % make sure inputs are polynomial row vectorsb=b(:). ;na=length(a) ; % find lengths of a and bnb=length(b) ;p=zeros(1,nb-na) a+zeros(1,na-nb) b ; % add zeros as necessary 现在,为了阐述mmpadd的使用,再考虑前一页的例子。 f=mmpadd(c,d)f = 1 6 20 52 81 96 84 它与上面的e相同。当然,mmpadd也用于减法。g=mmpadd(c , -d)g = 1 6 20 48 69 72 44 结果是g(x)= x66x520x448x369x272x44。10.4 除法 在一些特殊情况,一个多项式需要除以另一个多项式。在MATLAB中,这由函数deconv完成。用上面的多项式b和c q , r=deconv(c , b)q = 1 2 3 4r = 0 0 0 0 0 0 0 这个结果是b被c除,给出商多项式q和余数r,在现在情况下r是零,因为b和q的乘积恰好是c。10.5 导数 由于一个多项式的导数表示简单,MATLAB为多项式求导提供了函数polyder。 gg = 1 6 20 48 69 72 44 h=polyder(g)h = 6 30 80 144 138 7210.6 估值 根据多项式系数的行向量,可对多项式进行加,减,乘,除和求导,也应该能对它们进行估值。在MATLAB中,这由函数polyval来完成。 x=linspace(-1, 3) ; % choose 100 data points between -1and 3. p=1 4 -7 -10 ; % uses polynomial p(x) = x34x27x10 v=polyval(p , x) ; 计算x值上的p(x),把结果存在v里。然后用函数plot绘出结果。 plot(x , v),title( x3+4x2-7x-10 ), xlabel( x )图10.1 多项式估值10.7 有理多项式 在许多应用中,例如富里哀(Fourier),拉普拉斯(Laplace)和Z变换,出现有理多项式或两个多项式之比。在MATLAB中,有理多项式由它们的分子多项式和分母多项式表示。对有理多项式进行运算的两个函数是residue和polyder。函数residue执行部分分式展开。 num=10*1 2 ; % numerator polynomial den=poly(-1; -3; -4) ; % denominator polynomial res, poles, k=residue(num, den)res = -6.6667 5.0000 1.6667poles = -4.0000 -3.0000 -1.0000k = 结果是余数、极点和部分分式展开的常数项。上面的结果说明了该问题: 这个函数也执行逆运算。 n, d=residue(res, poles, k)n = 0.0000 10.0000 20.0000d = 1.0000 8.0000 19.0000 12.0000 roots(d)ans = -4.0000 -3.0000 -1.0000 在截断误差内,这与我们开始时的分子和分母多项式一致。residue也能处理重极点的情况,尽管这里没有考虑。 正如前面所述,函数polyder,对多项式求导。除此之外,如果给出两个输入,则它对有理多项式求导。 b , a=polyder(num , den)b = -20 -140 -320 -260a = 1 16 102 328 553 456 144 该结果证实: 10.8 M文件举例 本章说明了在精通MATLAB工具箱 中两个函数。这些函数说明了本章所论述的多项式概念和如何写M文件函数。关于M文件的更多信息,参阅第8章。 在讨论M文件函数的内部结构之前,我们考虑这些函数做些什么。 n % earlier datan = 0.0000 10.0000 20.0000 b % earlier datab = -20 -140 -320 -260 mmpsim(n) % strip away negligible leading termans = 10.0000 20.0000 mmp2str(b) % convert polynomial to stringans =-20s3 - 140s2 - 320s1 - 260 mmp2str(b , x ) ans =-20x3 - 140x2 - 320x1 - 260 mmp2str(b , , 1) ans =-20*(s3 + 7s2 + 16s1 + 13) mmp2str(b , x , 1) ans =-20*(x3 + 7x2 + 16x1 + 13) 这里函数mmpsim删除在多项式n中近似为零的第一个系数。函数mmp2str把数值多项式变换成等价形式的字符串表达式。该两个函数的主体是:function y=mmpsim(x,tol)% MMPSIM Polynomial Simplification,Strip Leading Zero Terms.% MMPSIM(A) Delets leading zeros and small coefficients in the % polynomial A(s). Coefficients are considered small if their % magnitude is less than both one and norm(A)*1000*eps.% MMPSIM(A,TOL) uses TOL for its smallness tolerance.% Copyright (c) 1996 by Prentice-Hall,Inc.if nargin2, tol=norm(x)*1000*eps; endx=x(:). ; % make sure input is a row i=find(abs(x).99&abs(x)tol) ; % find insignificant indicesx(i)=zeros(1, length(i) ; % set them to zeroi=find(x=0) ; % find significant indicesif isempty(i) y=0 ; % extreme case: nothing left!else y=x(i(1) : length(x) ; % start with first termend % and go to end of polynomialfunction s=mmp2str(p,v,ff)% MMP2STR Polynomial Vector to String Conversion.% MMP2STR(P) converts the polynomial vector P into a string.% For example: P = 2 3 4 becomes the string 2s2 + 3s + 4 % MMP2STR(P,V) generates the string using the variable V% instead of s. MMP2STR(2 3 4, z ) becomes 2z2 + 3z + 4 % MMP2STR(P,V,1) factors the polynomial into the product of a% constant and a monic polynomial.% MMP2STR(2 3 4, ,1) becomes 2(s2 + 1.5s + 2) % Copyright (c) 1996 by Prentice-Hall,Inc.if nargin3, ff=0; end % factored form is Falseif nargin 2, v= s ; end % default variable is s if isempty(v), v= s ; end % default variable is s v=v(1) ; % variable must be scalar p=mmpsim(p) ; % strip insignificant termsn=length(p) ;if ff % put in factored form K=p(1) ; Ka=abs(K) ; p=p/K; if abs(K-1)1e-4 pp= ; pe= ; elseif abs(K+1)1e-4 pp= -( ; pe= ) ; elseif abs(Ka-round(Ka)=1e-5*Ka pp=sprintf( %.0f , K) *( ; pe= ) ; else pp=sprintf( %.4g , K) *( ; pe= ) ; endelse % not factored form K=p(1); pp=sprintf( %.4g , K) ; pe= ;endif n=1 % polynomial is just a constant s=sprintf( %.4g ,K); returnends=pp v sprintf( %.0f ,n-1); % begin string constructionfor i=2:n-1 % catenate center terms in polynomial if p(i)0, pm= - ; else, if p(i)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 办事处安全生产教育培训课件
- 农业政策与法规课件
- 养护安全作业培训资料课件
- 农业安全基础知识培训课件
- 化工仪表工安全培训课件
- 内部消防安全培训情况课件
- 内部安全防范教育培训课件
- 鸭脖店营销方案(3篇)
- 内训师课件范例
- 内蒙安全生产培训平台课件
- 2025年度反洗钱阶段考试培训试考试题库(含答案)
- 超高强钢冷冲压三点弯曲与辊压弯曲性
- 基于双减背景下小学英语项目式学习创新研究 论文
- 人教版(2019)选择性必修第一册Unit+2+Using+Language+课件
- 使用智能手机教程课件
- 苏教版三年级数学(下册)《间隔排列》课件
- 2023-2023年中国工商银行校园招聘考试历年真题、考查知识点以及备考指导
- 临时聘用合同模板(三篇)
- 电力系统分析基础教案-按课时
- 动漫及动漫文化的定义
- 江苏亿洲再生资源科技有限公司资源综合利用技改提升项目 环评报告书
评论
0/150
提交评论