- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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):使用于长除法
您可能关注的文档
- (Java Web程序设计基础教程)第9章信息添加.ppt
- (Java Web程序设计基础教程)第10章修改和删除.ppt
- (Java Web程序设计基础教程)第11章国际化.ppt
- (Java Web程序设计基础教程)第12章对系统异常进行处理.ppt
- (Java Web程序设计基础教程)第13章系统安全控制.ppt
- (Java Web程序设计基础教程)第14章综合实训:购物车管理和订单管理.ppt
- (Java Web程序设计基础教程)第15章程序调试.ppt
- (Linux网络操作系统应用教程)第1章Linux概述.ppt
- (Linux网络操作系统应用教程)第2章安装Linux系统.ppt
- (Linux网络操作系统应用教程)第3章图形化用户界面.ppt
原创力文档


文档评论(0)