1 / 13
文档名称:

课时算法案例秦九韶算法.pptx

格式:pptx   大小:102KB   页数:13页
下载后只包含 1 个 PPTX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

课时算法案例秦九韶算法.pptx

上传人:wz_198613 2019/3/4 文件大小:102 KB

下载得到文件列表

课时算法案例秦九韶算法.pptx

相关文档

文档介绍

文档介绍:课时2秦九韶算法〖教学设计〗[问题1]设计求多项式f(x)=2x5-5x4-4x3+3x2-6x+7当x=5时的值的算法,=5f=2*x^5-5*x^4-4*x^3+3*x^2-6*x+7PRINTfEND程序点评:上述算法一共做了15次乘法运算,,易懂;缺点是不通用,不能解决任意多项多求值问题,,一共需要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+7v0=2v1=v0x-5=2×5-5=5v2=v1x-4=5×5-4=21v3=v2x+3=21×5+3=108v4=v3x-6=108×5-6=534v5=v4x+7=534×5+7=2677所以,当x=5时,:用秦九韶算法求多项式 f(x)=2x5-5x4-4x3+3x2-6x+7当x=:首先将原多项式改写成如下形式: f(x)=((((2x-5)x-4)x+3)x-6)x+7v0=2v1=v0x-5=2×5-5=5v2=v1x-4=5×5-4=21v3=v2x+3=21×5+3=108v4=v3x-6=108×5-6=534v5=v4x+7=534×5+7=2677所以,当x=5时,,即f(x)=anxn+an-1xn-1+an-2xn-2+……+a1x+:f(x)=(…(anx+an-1)x+an-2)x+…+a1)x+,首先计算最内层括号内一次多项式的值,即v1=anx+an-1,然后由内向外逐层计算一次多项式的值,即一般地,对于一个n次多项式v2=v1x+an-2,v3=v2x+an-3,……,vn=vn-1x+,求n次多项式f(x):秦九韶算法是求一元多项式的值的一种方法. 它的特点是:把求一个n次多项式的值转化为求n个一次多项式的值,通过这种转化,把运算的次数由至多n(n+1)/2次乘法运算和n次加法运算,减少为n次乘法运算和n次加法运算,(x)=anxn+an-1xn-1+an-2xn-2+……+a1x+:用秦九韶算法求多项式 f(x)=2x6-5x5-4x3+3x2-6x当x=:原多项式先化为:f(x)=2x6-5x5+0×x4-4x3+3x2-6x+0v1=anx+an-1,v2=v1x+an-2,v3=v2x+an-3,……,vn=vn-1x+,可见vk的计算要用到vk-=an,得v0=an,vK=vK-1x+an-k(k=1,2,……,n这是一个在秦九韶算法中反复执行的步骤,,输入多项式次数n,最高项系数an和x的值第二步,将v的值初始化为an,将i的值初始化为n-1第三步,输入i次项的系数ai第四步,v=vx+ai,i=i-1第五步判断i是否大于等于,若是,则返回第二步,否则输出多项式的值v否开始输入n,x,an,输入v=ani>=0?i=n-1i=i-1输出v结束是v=vx+ai输入ai算法:程序框图