高中数学人教A版必修三同步辅导与检测1.3.2秦九韶算法和进位制
- 格式:ppt
- 大小:779.00 KB
- 文档页数:26
第一章算法初步1.3算法案例1.3算法案例(第2课时)——秦九韶算法学习目标1.学习秦九韶算法的计算过程,并理解利用秦九韶算法可以减少计算次数、提高计算效率的实质.2.模仿秦九韶计算方法,体会古人计算构思的巧妙.3.通过对秦九韶算法的学习,充分认识到我国文化历史的悠久.合作学习一、设计问题,创设情境我们已经学了多项式的计算,下面我们计算一下多项式f(x)=x5+x4+x3+x2+x+1当x=5时的值,并统计所做的计算的种类及计算次数.根据我们的计算统计可以得出我们共需要次乘法运算,次加法运算.我们把多项式变形为f(x)=((((x+1)x+1)x+1)x+1)x+1,再统计一下计算当x=5时的值时需要的计算次数,可以得出仅需次乘法和次加法运算即可得出结果.显然少了次乘法运算.这种算法就叫秦九韶算法.二、信息交流,揭示规律秦九韶计算多项式的方法【例1】已知一个5次多项式为f(x)=4x5+2x4+3.5x3-2.6x2+1.7x-0.8,用秦九韶算法求这个多项式当x=5时的值.思考:例1计算时需要多少次乘法计算?多少次加法计算?三、运用规律,解决问题利用秦九韶算法求f(x)=7x7+6x6+5x5+4x4+3x3+2x2+x当x=3时的值.四、变式训练,深化提高【例2】设计利用秦九韶算法计算多项式f(x)=a n x n+a n-1x n-1+a n-2x n-2+…+a1x+a0的值的程序框图.练习:依据例2的程序框图编写程序.五、反思小结,观点提炼1.本节课我们学习了哪些知识内容?2.你认为秦九韶算法的原理是什么?3.秦九韶算法的程序设计用到了什么逻辑结构?布置作业课本P48习题1.3A组第2题.参考答案一、设计问题,创设情境10,5,4,5,6.二、信息交流,揭示规律f(x)=a n x n+a n-1x n-1+a n-2x n-2+…+a1x+a0=(a n x n-1+a n-1x n-2+a n-2x n-3+…+a1)x+a0=((a n x n-2+a n-1x n-3+…+a2)x+a1)x+a0…=(…((a n x+a n-1)x+a n-2)x+…+a1)x+a0求多项式的值时,首先计算最内层括号内一次多项式的值,即v1=a n x+a n-1,然后由内向外逐层计算一次多项式的值,即v2=v1x+a n-2,v3=v2x+a n-3,…v n=v n-1x+a0,这样,求n次多项式f(x)的值就转化为求n个一次多项式的值.上述方法称为秦九韶算法. 【例1】解:根据秦九韶算法,把f(x)改写为f(x)=((((4x+2)x+3.5)x-2.6)x+1.7)x-0.8.按照从内到外的顺序,依次计算一次多项式当x=5时的值:v0=4;v1=4×5+2=22;v2=22×5+3.5=113.5;v3=113.5×5-2.6=564.9;v4=564.9×5+1.7=2 826.2;v5=2 826.2×5-0.8=14 130.2.所以,当x=5时,多项式的值等于14 130.2.思考:需要5次乘法,5次加法.三、运用规律,解决问题解:f(x)=((((((7x+6)x+5)x+4)x+3)x+2)x+1)x,所以有v0=7;v1=7×3+6=27;v2=27×3+5=86;v3=86×3+4=262;v4=262×3+3=789;v5=789×3+2=2 369;v6=2 369×3+1=7 108;v7=7 108×3=21 324.故当x=3时,多项式f(x)=7x7+6x6+5x5+4x4+3x3+2x2+x的值为21 324.四、变式训练,深化提高【例2】解:程序框图如下:INPUT“n=”;nINPUT“an=”;aINPUT“x=”;xv=ai=n-1WHILE i>=0PRINT“i=”;i INPUT“ai=”;av=v x+ai=i-1WENDPRINT vEND五、反思小结,观点提炼略。
时案例2 秦九韶算法(一)导入新课思路1(情境导入)大家都喜欢吃苹果吧,我们吃苹果都是从外到里一口一口的吃,而虫子却是先钻到苹果里面从里到外一口一口的吃,由此看来处理同一个问题的方法多种多样.怎样求多项式f(x)=x5+x4+x3+x2+x+1当x=5时的值呢?方法也是多种多样的,今天我们开始学习秦九韶算法.思路2(直接导入)前面我们学习了辗转相除法与更相减损术,今天我们开始学习秦九韶算法.(二)推进新课、新知探究、提出问题(1)求多项式f(x)=x5+x4+x3+x2+x+1当x=5时的值有哪些方法?比较它们的特点.(2)什么是秦九韶算法?(3)怎样评价一个算法的好坏?讨论结果:(1)怎样求多项式f(x)=x5+x4+x3+x2+x+1当x=5时的值呢?一个自然的做法就是把5代入多项式f(x),计算各项的值,然后把它们加起来,这时,我们一共做了1+2+3+4=10次乘法运算,5次加法运算.另一种做法是先计算x2的值,然后依次计算x2·x,(x2·x)·x,((x2·x)·x)·x的值,这样每次都可以利用上一次计算的结果,这时,我们一共做了4次乘法运算,5次加法运算.第二种做法与第一种做法相比,乘法的运算次数减少了,因而能够提高运算效率,对于计算机来说,做一次乘法运算所用的时间比做一次加法运算要长得多,所以采用第二种做法,计算机能更快地得到结果.(2)上面问题有没有更有效的算法呢?我国南宋时期的数学家秦九韶(约1202~1261)在他的著作《数书九章》中提出了下面的算法:把一个n次多项式f(x)=a n x n+a n-1x n-1+…+a1x+a0改写成如下形式:f(x)=a n x n+a n-1x n-1+…+a1x+a0=(a n x n-1+a n-1x n-2+…+a1)x+ a0=((a n x n-2+a n-1x n-3+…+a2)x+a1)x+a0=…=(…((a n x+a n-1)x+a n-2)x+…+a1)x+a0.求多项式的值时,首先计算最内层括号内一次多项式的值,即v1=a n x+a n-1,然后由内向外逐层计算一次多项式的值,即v2=v1x+a n-2,v3=v2x+a n-3,…v n=v n-1x+a0,这样,求n次多项式f(x)的值就转化为求n个一次多项式的值.上述方法称为秦九韶算法.直到今天,这种算法仍是多项式求值比较先进的算法.(3)计算机的一个很重要的特点就是运算速度快,但即便如此,算法好坏的一个重要标志仍然是运算的次数.如果一个算法从理论上需要超出计算机允许范围内的运算次数,那么这样的算法就只能是一个理论的算法.(三)应用示例例1 已知一个5次多项式为f(x)=5x5+2x4+3.5x3-2.6x2+1.7x-0.8,用秦九韶算法求这个多项式当x=5时的值.解:根据秦九韶算法,把多项式改写成如下形式:f(x)=((((5x+2)x+3.5)x-2.6)x+1.7) x-0.8,按照从内到外的顺序,依次计算一次多项式当x=5时的值:v 0=5;v 1=5×5+2=27;v 2=27×5+3.5=138.5;v 3=138.5×5-2.6=689.9;v 4=689.9×5+1.7=3 451.2;v 5=3 415.2×5-0.8=17 255.2;所以,当x=5时,多项式的值等于17 255.2.算法分析:观察上述秦九韶算法中的n 个一次式,可见v k 的计算要用到v k-1的值,若令v 0=a n ,我们可以得到下面的公式:⎩⎨⎧=+==--).,,2,1(,10n k a x v v a v k n k kn 这是一个在秦九韶算法中反复执行的步骤,因此可用循环结构来实现.算法步骤如下:第一步,输入多项式次数n 、最高次的系数a n 和x 的值.第二步,将v 的值初始化为a n ,将i 的值初始化为n-1.第三步,输入i 次项的系数a i .第四步,v=vx+a i ,i=i-1.第五步,判断i 是否大于或等于0.若是,则返回第三步;否则,输出多项式的值v.程序框图如下图:程序:INPUT “n=”;nINPUT “an=”;aINPUT “x=”;xv=ai=n-1WHILE i >=0PRINT “i=”;iINPUT “ai=”;av=v*x+ai=i-1WENDPRINT vEND点评:本题是古老算法与现代计算机语言的完美结合,详尽介绍了思想方法、算法步骤、程序框图和算法语句,是一个典型的算法案例.变式训练请以5次多项式函数为例说明秦九韶算法,并画出程序框图.解:设f(x)=a5x5+a4x4+a3x3+a2x2+a1x+a0首先,让我们以5次多项式一步步地进行改写:f(x)=(a5x4+a4x3+a3x2+a2x+a1)x+a0=((a5x3+a4x2+ a3x+a2)x+a1)x+a0=(((a5x2+a4x+ a3)x+a2)x+a1)x+a0=((((a5x+a4)x+ a3)x+a2)x+a1)x+a0.上面的分层计算,只用了小括号,计算时,首先计算最内层的括号,然后由里向外逐层计算,直到最外层的括号,然后加上常数项即可.程序框图如下图:例2 已知n次多项式P n(x)=a0x n+a1x n-1+…+a n-1x+a n,如果在一种算法中,计算k x0(k=2,3,4,…,n)的值需要k-1次乘法,计算P3(x0)的值共需要9次运算(6次乘法,3次加法),那么计算P10(x0)的值共需要__________次运算.下面给出一种减少运算次数的算法:P0(x)=a0,P k+1(x)=xP k(x)+a k+1(k=0,1,2,…,n-1).利用该算法,计算P3(x0)的值共需要6次运算,计算P10(x0)的值共需要___________次运算.答案:65 20点评:秦九韶算法适用一般的多项式f(x)=a n x n+a n-1x n-1+…+a1x+a0的求值问题.直接法乘法运算的次数最多可到达2)1(nn,加法最多n次.秦九韶算法通过转化把乘法运算的次数减少到最多n 次,加法最多n次.例3 已知多项式函数f(x)=2x5-5x4-4x3+3x2-6x+7,求当x=5时的函数的值.解析:把多项式变形为:f(x)=2x5-5x4-4x3+3x2-6x+7=((((2x-5)x-4)x+3)x-6)x+7.计算的过程可以列表表示为:最后的系数2 677即为所求的值.算法过程:v0=2;v1=2×5-5=5;v2=5×5-4=21;v3=21×5+3=108;v4=108×5-6=534;v5=534×5+7=2 677.点评:如果多项式函数中有缺项的话,要以系数为0的项补齐后再计算.(四)知能训练当x=2时,用秦九韶算法求多项式f(x)=3x5+8x4-3x3+5x2+12x-6的值.解法一:根据秦九韶算法,把多项式改写成如下形式:f(x)=((((3x+8)x-3)x+5)x+12)x-6.按照从内到外的顺序,依次计算一次多项式当x=2时的值.v0=3;v1=v0×2+8=3×2+8=14;v2=v1×2-3=14×2-3=25;v3=v2×2+5=25×2+5=55;v4=v3×2+12=55×2+12=122;v5=v4×2-6=122×2-6=238.∴当x=2时,多项式的值为238.解法二:f(x)=((((3x+8)x-3)x+5)x+12)x-6,则f(2)=((((3×2+8)×2-3)×2+5)×2+12)×2-6=238.(五)拓展提升用秦九韶算法求多项式f (x)=7x7+6x6+5x5+4x4+3x3+2x2+x当x=3时的值.解:f(x)=((((((7x+6)+5)x+4)x+3)x+2)x+1)xv0=7;v1=7×3+6=27;v2=27×3+5=86;v3=86×3+4=262;v4=262×3+3=789;v5=789×3+2=2 369;v6=2 369×3+1=7 108;v7=7 108×3+0=21 324.∴f(3)=21 324.(六)课堂小结1.秦九韶算法的方法和步骤.2.秦九韶算法的计算机程序框图.(七)作业已知函数f(x)=x3-2x2-5x+8,求f(9)的值.解:f(x)=x3-2x2-5x+8=(x2-2x-5)x+8=((x-2)x-5)x+8∴f(9)=((9-2)×9-5)×9+8=530.。
数学学案——秦九韶算法与排序(1)教学目标(a )知识与技能1.了解秦九韶算法的计算过程,并理解利用秦九韶算法可以减少计算次数提高计算效率的实质。
2.掌握数据排序的原理能使用直接排序法与冒泡排序法给一组数据排序,进而能设计冒泡排序法的程序框图及程序,理解数学算法与计算机算法的区别,理解计算机对数学的辅助作用。
(b )过程与方法模仿秦九韶计算方法,体会古人计算构思的巧妙。
能根据排序法中的直接插入排序法与冒泡排序法的步骤,了解数学计算转换为计算机计算的途径,从而探究计算机算法与数学算法的区别,体会计算机对数学学习的辅助作用。
(c )情态与价值通过对秦九韶算法的学习,了解中国古代数学家对数学的贡献,充分认识到我国文化历史的悠久。
通过对排序法的学习,领会数学计算与计算机计算的区别,充分认识信息技术对数学的促进。
(2)教学重难点重点:1.秦九韶算法的特点2.两种排序法的排序步骤及计算机程序设计难点:1.秦九韶算法的先进性理解2.排序法的计算机程序设计(3)学法与教学用具学法:1.探究秦九韶算法对比一般计算方法中计算次数的改变,体会科学的计算。
2.模仿排序法中数字排序的步骤,理解计算机计算的一般步骤,领会数学计算在计算机上实施的要求。
教学用具:电脑,计算器,图形计算器(4)教学设想(一)创设情景,揭示课题我们已经学过了多项式的计算,下面我们计算一下多项式1)(2345+++++=x x x x x x f 当5=x 时的值,并统计所做的计算的种类及计算次数。
根据我们的计算统计可以得出我们共需要10次乘法运算,5次加法运算。
我们把多项式变形为:1)))1(1(1()(2+++++=x x x x x x f 再统计一下计算当5=x 时的值时需要的计算次数,可以得出仅需4次乘法和5次加法运算即可得出结果。
显然少了6次乘法运算。
这种算法就叫秦九韶算法。
(二)研探新知1.秦九韶计算多项式的方法1210123120132211012211)))((())(()()(a a x a x a x a a x a x a x a x a a x a x a x a x a a x a x a x a x a x f n n n n n n n n n n n n n n n n n n n +++++==+++++=+++++=+++++=--------------例1 已知一个5次多项式为8.07.16.25.325)(2345-+-++=x x x x x x f 用秦九韶算法求这个多项式当5=x 时的值。
第9课时秦九韶算法知识点一秦九韶算法的原理1.用秦九韶算法计算f(x)=6x5-4x4+x3-2x2-9x当x=x0时的值,需要加法(或减法)与乘法运算的次数分别为( )A.5,4 B.5,5 C.4,4 D.4,5答案D解析n次多项式需进行n次乘法;若各项均不为零,则需进行n次加法,缺一项就减少一次加法运算.f(x)中无常数项,故加法次数要减少一次,为5-1=4.故选D.2.用秦九韶算法求多项式f(x)=1+2x+x2-3x3+2x4在x=-1时的值,v2的结果是( )A.-4 B.-1 C.5 D.6答案D解析n=4,a4=2,a3=-3,a2=1,a1=2,a0=1,由秦九韶算法的递推关系式得v0=2,v1=v0x+a3=-5,v2=v1x+a2=6.3.用秦九韶算法求多项式f(x)=7x6+6x5+3x2+2当x=4时的值时,先算的是( )A.4×4=16 B.7×4=28C.4×4×4=64 D.7×4+6=34答案D解析因为f(x)=a n x n+a n-1x n-1+…+a1x+a0=(…((a n x+a n-1)x+a n-2)x+…+a1)x +a0,所以用秦九韶算法求多项式f(x)=7x6+6x5+3x2+2当x=4时的值时,先算的是7×4+6=34.4.用秦九韶算法求多项式f(x)=x4-2x3+3x2-7x-5,当x=4时的值,给出如下数据.①0 ②2 ③11 ④37 ⑤143其中运算过程中(包括最终结果)会出现的数有________.(只填序号)答案②③④⑤解析将多项式改写成f(x)=(((x-2)x+3)x-7)x-5.v=1;v=1×4-2=2;1v=2×4+3=11;2v=11×4-7=37;3v=37×4-5=143.4知识点二利用秦九韶算法计算多项式的值5.用秦九韶算法求多项式f(x)=7x7+6x6+5x5+4x4+3x3+2x2+x当x=3时的值.解f(x)=((((((7x+6)x+5)x+4)x+3)x+2)x+1)x,所以有v=7;v=7×3+6=27;1v=27×3+5=86;2v=86×3+4=262;3v=262×3+3=789;4v=789×3+2=2369;5v=2369×3+1=7108;6v=7108×3=21324.7故当x=3时,多项式f(x)=7x7+6x6+5x5+4x4+3x3+2x2+x的值为21324.易错点利用秦九韶算法求含空项的n次多项式的值时易出现错误6.已知f(x)=3x4+2x2+4x+2,利用秦九韶算法求f(-2)的值.易错分析由于没有抓住秦九韶算法原理的关键,没有正确改写多项式并使每一次计算只含有x的一次项而致误.正解f(x)=3x4+0·x3+2x2+4x+2=(((3x+0)x+2)x+4)x+2,v=3×(-2)+0=-6;1v=-6×(-2)+2=14;2v=14×(-2)+4=-24;3v=-24×(-2)+2=50.4故f(-2)=50.一、选择题1.用秦九韶算法计算多项式f(x)=3x6+9x5+5x4+6x3+12x2+8x-7在x=2时的值,需要做乘法和加法的次数分别是( )A.5,5 B.5,6 C.6,6 D.6,5答案C解析因为f(x)的最高次数是6,所以需要做乘法和加法的次数都是6.2.用秦九韶算法求多项式f(x)=12+35x-8x2+79x3+6x4+5x5+3x6在x=-4时,v4的值为()A.-57 B.220 C.-845 D.3392答案B解析v0=3,v1=3×(-4)+5=-7,v=-7×(-4)+6=34,2v=34×(-4)+79=-57,3v=-57×(-4)-8=220.43.已知多项式f(x)=4x5+3x4+2x3-x2-x-错误!,用秦九韶算法求f(-2)等于()A.-错误! B.错误! C.错误! D.-错误!答案A解析∵f(x)=((((4x+3)x+2)x-1)x-1)x-错误!,∴f(-2)=((((4×(-2)+3)×(-2)+2)×(-2)-1)×(-2)-1)×(-2)-错误!=-错误!.4.秦九韶算法的先进性主要体现在减少运算次数,下列说法正确的是( )A.可以减少加法运算次数B.可以减少乘法运算次数C.同时减少加法和乘法的运算次数D.加法次数和乘法次数都有可能减少答案B解析秦九韶算法可以把至多n n+12次乘法运算减少为至多n次乘法运算.加法运算次数不变.5.用秦九韶算法计算函数y=2x3-3x2+2x-1在x=2时的函数值,则下列各式正确的是()A.v0=2 B.v0=1 C.v1=4 D.v2=7答案A解析根据秦九韶算法,把多项式改写成y=((2x-3)x+2)x-1,从内到外依次计算:v0=2,v1=2×2-3=1,v2=1×2+2=4,v3=4×2-1=7.二、填空题6.已知f(x)=x5+2x3+3x2+x+1,用秦九韶算法计算x=3时的值,v3的值为________.答案36解析v0=1,v1=1×3+0=3,v2=3×3+2=11,v3=11×3+3=36,….7.用秦九韶算法求多项式f(x)=5x5+3x3+2x2+10,当x=3时f(x)的值为________.答案1324解析f(x)=5x5+0x4+3x3+2x2+0x+10=((((5x+0)x+3)x+2)x+0)x+10=((((5x)x+3)x+2)x)x+10,当x=3时,有v0=5,v1=5×3=15,v2=15×3+3=48,v3=48×3+2=146,v4=146×3=438,v5=438×3+10=1324,∴f(3)=1324.8.用秦九韶算法求多项式f(x)=1-5x-8x2+10x3+6x4+12x5+3x6当x=-4时的值时,v0,v1,v2,v3,v4中最大值与最小值的差是________.答案62解析多项式变形为f(x)=3x6+12x5+6x4+10x3-8x2-5x+1=(((((3x+12)x+6)x+10)x-8)x-5)x+1,v=3,v=3×(-4)+12=0,1v=0×(-4)+6=6,2v=6×(-4)+10=-14,3v=-14×(-4)-8=48,4∴v4最大,v3最小.∴v4-v3=48-(-14)=62.三、解答题9.利用秦九韶算法求多项式f(x)=3x6+12x5+8x4-3.5x3+7.2x2+5x-13,当x=6时的值,写出详细步骤.解f(x)=(((((3x+12)x+8)x-3.5)x+7.2)x+5)x-13,v=3,v=v0×6+12=30,1v=v1×6+8=188,2v=v2×6-3.5=1124.5,3v=v3×6+7.2=6754.2,4v=v4×6+5=40530.2,5v=v5×6-13=243168.2.6f(6)=243168.2.10.用秦九韶算法计算多项式f(x)=5x7+x6-x3+x+3当x=-1时的值,并判断f(x)在区间[-1,0]内有没有零点.解∵f(x)=5x7+x6-x3+x+3=((((((5x+1)x+0)x+0)x-1)x+0)x+1)x+3,∴当x=-1时,v0=5,v=5×(-1)+1=-4,1v=-4×(-1)+0=4,2v=4×(-1)+0=-4,3v=-4×(-1)-1=3,4v=3×(-1)+0=-3,5v=-3×(-1)+1=4,6v=4×(-1)+3=-1,7∴f(-1)=-1.又f(0)=3,∴f(0)·f(-1)<0,由零点存在定理,知f(x)在区间[-1,0]内有零点.尊敬的读者:本文由我和我的同事在百忙中收集整编出来,本文档在发布之前我们对内容进行仔细校对,但是难免会有不尽如人意之处,如有疏漏之处请指正,希望本文能为您解开疑惑,引发思考。