欢迎来到天天文库
浏览记录
ID:36706234
大小:125.00 KB
页数:11页
时间:2019-05-10
《1.3.2秦九邵算法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、秦九韶算法[问题1]设计求多项式f(x)=2x5-5x4-4x3+3x2-6x+7当x=5时的值的算法,并写出程序.x=5f=2*x^5-5*x^4-4*x^3+3*x^2-6*x+7PRINTfEND程序点评:上述算法一共做了15次乘法运算,5次加法运算.优点是简单,易懂;缺点是不通用,不能解决任意多项多求值问题,而且计算效率不高.知识探究(一):秦九韶算法的基本思想思考2:在上述问题中,若先计算x2的值,然后依次计算x2·x,(x2·x)·x,((x2·x)·x)·x的值,这样每次都可以利用上一次计算的结果,,
2、那么一共做了多少次乘法运算和多少次加法运算?9次乘法运算,5次加法运算.第二种做法与第一种做法相比,乘法的运算次数减少了,因而能提高运算效率.而且对于计算机来说,做一次乘法所需的运算时间比做一次加法要长得多,因此第二种做法能更快地得到结果.思考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)
3、x-6)x+7v5=v4x+7=534×5+7=2677v4=v3x-6=108×5-6=534v3=v2x+3=21×5+3=108v2=v1x-4=5×5-4=21v1=v0x-5=2×5-5=5v0=2所以,当x=5时,多项式的值是2677.这种求多项式值的方法就叫秦九韶算法.5次乘法运算,5次加法运算.思考4:利用最后一种算法求多项式f(x)=anxn+an-1xn-1+…+a1x+a0的值,这个多项式应写成哪种形式?f(x)=anxn+an-1xn-1+…+a1x+a0=(anxn-1+an-1xn-2+
4、…+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=anx+an-1.第二步,计算v2=v1x+an-2.第三步,计算v3=v2x+an-3.…第n步,计算vn=vn-1x+a0.思考5:上述求多项式f(x)=anxn+an-1xn-1+…+a1x+a0的值
5、的方法称为秦九韶算法,利用该算法求f(x0)的值,一共需要多少次乘法运算,多少次加法运算?思考6:在秦九韶算法中,记v0=an,那么第k步的算式是什么?vk=vk-1x+an-k(k=1,2,…,n)n次乘法运算,n次加法运算知识探究(二):秦九韶算法的程序设计思考1:用秦九韶算法求多项式的值,可以用什么逻辑结构来构造算法?其算法步骤如何设计?第一步,输入多项式的次数n,最高次项的系数an和x的值.第二步,令v=an,i=n-1.第三步,输入i次项的系数ai.第四步,v=vx+ai,i=i-1.第五步,判断i≥0是
6、否成立.若是,则返回第三步;否则,输出多项式的值v.思考3:该程序框图对应的程序如何表述?开始输入n,an,x的值v=anv=vx+ai输入aii≥0?i=n-1i=i-1结束是输出v否INPUT“n=”;nINPUT“an=”;aINPUT“x=”;xv=ani=n-1WHILEi>=0INPUT“ai=”;bv=v*x+bi=i-1WENDPRINTvEND例3阅读下列程序,说明它解决的实际问题是什么?INPUT“x=”;an=0y=0WHLEn<5y=y+(n+1)*a∧nn=n+1WENDPRINTyEND
7、求多项式在x=a时的值.小结作业评价一个算法好坏的一个重要标志是运算的次数,如果一个算法从理论上需要超出计算机允许范围内的运算次数,那么这样的算法就只能是一个理论算法.在多项式求值的各种算法中,秦九韶算法是一个优秀算法.
此文档下载收益归作者所有