(MATLAB程序设计基础教程)第7章数值计算与分析.ppt

(MATLAB程序设计基础教程)第7章数值计算与分析.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章  数值计算与分析  7.1 MATLAB多项式 7.1.1 概述   多项式在数学中有着极为重要的作用,同时多项式的运算也是工程和应用中经常遇到的问题。曲线拟合、插值运算在具有数据统计、信号处理和图像处理等领域应用十分广泛,是工程中经常要用到的技术之一。每当难以对一个函数进行积分、微分或者解析上确定一些特殊的值时,就可以借助计算机进行数值分析。   MATLAB提供了一些专门用于处理多项式的函数,包括多项式求根、多项式的四则运算及多项式的微积分等,如表7-1所示。   1.多项式与行向量   在MATLAB中,多项式可用一个行向量表示,向量中的元素为该多项式的系数,按照降序排列。如多项式p(x)?=?9x3?+?7x2?+?4x?+?3可以表示为向量p=[9 7 4 3]。 用户可以先用创建向量的方式创建一个多项式,然后按照降序排列其表示为多项式,也可用ployzstr(p)函数将向量p转换为多项式。   2.多项式的运算   由于多项式是利用向量来表示的,因此多项式的四则运算可以转化为向量的运算。   因为多项式的加减为对应项系数的加减,所以可以通过向量的加减来实现。但是在向量的加减中两个向量需要有相同的长度,因此在进行多项式加减时,需要将短的向量前面补0。   多项式的乘法实际上是多项式系数向量之间的卷积运算,可以通过MATLAB中的卷积函数conv()来完成。   多项式的除法为乘法的逆运算,可以通过反卷积函数deconv()来实现。除多项式的四则运算外,MATLAB还提供了多项式的一些其他运算。 7.1.2 多项式与根   1.用roots()函数求多项式的根   找出多项式(polynomial)的根,即多项式为零的值,这可能是许多学科共同的问题。MATLAB求解这个问题,并提供其他的多项式操作工具。   在MATLAB中,首先用一个行向量表示多项式的系数,该系数向量按降序排列。   用函数roots()找出多项式的根的函数用法如下:   r = roots(c):返回一个列向量,其元素就是多项式c的根。行向量c包含多项式按降序指数排列的系数,如果c有n+1个元素,则表示多项式为   2.用poly()函数根重组多项式   poly()函数与roots()函数是一对逆运算函数。使用poly()函数,可用根重组多项式。函数用法如下:   (1) ?p = poly(r):r是一个多项式的根向量,该函数返回多项式系数的行向量。例如:    pp=poly(r)   pp =    1.0000 -12.0000 -0.0000 25.0000 116.0000   (2) ?p = poly(A):A 是一个n?×?n矩阵,返回一个n+1个元素的行向量,其元素是多项式的系数。例如:    A =[ 1 2 3    4 5 6    7 8 0 ]    p = poly(A)   p =    1.0000 -6.0000 -72.0000 -27.0000   该语句找出多项式的根,在运算中实际是求A的本征值(eigenvalues),因此也可以使用eig()函数求A的本征值。   因为MATLAB无隙地处理复数,当用根重组多项式时,如果一些根有虚部,由于截断所产生的误差,则poly()的结果有一些小的虚部,这是很普通的。要消除虚假的虚部,只要使用函数real抽取实部即可。 7.1.3 卷积运算与多项式乘法   conv()函数用于卷积与多项式乘法。函数的定义和用法如下:   w = conv(u,v):计算向量 u和v的卷积。在代数计算中,多项式的乘法与此相同,多项式的系数就是u和v的元素。   定义:若m = length(u)、n = length(v),则w是长度为m?+?n-1的向量。第k个元素是:   当m = n时,即两向量长度相同,则w是长度为2n?-1的向量,结果是:   w(1) = u(1)*v(1)   w(2) = u(1)*v(2)+u(2)*v(1)   w(3) = u(1)*v(3)+u(2)*v(2)+u(3)*v(1)   …   w(n) = u(1)*v(n)?+?u(2)*v(n?-1)?+?…?+?u(n)*v(1)   …   w(2*n-1) = u(n)*v(n)   conv()函数支持多项式乘法,即执行两个数组的卷积,两个以上的多项式的乘法需要重复使用conv。 7.1.4 反卷积运算与多项式除法   函数deconv()用于反卷积与多项式除法。函数的定义和用法如下:   [q,r] = deconv(v,u):使用于长除法

文档评论(0)

autohhh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档