算法案例-秦九韶算法.pptxVIP

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
案例2 秦九韶算法x=5f=2*x^5-5*x^4-4*x^3+3*x^2-6*x+7PRINT fEND程序[问题1]设计求多项式f(x)=2x5-5x4-4x3+3x2-6x+7当x=5时的值的算法,并写出程序. 点评:上述算法一共做了15次乘法运算,5次加法运算.优点是简单,易懂;缺点是不通用,不能解决任意多项多求值问题,而且计算效率不高.[问题2]有没有更高效的算法? 分析:计算x的幂时,可以利用前面的计算结果,以减少计算量, 即先计算x2,然后依次计算的值. 这析计算上述多项式的值,一共需要9次乘法运算,5次加法运算. 第二种做法与第一种做法相比,乘法的运算次数减少了,因而能提高运算效率.而且对于计算机来说,做一次乘法所需的运算时间比做一次加法要长得多,因此第二种做法能更快地得到结果. [问题3]能否探索更好的算法,来解决任意多项式的求值问题?v0=2v1=v0x-5=2×5-5=5v2=v1x-4=5×5-4=21v3=v2x+3=21×5+3=108v4=v3x-6=108×5-6=534v5=v4x+7=534×5+7=2677f(x)=2x5-5x4-4x3+3x2-6x+7=(2x4-5x3-4x2+3x-6)x+7=((2x3-5x2-4x+3)x-6)x+7=(((2x2-5x-4)x+3)x-6)x+7=((((2x-5)x-4)x+3)x-6)x+7所以,当x=5时,多项式的值是2677.这种求多项式值的方法就叫秦九韶算法.求多项式f(x)=x5+5x4+10x3+10x2+5x+1当x=-2时的值.[解析] 先改写多项式,再由内向外计算.f(x)=x5+5x4+10x3+10x2+5x+1=((((x+5)x+10)x+10)x+5)x+1.而x=-2,所以有:v0=1,v1=v0x+a4=1×(-2)+5=3,v2=v1x+a3=3×(-2)+10=4,v3=v2x+a2=4×(-2)+10=2,v4=v3x+a1=2×(-2)+5=1,v5=v4x+a0=1×(-2)+1=-1.即f(-2)=-1.解法一:首先将原多项式改写成如下形式 : f(x)=((((2x-5)x-4)x+3)x-6)x+7然后由内向外逐层计算一次多项式的值,即v0=2 v1=v0x-5=2×5-5=5v2=v1x-4=5×5-4=21v3=v2x+3=21×5+3=108v4=v3x-6=108×5-6=534v5=v4x+7=534×5+7=2677所以,当x=5时,多项式的值是2677.例3:用秦九韶算法求多项式f(x)=2x5-5x4-4x3+3x2-6x+7当x=5时的值.例3:用秦九韶算法求多项式f(x)=2x5-5x4-4x3+3x2-6x+7当x=5时的值.原多项式的系数解法二:列表2 -5 -4 3 -6 =5540267025211082677534所以,当x=5时,多项式的值是2677.多项式的值.练一练:用秦九韶算法求多项式f(x)=2x6-5x5-4x3+3x2-6x当x=5时的值.解:原多项式先化为: f(x)=2x6-5x5 +0×x4-4x3+3x2-6x+0列表2 -5 0 -4 3 -6 0125151701025x=560530402525121303415170608所以,当x=5时,多项式的值是15170. 注意:n次多项式有n+1项,因此缺少哪一项应将其系数补0. 一般地,对于一个n次多项式f(x)=anxn+an-1xn-1+an-2xn-2+……+a1x+a0.我们可以改写成如下形式:f(x)=(…(anx+an-1)x+an-2)x+…+a1)x+a0. 求多项式的值时,首先计算最内层括号内一次多项式的值,即 v1=anx+an-1,然后由内向外逐层计算一次多项式的值,即v2=v1x+an-2,v3=v2x+an-3, ……,vn=vn-1x+a0. 这样,求n次多项式f(x)的值就转化为求n个一次多项式的值.这种算法称为秦九韶算法. 点评:秦九韶算法是求一元多项式的值的一种方法. 它的特点是:把求一个n次多项式的值转化为求n个一次多项式的值,通过这种转化,把运算的次数由至多n(n+1)/2次乘法运算和n次加法运算,减少为n次乘法运算和n次加法运算,大大提高了运算效率.v0=an,vK=vK-1x+an-k(k=1,2,……,nv3=v2x+an-3, ……,vn=vn-1x+a0. 观察上述秦九韶算法中的n个一次式,可见vk的计算要用到vk-1的值.若令v0=an,得 这是一个在秦九韶算

文档评论(0)

131****9843 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档