资源描述:
《高中数学人教a版必修3教学课件-1.3算法案例复习课.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1.3算法案例复习课复习WHILE条件循环体WENDDO循环体LOOPUNTIL条件两种循环语句:循环体满足条件?是否(1)While(当型)循环(2)Until(直到型)循环循环体满足条件?是否1、辗转相除法(欧几里得算法)(1)算理:所谓辗转相除法,就是对于给定的两个数,用较大的数除以较小的数。若余数不为零,则将余数和较小的数构成新的一对数,继续上面的除法,直到大数被小数除尽,则这时较小的数就是原来两个数的最大公约数。2、更相减损术(1)算理:所谓更相减损术,就是对于给定的两个数,先判断是否是偶数,若是,用2约简,用较大的
2、数减去较小的数,然后将差和较小的数构成新的一对数,再用较大的数减去较小的数,反复执行此步骤直到差数和较小的数相等,此时相等的两数,则这个数与约简的数便为原来两个数的最大公约数。练习:利用辗转相除法求两数4081与20723的最大公约数.(53)20723=4081×5+318;4081=318×12+265;318=265×1+53;265=53×5+0.〖教学设计〗[问题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
3、-6*x+7PRINTfEND程序点评:上述算法一共做了15次乘法运算,5次加法运算.优点是简单,易懂;缺点是不通用,不能解决任意多项式求值问题,而且计算效率不高.这析计算上述多项式的值,一共需要9次乘法运算,5次加法运算.[问题2]有没有更高效的算法?分析:计算x的幂时,可以利用前面的计算结果,以减少计算量,即先计算x2,然后依次计算的值.第二种做法与第一种做法相比,乘法的运算次数减少了,因而能提高运算效率.而且对于计算机来说,做一次乘法所需的运算时间比做一次加法要长得多,因此第二种做法能更快地得到结果.[问题3]能否探索更
4、好的算法,来解决任意多项式的求值问题?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时,多项式的值是2677.这种求多项式值的方法就
5、叫秦九韶算法.例1:用秦九韶算法求多项式f(x)=2x5-5x4-4x3+3x2-6x+7当x=5时的值.解法一:首先将原多项式改写成如下形式: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时,多项式的值是2677.然后由内向外逐层计算一次多项式的值,即2-5-43-67x=510525211051085405
6、3426702677所以,当x=5时,多项式的值是2677.原多项式的系数多项式的值.例1:用秦九韶算法求多项式f(x)=2x5-5x4-4x3+3x2-6x+7当x=5时的值.解法二:列表22-50-43-60x=5105252512512160560830403034所以,当x=5时,多项式的值是15170.练一练:用秦九韶算法求多项式f(x)=2x6-5x5-4x3+3x2-6x当x=5时的值.解:原多项式先化为:f(x)=2x6-5x5+0×x4-4x3+3x2-6x+0列表21517015170注意:n次多项式有n+
7、1项,因此缺少哪一项应将其系数补0.《数书九章》——秦九韶算法设是一个n次的多项式对该多项式按下面的方式进行改写:思考:当知道了x的值后该如何求多项式的值?要求多项式的值,应该先算最内层的一次多项式的值,即然后,由内到外逐层计算一次多项式的值,即这种将求一个n次多项式f(x)的值转化成求n个一次多项式的值的方法,称为秦九韶算法。思考:在求多项式的值上,这是怎样的一个转化?例已知一个五次多项式为用秦九韶算法求这个多项式当x=5的值。解:将多项式变形:按由里到外的顺序,依此计算一次多项式当x=5时的值:所以,当x=5时,多项式的值
8、等于17255.2你从中看到了怎样的规律?怎么用程序框图来描述呢?算法步骤:第一步:输入多项式次数n、最高次项的系数an和x的值.第二步:将v的值初始化为an,将i的值初始化为n-1.第三步:输入i次项的系数ai第四步:v=vx+ai,i=i-1.第五步:判断i是否大于或等于