《1.3.2秦九韶算法》课件.ppt

上传人:本田雅阁 文档编号:3472841 上传时间:2019-08-31 格式:PPT 页数:11 大小:356.02KB
返回 下载 相关 举报
《1.3.2秦九韶算法》课件.ppt_第1页
第1页 / 共11页
《1.3.2秦九韶算法》课件.ppt_第2页
第2页 / 共11页
《1.3.2秦九韶算法》课件.ppt_第3页
第3页 / 共11页
《1.3.2秦九韶算法》课件.ppt_第4页
第4页 / 共11页
《1.3.2秦九韶算法》课件.ppt_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《《1.3.2秦九韶算法》课件.ppt》由会员分享,可在线阅读,更多相关《《1.3.2秦九韶算法》课件.ppt(11页珍藏版)》请在三一文库上搜索。

1、案例2 秦九韶算法,问题1设计求多项式f (x) = 2x5 5x4 4x3 + 3x2 6x + 7当x = 5时的值的算法,并写出程序.,x=5 f=2*x5-5*x4-4*x3+3*x2-6*x+7 PRINT f END,程序,点评:上述算法一共做了15次乘法运算,5次加法运算.优点是简单,易懂;缺点是不通用,不能解决任意多项多求值问题,而且计算效率不高.,这时,计算上述多项式的值,一共需要9次乘法运算,5次加法运算.,问题2有没有更高效的算法?,分析:计算x的幂时,可以利用前面的计算结果,以减少计算量,即先计算x2,然后依次计算 x2 x , (x2 x) x , (x2 x) x)

2、 x的值.,第二种做法与第一种做法相比,乘法的运算次数减少了,因而能提高运算效率.而且对于计算机来说,做一次乘法所需的运算时间比做一次加法要长得多,因此第二种做法能更快地得到结果.,问题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

3、-6=1085-6=534 v5=v4x+7= 5345+7=2677,所以,当x=5时,多项式的值是2677.,这种求多项式值的方法就叫秦九韶算法.,例3:用秦九韶算法求当x = 5时多项式 f (x) = 2x5 5x4 4x3 + 3x2 6x + 7的值.,解法一:首先将原多项式改写成如下形式 : 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.,

4、然后由内向外逐层计算一次多项式的值,即,2 -5 -4 3 -6 7,x=5,10,5,25,21,105,108,540,534,2670,2677,所以,当x=5时,多项式的值是2677.,原多项式的系数,多项式的值.,解法二:列表,2,例3:用秦九韶算法求当x = 5时多项式 f (x) = 2x5 5x4 4x3 + 3x2 6x + 7的值.,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

5、时的值.,解:原多项式先化为: f(x)=2x6-5x5 +0x4-4x3+3x2-6x+0 列表,2,15170,15170,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个一次多项式的值.这种算法称为秦九韶算法

6、.,秦九韶算法是求一元多项式的值的一种方法. 它的特点是:把求一个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是任意实数)时的值的过程.,INPUT “n=“;n input “an=“;a input “x=“;x v = a i = n 1 while i = 0 print “i = “;i input “ai = “;a v = v * x + a i = i 1 wend print v end,程序,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1