132《算法案例——秦九韶算法》(新人教A版必修3)_第1页
132《算法案例——秦九韶算法》(新人教A版必修3)_第2页
132《算法案例——秦九韶算法》(新人教A版必修3)_第3页
132《算法案例——秦九韶算法》(新人教A版必修3)_第4页
132《算法案例——秦九韶算法》(新人教A版必修3)_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、v主讲老师 潘学国思考:思考:怎样求多项式怎样求多项式f(x)=x5+x4+x3+x2+x+1当当x=5时时的值呢?的值呢? 一个自然的做法是把一个自然的做法是把5代入多项式代入多项式f(x),计算各,计算各项的值,然后把它们加起来。项的值,然后把它们加起来。 这时,我们一共做了这时,我们一共做了1+2+3+4=10次乘法,次乘法,5次次加法运算。加法运算。 优点是简单,易懂;缺点是不通用,不能解决优点是简单,易懂;缺点是不通用,不能解决任意多项式求值问题,而且计算效率不高。任意多项式求值问题,而且计算效率不高。温故知新温故知新思考:思考: 在上述问题中,若先计算在上述问题中,若先计算x2的值

2、,然后依次的值,然后依次计算计算x2x,(x2x)x,(x2x)x)x的值,这样每次都的值,这样每次都可以利用上一次计算的结果,一共做了多少次乘法可以利用上一次计算的结果,一共做了多少次乘法运算和多少次加法运算?运算和多少次加法运算? 4次乘法运算,次乘法运算,5 5次加法运算次加法运算. . 第二种做法与第一种做法相比,乘法的运算次数第二种做法与第一种做法相比,乘法的运算次数减少了,因而能提高运算效率。而且对于计算机来说,减少了,因而能提高运算效率。而且对于计算机来说,做一次乘法所需的运算时间比做一次加法要长得多,做一次乘法所需的运算时间比做一次加法要长得多,因此第二种做法计算机能更快地得到

3、结果。因此第二种做法计算机能更快地得到结果。思考:思考:有没有更有效的的算法呢有没有更有效的的算法呢?f(x)=x5+x4+x3+x2+x+1=(x4+x3+x2+x+1)x+1=(x3+x2+x+1)x+1)x+1=(x2+x+1)x+1)x+1)x+1=(x+1)x+1)x+1)x+1)x+1v0=1v1=v0 x+1=5+1=6v2=v1x+1=65+1=31v3=v2x+1=315+1=156v4=v3x+1=1565+1=781v5=v4x+1=7815+1=3906所以,当所以,当x=5时,多项式的值是时,多项式的值是3906.这种求多项式值的方法就叫这种求多项式值的方法就叫秦九韶

4、算法秦九韶算法. 我国南宋时期的数学家秦九韶在他的著作我国南宋时期的数学家秦九韶在他的著作数数学九章学九章提到了下面的算法。提到了下面的算法。 把一个把一个n n次多项式次多项式 f(x)=anxn+an-1xn-1+a1x+a0改写成如下形式:改写成如下形式:f(x)=anxn+an-1xn-1+a1x+a0 =(anxn-1+an-1xn-2+a2x+a1)x+a0=(anxn-2+an-1xn-3+a2)x+a1)x+a0=(anx+an-1)x+an-2)x+a1)x+a0.思考:思考:对于对于 f(x)=(anx+an-1)x+ an-2)x+a1)x+a0,由内向外逐层计算一次多项

5、式的值,其计算过程如何?由内向外逐层计算一次多项式的值,其计算过程如何? v1=anx+an-1, v2=v1x+an-2,v3=v2x+an-3, vn=vn-1x+a0. 例例1 1:已知一个已知一个5 5次多项式为次多项式为 f(x)=5x5+2x4+3.5x3-2.6x2+1.7x-0.8用秦九韶算法求用秦九韶算法求f(5)f(5)的值的值. .f(x)=(5x+2)x+3.5)x-2.6)x+1.7)x-0.8.v1=55+2=27;v2=275+3.5=138.5;v3=138.55-2.6=689.9;v4=689.95+1.7=3451.2;v5=3451.25-0.8=172

6、55.2.所以所以f(5)= 17255.2. 练习:练习:已知一个已知一个5次多项式为次多项式为 f(x)=5x5+3.5x3+1.7x-0.8 用秦九韶算法求当用秦九韶算法求当x=5时,时,V1,V3的值及求的值及求f(5)的值的值.解:解:f(x)=(5x+0)x+3.5)x+0)x+1.7)x-0.8. .v1=55+0=25;v2=255+3.5=128.5;v3=128.55+0=642.5;v4=642.55+1.7=3214.2;v5=3214.25-0.8=16070.2.所以所以v1=25, v3=642.5 ,f(5)=16070.2.思考:思考:上述求多项式上述求多项式

7、 f(x)=anxn+an-1xn-1+a1x+a0的值的方法称为的值的方法称为秦九韶算法秦九韶算法,利用该算法求,利用该算法求f(x0)的值,一共需要多少的值,一共需要多少次乘法运算,多少次加法运算?次乘法运算,多少次加法运算? 思考:思考:在秦九韶算法中,记在秦九韶算法中,记v0=an,那么第,那么第k步的算式步的算式是什么?是什么? vk=vk-1x+an-k (k=1,2,n)n n次乘法运算,次乘法运算, n n次加法运算次加法运算思考:思考:用秦九韶算法求多项式的值,可以用什么逻辑用秦九韶算法求多项式的值,可以用什么逻辑结构来构造算法?其算法步骤如何设计?结构来构造算法?其算法步骤

8、如何设计?第一步,输入多项式的次数第一步,输入多项式的次数n n,最高次项的系数,最高次项的系数a an n和和x x的值的值. . 第二步,令第二步,令v=av=an n,i=n-1.i=n-1. 第三步,输入第三步,输入i i次项的系数次项的系数a ai i. 第四步,第四步,v=vx+av=vx+ai i,i=i-1.i=i-1.第五步,判断第五步,判断i0i0是否成立是否成立. .若是,则返回第三步;若是,则返回第三步;否则,输出多项式的值否则,输出多项式的值v.v. 思考:思考:该算法的程序该算法的程序框图如何表示?对应框图如何表示?对应的程序如何表述?的程序如何表述?开始开始输入输

9、入n,an ,x的值的值v=anv=vx+ai输入输入a ai ii0?i=n-1i=i-1结束结束是是输出输出v v否否开始开始输入输入n,an,x的值的值v=anv=vx+ai输入输入aii0?i=n- -1i=i- -1结束结束是是输出输出v否否INPUT “n=”;nINPUT “an=”;aINPUT “x=”;x v=ai=n-1WHILE i=0INPUT “ai=”;b v=v*x+bi=i-1 WENDPRINTPRINT v vENDENDPRINTPRINT“i=i=”;i i练习:练习:用秦九韶算法求用秦九韶算法求 f(x)=0.83x5+0.41x4+0.16x3+0.33x2+0.5x+1 当当x=5时的值时的值.v1=0.835+0.41=4.56;v2=4.565+0.16=22.96;v3=22.965+0.33=115.13;v4=115.135+0.5=576.15;v5=576.155+1=2881.75.f(5)=2881.75课时小结课时小结: : 评价一个算法好坏的一个重要评价一个算法好坏的一个重要标志是运算的次数,如果一个算法标志是运算的次数,如果一个算法从理论上需要超出计算机允许范围从理论上需

温馨提示

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

评论

0/150

提交评论