1、2021/7/261(最新整理)算法案例(秦九韶算法)2021/7/2622021/7/263案例案例2 秦九韶算法秦九韶算法一、三维目标一、三维目标(a a)知识与技能)知识与技能了解秦九韶算法的计算过程,并理解利用秦九韶了解秦九韶算法的计算过程,并理解利用秦九韶算法可以减少计算次数提高计算效率的实质。算法可以减少计算次数提高计算效率的实质。(b b)过程与方法)过程与方法模仿秦九韶计算方法,体会古人计算构思的巧妙模仿秦九韶计算方法,体会古人计算构思的巧妙.(c c)情感态度与价值观)情感态度与价值观通过对秦九韶算法的学习,了解中国古代数学家通过对秦九韶算法的学习,了解中国古代数学家对数学的
2、贡献,充分认识到我国文化历史的悠久。对数学的贡献,充分认识到我国文化历史的悠久。二、教学重难点二、教学重难点重点:重点:1.1.秦九韶算法的特点秦九韶算法的特点;难点难点:2.:2.秦九韶算法的先进性理解秦九韶算法的先进性理解 .2021/7/264教学设计教学设计问题问题1设计求多项式设计求多项式f(x)=2x5-5x4-4x3+3x2-6x+7当当x=5时的值的算法时的值的算法,并写出程序并写出程序.x=5f=2x5-5x4-4x3+3x2-6x+7PRINT fEND程序程序点评点评:上述算法一共做了上述算法一共做了15次乘法运算次乘法运算,5次次加法运算加法运算.优点是简单优点是简单,
3、易懂易懂;缺点是在计算缺点是在计算x的幂的幂值时重复计算,运算效率不高值时重复计算,运算效率不高.2021/7/265的值,这样计算上述多项式的值的值,这样计算上述多项式的值,一共需要一共需要9次次乘法运算乘法运算,5次加法运算次加法运算.问题问题2有没有更高效的算法有没有更高效的算法?分析分析:计算计算x的幂时的幂时,可以利用前面的计算结可以利用前面的计算结果果,以减少计算量以减少计算量,即先计算即先计算x2,然后依次计算然后依次计算222,(),()xx xxxxxxx第二种做法与第一种做法相比第二种做法与第一种做法相比,乘法的运乘法的运算次数减少了算次数减少了,因而能提高运算效率因而能提
4、高运算效率.而且对于而且对于计算机来说计算机来说,做一次乘法所需的运算时间比做一做一次乘法所需的运算时间比做一次加法要长得多次加法要长得多,因此第二种做法能更快地得到因此第二种做法能更快地得到结果结果.2021/7/266问题问题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+7v0=2v1=
5、v0 x-5=25-5=5v2=v1x-4=55-4=21v3=v2x+3=215+3=108v4=v3x-6=1085-6=534v5=v4x+7=5345+7=2677所以所以,当当x=5时时,多项式的值是多项式的值是2677.这种求多项式值的方法就叫这种求多项式值的方法就叫秦九韶算法秦九韶算法.2021/7/267。2021/7/268例例1:用秦九韶算法求多项式用秦九韶算法求多项式 f(x)=2x5-5x4-4x3+3x2-6x+7当当x=5时的值时的值.解:首先将原多项式改写成如下形式解:首先将原多项式改写成如下形式:f(x)=(2x-5)x-4)x+3)x-6)x+7v0=2 v1
6、=v0 x-5=25-5=5v2=v1x-4=55-4=21v3=v2x+3=215+3=108v4=v3x-6=1085-6=534v5=v4x+7=5345+7=2677所以所以,当当x=5时时,多多项式的值是项式的值是2677.然后由内向外逐层计算一次多项式的值然后由内向外逐层计算一次多项式的值,即即2021/7/269所以,当x=2时,多项式的值为31.求多项式的值转化为了求六个一次多项式的值。317,126,95,24,33,02,15645342312010 xxxxxxvvvvvvvvvvvvv 765432xxxxxxxf解:当x=2时的值时多项式的值。76543223456x
7、xfxxxxx挑战1:计算2021/7/2610 挑战挑战2:用秦九韶算法求多项式用秦九韶算法求多项式f(x)8x75x63x42x1当当x2时的值时的值.【解析】【解析】f(x)8x75x63x42x1(8x5)x0)x3)x0)x0)x2)x1.当当x2时时,有有 v08,v182521,v2212042,v3422387,v48720174,v517420348,v634822698,v7698211397,当当x2时时,多项式的值为多项式的值为1397.注意注意:n次多项式有次多项式有n+1项项,因此缺少哪一项因此缺少哪一项应将其系数补应将其系数补0.湖南省长沙市一中卫星远程学校湖南省
8、长沙市一中卫星远程学校湖南省长沙市一中卫星远程学校湖南省长沙市一中卫星远程学校思考思考4:对于对于f(xf(x)=()=(a(an nx+ax+an n-1 1)x+)x+a an n-2 2)x+)x+a+a1 1)x+a)x+a0 0,由内向外逐层计算由内向外逐层计算一次多项式的值,其算法步骤如何?一次多项式的值,其算法步骤如何?第一步,计算第一步,计算v v1 1=a=an nx+ax+an n-1 1.第二步,计算第二步,计算v v2 2=v=v1 1x+ax+an n-2 2.第三步,计算第三步,计算v v3 3=v=v2 2x+ax+an n-3 3.第第n n步,计算步,计算v
9、vn n=v=vn n-1 1x+ax+a0 0.2021/7/2613v1=anx+an-1,v2=v1x+an-2,v3=v2x+an-3,vn=vn-1x+a0.观察上述秦九韶算法中的观察上述秦九韶算法中的n个一次式个一次式,可见可见vk的计算要用到的计算要用到vk-1的值的值.若令若令v0=an,得得v0=an,vK=vK-1x+an-k(k=1,2,n这是一个在秦九韶算法中反复执行的步这是一个在秦九韶算法中反复执行的步骤骤,因此可用循环结构来实现因此可用循环结构来实现.湖南省长沙市一中卫星远程学校湖南省长沙市一中卫星远程学校思考思考5:上述求多项式上述求多项式f(xf(x)=a)=a
10、n nx xn n+a+an n-1 1x xn n-1 1+a+a1 1x+ax+a0 0的值的方法的值的方法称为称为秦九韶算法秦九韶算法,利用该算法求,利用该算法求f(xf(x0 0)的的值,一共需要多少次乘法运算,多少次值,一共需要多少次乘法运算,多少次加法运算?加法运算?2021/7/2615点评点评:秦九韶算法是求一元多项式的秦九韶算法是求一元多项式的值的一种方法值的一种方法.它的特点是它的特点是:把求一个把求一个n次多项式的值次多项式的值转化为求转化为求n个一次多项式的值个一次多项式的值,通过这种转通过这种转化化,把运算的次数由把运算的次数由1+2+3+4+5+.+n次乘次乘法运算
11、和法运算和n次加法运算次加法运算,减少为减少为n次乘法运次乘法运算和算和n次加法运算次加法运算,大大提高了运算效率大大提高了运算效率.2021/7/2616知识探究知识探究(二二):):秦九韶算法的程序设计秦九韶算法的程序设计 思考思考1:1:用秦九韶算法求多项式的值,可用秦九韶算法求多项式的值,可以用什么逻辑结构来构造算法?其算法以用什么逻辑结构来构造算法?其算法步骤如何设计?步骤如何设计?第一步,输入多项式的次数第一步,输入多项式的次数n n,最高次,最高次 项的系数项的系数a an n和和x x的值的值.第二步,令第二步,令v=av=an n,i=n-1.i=n-1.第三步,输入第三步,
12、输入i i次项的系数次项的系数a ai i.第四步,第四步,v=vx+av=vx+ai i,i=i-1.i=i-1.第五步,判断第五步,判断i0i0是否成立是否成立.若是,则返回第若是,则返回第 二步;否则,输出多项式的值二步;否则,输出多项式的值v.v.2021/7/2617思考思考2:2:该算法的程序框图如何表示?该算法的程序框图如何表示?开始开始输入输入n,an,x的值的值v=anv=vx+ai输入输入aii0?i=n-1i=i-1结束结束是是输出输出v否否2021/7/2618思考思考3:3:该程序框图对应的程序如何表述?该程序框图对应的程序如何表述?开始开始输入输入n,an,x的值的
13、值v=anv=vx+ai输入输入aii0?i=n-1i=i-1结束结束是是输出输出v否否INPUT “n=”INPUT “n=”;n nINPUT “aINPUT “an n=”=”;a aINPUT “x=”INPUT “x=”;x x v=a v=an ni=n-1i=n-1WHILE iWHILE i=0=0INPUT“aINPUT“ai i=”=”;b b v=v v=v*x+bx+bi=i-1i=i-1 WENDWENDPRINT yPRINT yENDEND2021/7/2619当堂检测 :利用秦九韶算法计算 当 x3 时,求多项式 f(x)x5x3x2x1 的值.解:根据秦九韶算
14、法,把多项式改写成如下形式:f(x)x50 x4x3x2x1(x0)x1)x1)x1)x1.按照从内到外的顺序,依次计算一次多项式当 x3 时的值:v01,2021/7/2620v11303,v233110,v3103131,v4313194,v59431283.所以当 x3 时,多项式的值为 283.2021/7/2621小结作业小结作业 评价一个算法好坏的一个重要标志评价一个算法好坏的一个重要标志是运算的次数,如果一个算法从理论上是运算的次数,如果一个算法从理论上需要超出计算机允许范围内的运算次数,需要超出计算机允许范围内的运算次数,那么这样的算法就只能是一个理论算法那么这样的算法就只能是一个理论算法.在多项式求值的各种算法中,秦九韶算在多项式求值的各种算法中,秦九韶算法是一个优秀算法法是一个优秀算法.2021/7/2622
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。