算法案例----秦九韶算法ks5u精品课件秦九韶(1208年-1261年)南宋官员、数学家,与李冶、杨辉、朱世杰并称宋元数学四大家。字道古,汉族,自称鲁郡(今山东曲阜)人,生于普州安岳(今属四川)。精研星象、音律、算术、诗词、弓剑、营造之学,历任琼州知府、司农丞,后遭贬,卒于梅州任所,著作《数书九章》,其中的大衍求一术、三斜求积术和秦九韶算法是具有世界意义的重要贡献。ks5u精品课件在数学的发展史上,从公元前2、3世纪公元14世纪,中国的数学虽有过高潮,也有过低落,但一直走在世界的前列,是世界数学的中心。中国古代数学对世界数学发展有着不可磨灭的贡献。秦九韶算法就是中国古代数学的一枝奇葩。今天这节课我们领略秦九韶算法的魅力。(1)设计求多项式763452)(2345xxxxxxf当x=5时的值的算法,并写出程序。(2)有没有更高效的算法?能否探求更好的算法,来解决任意多项式的求解问题?T引导学生把多项式变形为:7)6)3)4)52((((763452)(2345xxxxxxxxxxxf思考:从内到外,如果把每一个括号都看成一个常数,那么变形后的式子中有哪些“一次式”?x的系数依次是什么?(3)若将x的值代入变形后的式子中,那么求值的计算过程是怎样的?将变形前x的系数乘以x的值,加上变形前的第2个系数,得到一个新的系数;将此系数继续乘以x的值,再加上变形前的第3个系数,又得到一个新的系数;继续对新系数做上面的变换,直到与变形前的最后一个系数相加,得到一个新的系数为止。这个系数即为所求多项式的值。这种算法即是“秦九韶算法”(4)用秦九韶算法求多项式的值,与多项式组成有直接关系吗?用秦九韶算法计算上述多项式的值,需要多少次乘法运算和多少次加法运算?计算只与多项式的系数有关,《数书九章》——秦九韶算法0111)(axaxaxaxfnnnn设)(xf是一个n次的多项式对该多项式按下面的方式进行改写:0111)(axaxaxaxfnnnn01211)(axaxaxannnn012312))((axaxaxaxannnn0121)))((axaxaxaxannn这是怎样的一种改写方式?最后的结果是什么?0121)))(()(axaxaxaxaxfnnn要求多项式的值,应该先算最内层的一次多项式的值,即11nnaxav然后,由内到外逐层计算一次多项式的值,即212naxvv323naxvv01axvvnn最后的一项是什么?这种将求一个n次多项式f(x)的值转化成求n个一次多项式的值的方法,称为秦九韶算法。通过一次式的反复计算,逐步得出高次多项式的值,对于一个n次多项式,只需做n次乘法和n次加法即可。秦九韶算法的特点:算法步骤:第一步:输入多项式次数n、最高次项的系数an和x的值.第二步:将v的值初始化为an,将i的值初始化为n-1.第三步:输入i次项的系数ai.第四步:v=vx+ai,i=i-1.第五步:判断i是否小于或等于0,若是,则返回第三步;否则,输出多项式的值v。程序框图:这是一个在秦九韶算法中反复执行的步骤,因此可用循环结构来实现。输入ai开始输入n,an,xi=0?输出v结束v=vx+aii=i-1YNi=n-1V=an),,,(nkaxvvavknkkn2110(3)程序:INPUT“n=”;nINPUT“an=“;aINPUT“x=“;xv=ai=n-1WHILEi=0PRINT“i=“;iINPUT“ai=“;av=v*x+ai=i-1WENDPRINTvEND小结:(1)算法具有通用的特点,可以解决一类问题;(2)解决同一类问题,可以有不同的算法,但计算的效率是不同的,应选择高效的算法(3)算法的种类虽多,但三种逻辑结构可以有效的表达各种算法等。