算法案例(二)秦九韶算法.ppt_第1页
算法案例(二)秦九韶算法.ppt_第2页
算法案例(二)秦九韶算法.ppt_第3页
算法案例(二)秦九韶算法.ppt_第4页
算法案例(二)秦九韶算法.ppt_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

学习目标: 1、了解秦九韶算法的计算过程,并理解利用秦九韶算法可以减少计算次数提高计算效率的实质。 2、模仿秦九韶计算方法,体会古人计算构思的巧妙。,算法案例二-秦九韶算法,1、求两个数的最大公约数的两种方法分别是( )和( )。 2、两个数21672,8127的最大公约数是( ) A、2709 B、2606 C、2703 D、2706,知识回顾,问题1设计求多项式f(x)=2x5-5x4-4x3+3x2-6x+7当x=5时的值的算法,并写出程序.,点评:上述算法一共做了15次乘法运算,5次加法运算.优点是简单,易懂;缺点是不通用,不能解决任意多项多求值问题,而且计算效率不高.,知识探究,阅读教材37页39页内容,解决下列问题:,这析计算上述多项式的值,一共需要9次乘法运算,5次加法运算.,问题2有没有更高效的算法?,分析:计算x的幂时,可以利用前面的计算结果,以减少计算量,即先计算x2,然后依次计算,的值.,第二种做法与第一种做法相比,乘法的运算次数减少了,因而能提高运算效率.而且对于计算机来说,做一次乘法所需的运算时间比做一次加法要长得多,因此第二种做法能更快地得到结果.,问题3能否探索更好的算法,来解决任意多项式的求值问题?,f(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,v0=2 v1=v0x-5=25-5=5 v2=v1x-4=55-4=21 v3=v2x+3=215+3=108 v4=v3x-6=1085-6=534 v5=v4x+7=5345+7=2677,所以,当x=5时,多项式的值是2677.,这种求多项式值的方法就叫秦九韶算法.,例1:用秦九韶算法求多项式 f(x)=2x5-5x4-4x3+3x2-6x+7当x=5时的值.,解法一:首先将原多项式改写成如下形式 : f(x)=(2x-5)x-4)x+3)x-6)x+7,v0=2 v1=v0x-5=25-5=5 v2=v1x-4=55-4=21 v3=v2x+3=215+3=108 v4=v3x-6=1085-6=534 v5=v4x+7=5345+7=2677,所以,当x=5时,多项式的值是2677.,然后由内向外逐层计算一次多项式的值,即,2 -5 -4 3 -6 7,x=5,10,5,25,21,105,108,540,534,2670,2677,所以,当x=5时,多项式的值是2677.,原多项式的系数,多项式的值.,例1:用秦九韶算法求多项式 f(x)=2x5-5x4-4x3+3x2-6x+7当x=5时的值.,解法二:列表,2,2 -5 0 -4 3 -6 0,x=5,10,5,25,25,125,121,605,608,3040,3034,所以,当x=5时,多项式的值是15170.,练一练:用秦九韶算法求多项式 f(x)=2x6-5x5-4x3+3x2-6x当x=5时的值.,解:原多项式先化为: f(x)=2x6-5x5 +0x4-4x3+3x2-6x+0 列表,2,15170,15170,注意:n次多项式有n+1项,因此缺少哪一项应将其系数补0.,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,然后由内向外逐层计算一次多项式的值,即,一般地,对于一个n次多项式,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次加法运算,大大提高了运算效率.,v1=anx+an-1,v2=v1x+an-2,v3=v2x+an-3, ,vn=vn-1x+a0.,观察上述秦九韶算法中的n个一次式,可见vk的计算要用到vk-1的值.,若令v0=an,得,这是一个在秦九韶算法中反复执行的步骤,因此可用循环结构来实现.,问题画出程序框图,表示用秦九韶算法求5次多项式f(x)=a5x5+a4x4+a3x3+a2x2+a1x+a0当x=x0 (x0是任意实数)时的值的过程,然后写出程序.,否,程序框图,开始,输入a0,a1,a2,a3,a4,a5,输入x0,n5?,n=1,v=a5,v=vx0+a5-n,n=n+1,输出v,结束,是,达标检测,1.已知f(x)=x5-4x4+2x2-5x+1,求f(3)的值.,f(3)=-77,2.用秦九韶算法计算多项式 f(x)=3x6+4x5+5x4+6x3+7x2+8x+1当x=0.4时的值时,需要 做乘法和加法的次数分别是( ) A.6,6 B.5,6 C.5,5 D.6,5,A,3.用秦九韶算法求多项式f(x)=x4-2x3+3x2-7x-5当x=4时的 值,给出如下数据:0 2 11 37 143 其运算过 程中(包括最终结果)会出现的数有_(只填序号).,5.利用秦九韶算法计算函数f(x)=x+2x2+3x3+4x4+5x5 的值时,

温馨提示

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

评论

0/150

提交评论