版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1.3 算法案例,第二课时,问题提出,1.辗转相除法和更相减损术,是求两个正整数的最大公约数的优秀算法,我们将算法转化为程序后,就可以由计算机来执行运算,实现了古代数学与现代信息技术的完美结合.,2.对于求n次多项式的值,在我国古代数学中有一个优秀算法,即秦九韶算法,我们将对这个算法作些了解和探究.,秦九韶算法,问题1设计求多项式f(x)=2x5-5x4-4x3+3x2-6x+7当x=5时的值的算法,并写出程序.,x=5 f=2x5-5x4-4x3+3x2-6x+7 PRINT f END,程序,点评:上述算法一共做了15次乘法运算,5次加法运算.优点是简单,易懂;缺点是不通用,不能解决任意多
2、项多求值问题,而且计算效率不高.,知识探究(一):秦九韶算法的基本思想,思考2:在上述问题中,若先计算x2的值,然后依次计算x2x,(x2x)x,(x2x)x)x的值,这样每次都可以利用上一次计算的结果,那么一共做了多少次乘法运算和多少次加法运算?,5次乘法运算,5次加法运算.,第二种做法与第一种做法相比,乘法的运算次数减少了,因而能提高运算效率.而且对于计算机来说,做一次乘法所需的运算时间比做一次加法要长得多,因此第二种做法能更快地得到结果.,思考3:能否探索更好的算法,来解决任意多项式的求值问题?,f(x)=2x5-5x4-4x3+3x2-6x+7 =(2x4-5x3-4x2+3x-6)x
3、+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=v0 x-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.,这种求多项式值的方法就叫秦九韶算法.,5次乘法运算,5次加法运算.,课本例2另解: (秦九韶算法的另一种直观算法),4 2 3.5 -2.6 1.7 -0.8,X=5,22 113.5 564.9 2826.2 14
4、130.2,+,多项式的系数,多项式的值,20 110 567.5 2824. 5 14131,4,思考4:利用最后一种算法求多项式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.,思考4:对于f(x)=(anx+an-1)x+ an-2)x+a1)x+a0,由内向外逐层计算一次多项式的值,其算法步骤如何?,第一步,计算v1=a
5、nx+an-1.,第二步,计算v2=v1x+an-2.,第三步,计算v3=v2x+an-3. ,第n步,计算vn=vn-1x+a0.,思考5:上述求多项式 f(x)=anxn+an-1xn-1+a1x+a0的值的方法称为秦九韶算法,利用该算法求f(x0)的值,一共需要多少次乘法运算,多少次加法运算?,思考6:在秦九韶算法中,记v0=an,那么第k步的算式是什么?,vk=vk-1x+an-k (k=1,2,n),n次乘法运算, n次加法运算,知识探究(二):秦九韶算法的程序设计,思考1:用秦九韶算法求多项式的值,可以用什么逻辑结构来构造算法?其算法步骤如何设计?,第一步,输入多项式的次数n,最高
6、次 项的系数an和x的值.,第二步,令v=an,i=n-1.,第三步,输入i次项的系数ai.,第四步,v=vx+ai,i=i-1.,第五步,判断i0是否成立.若是,则返回第 二步;否则,输出多项式的值v.,思考2:该算法的程序框图如何表示?,思考3:该程序框图对应的程序如何表述?,INPUT “n=”;n,INPUT “an=”;a,INPUT “x=”;x,v=a,i=n-1,WHILE i=0,INPUT “ai=”;b,v=v*x+b,i=i-1,WEND,PRINT v,END,理论迁移,例1 已知一个5次多项式为 用秦九韶算法求f(5)的值.,f(x)=(5x+2)x+3.5)x-2
7、.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=17255.2.,所以f(5)= =17255.2.,变式:例2 已知一个5次多项式为 用秦九韶算法求当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.,例3 阅读下列程序,说明它解决的实际问题是什么?,INPUT “x=”;a n=0 y=0 WIHLE n5 y=y+(n+1)*an n=n+1 WEND PRINT y END,求多项式 在x=a时的值.,小结作业,评价一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论