高二数学必修三教案:§1.3算法案例(秦九韶算法)

合集下载

1.3算法案例-秦九韶算法教学设计

1.3算法案例-秦九韶算法教学设计

1.3算法案例(二)__秦九韶算法一、内容及其解析本节的教学内容是算法案例中的秦九韶算法,它是求一元多项式的值的一种方法.在初中,学生已经学习了多项式的有关知识,那里是把多项式看作代数式.因此在本段内容的教学之前,应当先向学生说明,这里是函数的观点考察多项式,因此,求自变量取某个实数时的函数值问题,即求多项式的值就是一个常规问题.二、教学目标及其解析目标定位知识与技能:了解秦九韶算法的计算过程,并理解利用秦九韶算法可以减少计算次数提高计算效率的实质.过程与方法:模仿秦九韶计算方法,体会古人计算构思的巧妙.了解数学计算转换为计算机计算的途径,从而探究计算机算法与数学算法的区别,体会计算机对数学学习的辅助作用.情感态度与价值观目标:通过对秦九韶算法的学习,了解中国古代数学对世界数学发展的贡献,充分认识到我国文化历史的悠久.目标解析1 秦九韶算法是我国南宋数学家秦九韶在他的代表作《数书九章》中提出的一种用于计算一元n 次多项式的值的方法.三、问题诊断分析在本节主要存在的问题是学生不能对秦九韶算法的先进性及其程序设计的理解,所以教师要强调当多项式的次数增大时,此种方法的先进性就体现出来了,所以教师要找到规律,让学生体会此种解法的先进性.四、教学支持条件分析的一般模式在本节课的教学中准备使用多媒体辅助教学.五、教学过程设计问题一 什么事了解秦九韶算法?小问题1 怎样求多项式1)(2345+++++=x x x x x x f 当x=5时的值呢?(设计意图:通过具体的例子引入秦九韶算法.)结论:第一种一共用了10次乘法运算,5次加法运算.而第二种一共用了5次乘法运算,5次加法运算.小问题2 用秦九韶算法求n 次多项式0111...)(a x a x a x a x f n n n n ++++=--当0x x =(0x 是任意实数)时的值,需要多少次乘法运算,多少次加法运算?小问题 3 如何用秦九韶算法完成一般多项式1110()n n n n f x a x a x a x a --=++++的求值问题?要求多项式的值,我们可以把它改写成:11101210()(()))n n n n n n n f x a x a x a x a a x a x a x a x a ----=++++=+++++.首先计算最内层括号内一次多项式的值,即11n n v a x a -=+,然后由内向外逐层计算一次多项式的值,即212n v v x a -=+,323n v v x a -=+,,10n n v v x a -=+.例题1 (课本第38页例2)(设计意图:从实例到一般,先总结实例进而引申到一般) 变式巩固 用秦九韶算法求多项式1432)(2367+-+-=x x x x x f 当x=2时的函数值.小问题4 你是怎么理解秦九韶算法的?结论:秦九韶算法将求n 次多项式的值转化为求n 个一次多项式的值.课堂小结(提问方式)秦九韶算法计算多项式的值及程序设计上述的整个过程只需n 次乘法运算和n 次加法运算;观察上述n 个一次式,可发出k v 的计算要用到1k v -的值,若令0n v a =,可得到下列递推公式:01,(1,2,,)n k k n k v a v v x a k n --=⎧⎨=+=⎩. 这是一个反复执行的步骤,因此可用循环结构来实现.【程序框图】:六 目标检测1、利用秦九韶算法求多项式1153723+-+x x x 在23=x 的值时,在运算中下列哪个值用不到( )A 、164B 、3767C 、86652D 、851692、利用秦九韶算法求多项式1352.75.38123)(23456-++-++=x x x x x x x f 在2=x 的值,写出详细步骤.七 配餐作业A 组②秦九韶算法计算多项式f(x)=12+35x-8x 2+79x 3+6x 4+5x 5+3x 6,当x=-4时的值时,υ3的值为( )A .-845B .220C .-57D .34③用秦九韶算法,求当x=2时,f(x)=x 5-5x 4+x 3-1的函数值.B 组1.秦九韶算法与直接计算相比较,下列说法错误的是( )A 、秦九韶算法与直接计算相比较,大大减少了乘法的次数,使计算量减少,并且逻辑结构简单.B 、秦九韶算法减少了做乘法的次数,在计算机上也就加快了计算的速度.C 、秦九韶算法减少了做乘法的次数,在计算机上也就降低了计算的速度.D 、秦九韶算法避免对自变量x 单独做幂的计算,而是与系数一起逐次增长幂次,从而可提高计算的精度.2.用秦九韶算法和直接算法求当0x x =时()654323126016024019264f x x x x x x x =-+-+-+的值,做的乘法次数分别为( )A.6,20B.7,20C.7,21D.6,21C 组求15.033.016.041.083.0)(2345+++++=x x x x x x f 当x=5时的值.八、教学反思1、学生还是不会分析运算次数的问题,应该给学生详细讲解.2、学生在多项式 11101210()(()))n n n n n n n f x a x a x a x a a x a x a x a x a ----=++++=+++++按照秦九韶算法写成标准形式是容易出错,且速度很慢,应教会学生快速的写法及检验方法.3、应多给学生介绍一些有关秦九韶算法的背景知识,这样更能吸引学生的注意力和学习兴趣,另外介绍历史名人的大致成就,扩大学生的文化视野.。

1.3.2算法案例(秦九韶算法)

1.3.2算法案例(秦九韶算法)
后教Ⅰ
学生交流、补充回答自学指导中的问题,教师进行补充及纠正总结,引导学生加强对知识的理解深度。
1.强调利用常规自然的运算方法,运算量大,若用前面的计算结果,直接计算后面的式子,可以减少运算量,提高运算效率。
2.强调作为常识性的知识,让学生了解到计算机进行乘法运算比加法运算花的时间要长的多,故而在程序编写中,需要进行运算,尽量使用加法。
3.让学生明确秦九韶算法的作用和意义。
4.通过交流关于秦九韶的简介,突破本节课的情感态度与价值观目标,教师鼓励学生要增强学习数学的信心。附:
秦九韶(公元1202-1261),字道古,安岳人。秦九韶与李冶、杨辉、朱世杰并称宋元数学四大家。其父秦季栖,进士出身,官至上部郎中、秘书少监。秦九韶聪敏勤学。宋绍定四年(1231),秦九韶考中进士,先后担任县尉、通判、参议官、州守、同农、寺丞等职。先后在湖北、安徽、江苏、浙江等地做官,1261年左右被贬至梅州(今广东梅县),不久死于任所。他在政务之余,对数学进行虔心钻研,并广泛搜集历学、数学、星象、音律、营造等资料,进行分析、研究。宋淳祜四至七年(1244至1247),他在为母亲守孝时,把长期积累的数学知识和研究所得加以编辑,写成了闻名的巨著《数学九章》,并创造了“大衍求一术”。这不仅在当时处于世界领先地位,在近代数学和现代电子计算设计中,也起到了重要作用,被称为“中国剩余定理”。他所论的“正负开方术”,被称为“秦九韶程序”。现在,世界各国从小学、中学到大学的数学课程,几乎都接触到他的定理、定律和解题原则。秦九韶在数学方面的研究成果,比英国数学家取得的成果要早800多年。秦九韶字道古.普州安岳(今四川安岳)人.南宋嘉泰二年(1202年)生;约景定二年(1261年)卒于梅州(今广东梅县).
示标
1.学会用秦九韶算法求多项式的值。

2019-2020学年数学高中人教A版必修3学案:1.3算法案例 第2课时 Word版含解析

2019-2020学年数学高中人教A版必修3学案:1.3算法案例 第2课时 Word版含解析

第一章算法初步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五、反思小结,观点提炼略。

高中数学1.3《算法案例---秦九韶算法》教案人教版必修3A

高中数学1.3《算法案例---秦九韶算法》教案人教版必修3A

〔教案〕 1.3 算法案例――-秦九韶算法
教学目标:
(1)在学习中国古代数学中的算法案例的同时,进一步体会算法的特点。

(2)体会中国古代数学对世界数学发展的贡献。

教学重点和难点
(1)重点:理解秦九韶算法的思想。

(2)难点:用循环结构表示算法的步骤。

教学基本流程
(1)设计算法,求具体多项式的值
(2)改进算法,提高运算效率
(3)介绍秦九韶算法,求一般多项式的值
(4)用循环结构表示秦九韶算法的关键步骤
(5)对秦九韶算法和算法本身的特点进行小结
教学情景设计
一、新课引入
在数学的发展史上,从公元前2、3世纪公元14世纪,中国
的数学虽有过高潮,也有过低落,但一直走在世界的前列,是世界数学的中心。

中国古代数学对世界数学发展有着不可磨灭的贡献。

秦九韶算法就是中国古代数学的一枝奇葩。

今天这节课我们领略秦九韶算法的魅力。

二、问题设计。

高二数学必修3:1.3 算法案例 教案2

高二数学必修3:1.3 算法案例  教案2

1.3 算法案例[学习目标导航]学习提示1. 通过对中国古代算法研究的学习,了解中国古代伟大的文化成就,增强民族自豪感.2.通过对算法案例的学习,进一步理解算法的思想,能够用程序来解决生活中常见的数学问题.3.理解进位制,能进行各种进位制之间的相互转化.重点是进位制,用算法设计程序;难点是在程序设计中用好三种基本的逻辑结构.[教材优化全析]全析提示我们通过程序框图形象、直观地表示算法,因此,在编制程序前,先绘出程序框图,能使思路清晰,并且对于三种基本的逻辑结构:顺序结构、条件结构、循环结构的脉络表达准确,有助于我们准确写出程序语言.(一)教材上介绍了辗转相除法(欧几里得算法),求两个数的最大公约数,其基本步骤是带余除法m=nq+r(0≤r<n),反复执行,直到余数r=0为止.求任意两个数的最大公约数的算法是:程序框图比自然语言的描述更容易理解.一般说来,设计程序时,先画程序框图比较好.第一步:输入两个正整数a,b(a>b);第二步:求出a÷b的余数r;第三步:令a=b,b=r,若r≠0,重复第二步;第四步:输出最大公约数a.相应的程序框图是:举例说明.m=90,n=36,m=2n+18,r=18.令m=36,n=18.又有36=18×2,即m=2n,此时r=0.令m=18,n=0.故最大公约数为18.两个数a,b的最大公约数一般写成(a,b),如90与36的最大公约数为18,写成(90,36)=18.“更相减损术”反映了我国古代劳动人民的伟大智慧,让我们感到无比的光荣与自豪.其程序语言是:INPUT “请输入两个正整数a,b:”;a,bPRINT a;b;WHILE a<>bIF a>=b THENa=a-bELSEb=b-a如求78与36的最大公约数,简单写成:(78,36)→(42,36)→(36,6)→(30,6)→(24,6)→(18,6)→(12,6)→(6,6)故(78,36)=6.如两个数都为偶数,也可以先提取2,再用此法.PRINT a;b;表示与下一END IF WENDPRINT “的最大公约数为:”;a END 个输出语句不换行.(二)秦九韶算法求多项式的函数值,在算法上减少了求乘法的次数,使计算量减少,并且逻辑结构简单.这种算法避免了对自变量单独作幂的计算,转而与系数一起逐次增长幂次,从而提高了计算精度.这也是我国古代劳动人民智慧的结晶,是我国伟大国库中的瑰宝.例如,求五次多项式f (x )=a5x5+a4x4+a3x3+a2x2+a1x+a0,当x=x0 (x0为任意实数)时的值的程序语言是: INPUT “请输入自变量x0的值:”;x0 直到今天,秦九韶算法仍是世界上多项式求值的最先进的方法.这钟一成就比西方同样的算法早五、六百年.这种算法容易在计算器或计算机上实现.INPUT “请输入最高次项系数a5的值:”;a5 V=a5 n=1WHILE n <=5INPUT “请输入下一次的系数的值:”;b V=V*x0+b n=n+1 WENDPRINT “函数值是:”;V END分步写成: V0=a5,V1=V0x+a4, V2=V1x+a3, V3=V2x+a2, V4=V3x+a1, V5=V4x+a0.(三)排序是日常生活中最常见的一项活动,就是按照一定的规则,对数据加以排列整理,从而提高查找效率.教材上介绍的直接插入排序是人们最容易想到,也是最容易实现的方法.排序的方法与技巧多种多样,在不同的时间,不同的场合可以用不同的技巧.教材上介绍的冒泡排序法,非常形象地描述了较小的数像气泡一样逐趟向上飘浮,一直到最小的数浮到最上面,然后是逐渐增大的数.在这里要特别理解“一趟”的意义,它可能有多次交换.如果一趟排序交换次数为0,说明排序已经完成.每一趟都从头开始,且两个两个地比较,一直到最后一个数,每一趟可有多个交换.(四)进位制是人们为了计数和运算方便而约定的记数系统,约定满二进一,就是二进制;满十进一,就是十进制,等等.即“满几进一”就是几进制,几进制的基数就是几.常用的是十进制,用0~9这十个数字,计数时,几个数字排成一行,从右起向左分别是个位、十位、百位、千位、万位……它可以用10的幂的形式写成,如67890可以写成6×104+7×103+8×102+9×101+0×100.其他进位制也可以类似地用基数的幂的形式,如:111111(2)=1×25+1×24+1×23+1×22+1×21+1×20,654321(7)=6×75+5×74+4×73+3×72+2×71+1×70.上述方法实质上是将不同进制的数转化成了十进制的数,这类问题可统一由程序来实现.日常生活中和普遍数学中用的都是十进制.日常生活中有七进制(一周7天)、十二进制(一年12个月)、六十进制(1小时60分,1分钟60秒),等,基数一般标在右下角.基数不同,选用的数字也不同,如二进制用0和1,六进制用0,1,2,3,4,5.我们也能把十进制的数转化为其他进制的数,用除K 取余法.方法是:用K 连续去除这个数,或所得的商,一直到商为0止,然后取其余数,把这些余数顺次排起来,就是K 进制的数.如,将1285化为16进制的数:任何一种进位制的数都可以写成不同位上的数字与基数的幂的乘积之和的形式.12858051616160505余数最后一个余数写在首位,其次是倒数第二个余数,依次递推.故1285=505(16) 在实际生活中的数学知识很多,只要我们留心,世界上到处充满着数学的气息,我国古代劳动人民在这方面积累了大量的知识和经验,有兴趣的同学不妨上网查阅一下有关资料. 验证: 505(16)=5×162+0×161+ 5×160 =5×256+5=1285.[典型例题探究] 规律发现【例1】 我国《算经十书》之一《孙子算经》中有这样一个问题:“今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二.问物几何?答曰:二十三.”你能用程序解决这个问题吗?分析:设物共m 个,被3,5,7除所得的商分别为x 、y 、z ,则这个问题相当于求不定方程这个问题的通用解法称为“孙子剩余定理”或“中国剩余定理”.著名的“韩信点兵问题”即为此例的应用.⎪⎩⎪⎨⎧+=+=+=27,35,23z m y m x m 的正整数解. m 应同时满足下列三个条件:(1)m MOD 3=2;(2)m MOD 5=3; (3)m MOD 7=2.因此,可以让m 从2开始检验,若3个条件中有任何一个不成立,则m 递增1,一直到m 同时满足三个条件为止.考虑到m 被7除余数为2,故m 至少是9,也可以从m =9开始验证.解:m =2 f =0WHILE f =0IF m MOD 3=2 AND m MOD 5=3 AND m MOD 7=2 THEN PRINT “物体的个数为:”;m f =1 ELSE 设置f =0,f =1的目的是让循环进行或结束,否则循环无法停下来.此处让f =0时进行循环,f =1时中止循环.m =m +1 END IF WEND END实际上按此法求出来的只是符合条件的最小正整数. 【例2】我国古代数学家张邱建编《张邱建算经》中记有有趣的数学问题:“今有鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一凡百钱,买鸡百只,问鸡翁、母、雏各几何?”你能用程序解决这个问题吗?分析:设鸡翁、母、雏各x 、y 、z 只,则这个问题在数学上称为“百鸡问题”.⎪⎩⎪⎨⎧=++=++②,①,100100335z y x z y x 由②,得z =100-x -y , ③ 把三元一次方程组转化为二元一次不定方程.③代入①,得5x +3y +3100yx --=100, 即7x +4y =100. ④ 求方程④的解,可由程序解之. 解:x =1 y =1WHILE x <=14 WHILE y <=25IF 7*x +4*y =100 THEN z =100-x -yPRINT “鸡翁、母、雏的个数别为:”;x ,y ,z END IF y =y +1 WEND x =x +1 y =1 WEND END实际上,该题可以不对方程组进行化简,通过设置多重循环的方式得以实现.由①、②可得x 最大值为20,y 最大值为33,z 最大值为100,且z 为3的倍数.程序如下:从x 的最小值开始验证,循环进行.由于7x +4y =100,且x 、y ∈Z ,故x ≤14,y ≤25.x=1y=1z=3WHILE x<=20WHILE y<=33WHILE z<=100IF 5*x+3*y+z/3=100 ANDx+y+z=100 THENPRINT “鸡翁、母、雏的个数分别为:”;x、y、zEND IFz=z+3WENDy=y+1z=3WENDx=x+1y=1WENDEND对于多重循环或条件嵌套,要注意每一重都有开头和结尾,程序本身也有一个结尾,不能丢掉任何一个.【例3】写出用二分法求方程x3-x-1=0在区间[1,1.5]上的一个解的算法(误差不超过0.001).分析:教材P23练习第1题已研究过求x2-2=0的近似根的方法.本例与上述方法类似,只是方程稍微复杂了些.由于f(1)=13-1-1=-1<0,f(1.5)=1.53-1.5-1=0.875>0,所以取[1,1.5]中点25.11=1.25研究,以下同求x2-2=0的根的方法.解:a=1b=1.5c=0.001DOx=(a+b)/2f(a)=a∧3-a-1f(x)=x∧3-x-1IF f(x)=0 THENPRINT “x=”;xELSEIF f(a)*f(x)<0 THENb=xELSEa=xEND IFEND IFLOOP UNTIL ABS(a-b)<=cPRINT “方程的一个近似解x=”;xEND【例4】(1)将101111011(2)转化为十进制的数;(2)将53(8)转化为二进制的数.分析:(1)将各位上的数字与基数的幂的积求和.(2)先转化为十进制的数,再利用除2取余法.解:(1)101111011(2)=1×28+0×27+1×26+1×25+1×24+1×23+0×22+1×21+1=379.(2)53(8)=5×81+3=43.用二分法求方程的近似值一般取区间[a,b]具有以下特征:f(a)<0,f(b)>0.相应的程序框图是:余数432110521222222110101不同进位制之间的转化是一种通法,必须熟练掌握.∴53(8)=101011(2). 【例5】用冒泡排序法将下列各数排成一列: 8,6,3,18,21,67,54.并写出各趟的最后结果及各趟完成交换的次数.分析:每一趟都从头开始,两个两个地比较,若前者小,则两数位置不变;否则,调整这两个数的位置.注意取余数的顺序:从下向上. 解:第一趟的结果是: 6 3 8 18 21 54 67 完成3次交换. 第二趟的结果是:3 6 8 18 21 54 67 完成1次交换.第三趟交换次数为0,说明已排好次序, 即3 6 8 18 21 54 67.【例6】 用秦九韶算法写出求f (x )=1+x +0.5x 2+0.16667x 3+0.04167x 4+ 0.00833x 5在x =-0.2时的值的过程.分析:先把函数整理成注意“一趟”的意义:每一趟都从头开始,每两个两个地比较,一直到最后一个数. f (x )=((((0.00833x +0.04167)x +0.16667)x +0.5)x +1)x +1,按照从内向外的顺序依次进行. 解:x =-0.2a 5=0.00833 V 0=a 5=0.008333 a 4=0.04167 V 1=V 0x +a 4=0.04 相当于用提公因式法分解因式.a 3=0.016667 V 2=V 1x +a 3=0.15867 a 2=0.5 V 3=V 2x +a 2=0.46827 a 1=1 V 4=V 3x +a 1=0.90635 a 0=1 V 5=V 4x +a 0=0.81873 ∴f (-0.2)=0.81873. 通过分解步骤看出作乘法的次数少,比直接代入求幂的运算速度要快得多.[教材习题研讨]P 21 思考 答案:当计算机遇到UNTIL 语句时,先执行一次循环体,再判断是否满足条件,若不满足,再执行循环体,然后再检查是否满足条件,如此反复.当满足条件时,将不执行循环体,转而执行LOOP UNTIL 后的语句.方法点拨 WHILE 语句称为前测试型,UNTIL 语句称为后测试型. P 22 思考 答案:课本上的算法可以改进.将循环条件“WHILE d <=n -1 AND flag=1”改为“WHILE d <=SQR (n ) AND flag=1”即可.改进后循环次数少了,提高了解题速度. P 23 练习 1.解:a =1 b =2 c =0.005 DO x =(a +b )/2 f (a )=a ∧2-2 f (x )=x ∧2-2 IF f (x )=0 THENPRINT “方程根为:”;x ELSE若改为 INPUT “请输入a 、b 的值:”;a 、b INPUT “请输入误差范围c :”;c 则该题的区间范围、误差范围还可以改变、限制.IF f (a )*f (x )<0 THEN b =x ELSE a =x END IF END IFLOOP UNTIL ABS (a -b )<=c PRINT “方程的近似根为:”;x END|a -b |<=c 不成立时循环,成立时则停止循环. 2.解:x =1 WHILE x <=20 y =x ∧2-3*x +5 PRINT “x =”;x PRINT “y =”;y x =x +1 WEND END计算一个、输出一个,再计算、输出下一个,如此反复.3.解:t =1 i =1 INPUT “请输入n 的值:”;n DO t =t *i i =i +1 LOOP UNTIL i >n PRINT “这个数的阶乘为:”;t END也可以用WHILE 语句 WHILE i <=n t =t *i i =i +1 WEND 输出语句可写成 PRINT n ;“!=”;t P 23 习题1.2A 组1.解:(1)输入你的名字,输出你的名字.(2)A =1 A =1×2=2 A =2×3=6 A =6×4=24 A =24×5=120 输出 5! 是120正确理解输入语句、输出语句和赋值语句. 2.解:INPUT “梯形的上底、下底、高分别为:”;a ,b ,h c =(a +b )/2 S =c *hPRINT “梯形的面积S =”;S ENDa ,b ,h 可分别输入,写成三个INPUT 语句. 3.解:INPUT “请输入两个整数a ,b :”;a ,b IF a MOD b =0 THEN PRINT “a 能被b 整除” MOD 表示取余数,整除即余数为0. 输出语句可以写成 ELSE PRINT “a 不能被b 整除” END IF END4.解:INPUT “请输入加数的个数n :”;nt =1 i =2 PRINT a ;“能被”;b ;“整除” sum=0 DO sum=sum+i t =t +1i =tt 1s um=s um+i 是累加求和,t =t +1表示计数器. LOOP UNTIL t >n可以用WHILE 语句,条件PRINT “和s=”;sumEND是t<=n.5.解:s=1t=1p=1i=1j=1k=1INPUT “请输入n,m的值:”;n,m DOs=s*ii=i+1LOOP UNTIL i>n设置三个计数器,三个独立的循环结构.DOt=t*jj=j+1LOOP UNTIL j>mDOp=p*kk=k+1LOOP UNTIL k>n-ma=t*pb=s/aPRINT “组合数的值为:”;b END可以写成WHILE语句,同学们自己写出.B组1.解:R=0.5a=1000i=1DOa=a*(1+R)i=i+1LOOP UNTIL i>6PRINT “2008年底的资金总额为:”;a END2008年底资金总额为1000(1+0.5)6万元,设计成累乘的形式,用循环结构.如用INPUT语句输入a、R的值,则具有一般意义.2.解:INPUT “请输入x的值:”;x IF x<1 THENy=xPRINT “y=”;yELSEIF x<10 THENy=2*x-1PRINT “y=”;yELSEy=3*x-11PRINT “y=”;yEND IFEND IFEND分段函数对应于条件结构,用条件语句的形式,可以形成嵌套.3.解:INPUT “请输入数字a和加数的个数n:”;a,n s=0b=ai=1DO实数aaaa=a×103+a×102+a ×10+a,aaaa=aaa×10+a,类推.s=s+bb=b*10+ai=i+1LOOP UNTIL i>nPRINT “s=”;sEND[知识应用自测]思路导引1.写出下列程序运行的结果.(1)a=2 (2)x=100i=1 i=1WHILE i<=6 DOa=a+1 x=x+10PRINT i,a PRINT i,xi=i+1 i=i+1WEND LOOP UNTIL x=200END END答案:(1)1,3;2,4;3,5;4,6;5,7;6,8.(2)1,110;2,120;3,130;4,140;5,150;6,160;7,170;8,180;9,190;10,200. ←理解当型语句和直到型语句的不同,理解循环体的执行步骤.2.求小于100的所有正偶数的和,设计一个算法的程序.解:s=2i=4DOs=s+ii=i+2LOOP UNTIL i>=100PRINT “2+4+6+…+98=”;sEND←用UNTIL语句.3.计算100×(1+0.02)8,用循环语句写出算法.解:a=100R=0.002i=1WHILE i<=8a=a*(1+R)i=i+1WENDPRINT “100*(1+0.002)∧8=”;aEND←用WHILE语句.4.求平方值小于1000的最大正整数,写出一个算法的程序.解:i=1DOs=i∧2i=i+1LOOP UNTIL s>=1000i=i-2PRINT “平方值小于1000的最大正整数为:”;iEND←用UNTIL语句.5.计算1+2+22+23+24+…+263,写出算法的程序.解:s=1n=2i=1←用WHILE语句.WHILE i<=63s=s+n∧ii=i+1WENDPRINT “1+2+2∧2+2∧3+…+2∧63=”;sEND6.1,1,2,3,5,8,13,21,…这一列数的规律是:从第三个数开←用WHILE语句,设置累加项.始,每个数为其前面两个数的和,写出计算这列数前20个数的和的算法程序.解:A=1B=1s=A+Bi=1WHILE i<=18C=A+Bs=s+CA=BB=Ci=i+1WENDPRINT “前20个数的和为:”;sEND←用t=t+10的形式.7.设计0°~180°间隔为10°的角的正弦值的求法程序.解:A=0DOC=3.14159265*A/180B=sin(C)PRINT “角和它的正弦值分别为:”;A,BA=A+10LOOP UNTIL A>180END←用UNTIL语句.8.2000年我国人口为13亿,如果人口每年的自然增长率为7‰,那么多少年后我国人口将达到15亿?设计一个算法的程序.解:A=13R=0.007i=1DOA=A*(1+R)i=i+1LOOP UNTIL A>=15i=i-1PRINT “达到或超过15亿人口需要的年数为:”;iEND9.编写求乘积为399的两个相邻奇数的程序.←用UNTIL语句.解:i=1DOt=i+2s=i*ti=i+2LOOP UNTIL s=399PRINT t-2,tEND。

1.3.2算法案例-秦九韶算法

1.3.2算法案例-秦九韶算法

计算多项式f(x) =x5+x4+x3+x2+x+1当x = 5 的值 算法1: 因为f(x) =x5+x4+x3+x2+x+1 所以f(5)=55+54+53+52+5+1 =3125+625+125+25+5+1 = 3906 算法2: f(5)=55+54+53+52+5+1 =5×(54+53+52+5+1 ) +1 =5×(5×(53+52+5 +1 )+1 ) +1 =5×(5×(5×(52+5 +1) +1 ) +1 ) +1 =5×(5×(5×(5 ×(5 +1) +1 )+1)+1) +1
作业:
课本P45页练习T2; P48页A组T2.
《数书九章》——秦九韶算法 设 f (x) 是一个n次的多项式
f ( x) an x an 1 x
n n 1
a1 x a0
对该多项式按下面的方式进行改写:
f ( x) an x an 1 x
n n 1
a1 x a0 a1 ) x a0 a2 ) x a1 ) x a0
要求多项式的值,应该先算最内层的一次多项式的值,即
v1 an x an 1
然后,由内到外逐层计算一次多项式的值,即
v2 v1 x an 2 v3 v2 x an 3
最后的一项 是什么?

vn vn 1 x a0
这种将求一个n次多项式f(x)的值转化成求n个一次多项式的值的 方法,称为秦九韶算法。
例1:用秦九韶算法求多项式 f(x)=2x5-5x4-4x3+3x2-6x+7的系数
x=5
2
-5 10 5

高中数学教案1.3算法案例2新课标必修三

高中数学教案1.3算法案例2新课标必修三
教学过程:
一、复习准备:
分别用辗转相除法和更相减损术求出两个正数623和1513的最大公约数.。
二、讲授新课:
例如,设计一个求多项式 当 时的值的算法。
一般的解决方案:将 代入多项式进行计算即可;
提问:上述算法在计算时共用了多少次乘法运算?多少次加法运算?此方案有何优缺点?(上述算法一共做了4+3+2+1=10次乘法运算,5次加法运算.优点是简单、易懂;缺点是不通用,不能解决任意多项式的求值问题,而且计算效率不高.)
.
这是一个反复执行的步骤,因此可用循环结构来实现.
算法步骤:
程序框图:
程序:
三.巩固练习:
2.P45练习2
四.小结:
(1)秦九韶算法计算多项式的值及程序设计
(2)注意循环语句的使用与算法的循环次数,对算法进行改进。
那么,有没有更有效的算法呢?
1.秦九韶算法
例如:求一个n次多项式 的值?
先把多项式改写为:
首先计算最内层括号内一次多项式的值,即 ,
然后由内向外逐层计算一次多项的值,即 ,

.
这样,求n次多项式f(x)的值就转化为求n个一次多项式的值。
结论:这种算法就是“秦九韶算法”。
例1、已知一个5次多项式为
f(x)=5x5+ 2x4+ 3.5x3- 2.6x2+ 1.7x - 0.8
教学目标:(1)了解秦九韶算法的计算过程,并理解利用秦九韶算法可以减少计算次数,提高计算效率的实质;(2)理解数学算法与计算机算法的区别,理解计算机对数学的辅助作用;(3)体会算法的基本思想;
教学重点:秦九韶算法的特点及其程序设计。
教学难点:秦九韶算法的先进性理解及其程序设计。.

第一章 1.3 算法案例:辗转相除法、秦九韶算法

第一章  1.3  算法案例:辗转相除法、秦九韶算法

3,答案:C
返回
• 4.用秦九韶算法求f(x)=3x?+4x?+5x? +6x?+7x?+8x+1,当x=0.4时的值, 需进行乘法运算和加法运算的次数分别为 ( ) • A. 6 6 B. 5 6 • C.6 5 D.6 12 • 解析:改写多项多f(x)=(((((3x+4)x+5)x+ 6)x+7)x+8)x+1,则需要6次乘法和6次加 法. • 答案:A
返回
课堂练习
2.用辗转相除法求294和84的最大公约数时,需要 做除法的次数是( ) A.1 B. 2 C.3 D. 4 3.用秦九韶算法求多项式的值,可用哪种结构的算 法实现( ) A.顺序结构 B.条件结构 C.循环结构 D.A、B两种 • 2,解析:由294=84×3+42,84=42×2知,共需 做2次除法. • 答案:B
返回
法二:更相减损术:
因为378与90都是偶数. 所以用2约简得189和45. 189-45=144,144-45=99, 99-45=54,54-45=9, 45-9=36,36-9=27, 27-9=18,18-9=9.
所以378与90的最大公约数为2×9=18.
返回
[例2]
用秦九韶算法求多项式
1.3 算法案例 辗转相除法、秦九韶算法
返回
预习思考
• 1,用辗转相除法求80和36的最大公约数, 并用更相减损术检验所得结果.
• 2,用秦九韶算法求多项式f(x)=2x4-6x3 -5x2+4x-6在x=5时的值.
返回
[例1]
用辗转相除法求80和36的最大公约数,并
用更相减损术检验所得结果. [自主解答] 用辗转相除法:
返回
1.秦九韶算法的步骤
返回
2.应用秦九韶算法计算多项式的值应注意的问题 (1)要正确将多项式的形式进行改写. (2)计算应由内向外依次计算. (3)当多项式函数中间出现空项式,要以系数为零的
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(1)怎样求多项式 f(x)=x 5+x 4+x 3+x 2+x+1 当 x=5 时的值呢?
一个自然的做法就是把 5 代入多项式 f(x) ,计算各项的值,然后把它们加起来,这时,
我们一共做了 1+2+3+4=10 次乘法运算, 5 次加法运算 .
另一种做法是先计算 x 2 的值,然后依次计算 x 2·x ,( x2·x) ·x ,(( x2·x) ·x )·x 的值,这
把一个 n 次多项式 f(x)=a nx n+an-1x n-1+… +a1x+a0 改写成如下形式: f(x)=a nxn+an-1xn-1+… +a1x+a0 =(anx n-1+an-1xn-2+… +a1) x+ a0 =(( anxn-2+an-1x n-3+… +a2)x+a 1 )x+a 0 =… =(… (( anx+a n-1) x+an-2) x+ … +a1) x+a0. 求多项式的值时,首先计算最内层括号内一次多项式的值,即
v3=138.5 ×5-2.6=689.9;
v4=689.9 ×5+1.7=3 451.2;
v5=3 415.2 5×-0.8=17 255.2; 所以,当 x=5 时,多项式的值等于 17 255.2.
算法分析: 观察上述秦九韶算法中的 n 个一次式, 可见 v k 的计算要用到
v k-1 的值, 若令
样每次都可以利用上一次计算的结果,这时,我们一共做了
4 次乘法运算, 5 次加法运算 .
第二种做法与第一种做法相比, 乘法的运算次数减少了, 因而能够提高运算效率, 对于
计算机来说, 做一次乘法运算所用的时间比做一次加法运算要长得多,
所以采用第二种做法,
计算机能更快地得到结果 . (2)上面问题有没有更有效的算法呢?我国南宋时期的数学家秦九韶(约 他的著作《数书九章》中提出了下面的算法:
.
(3)计算机的一个很重要的特点就是运算速度快,但即便如此,算法好坏的一个重要标志
仍然是运算的次数 .如果一个算法从理论上需要超出计算机允许范围内的运算次数,那么这
样的算法就只能是一个理论的算法 .
(三)应用示例 例 1 已知一个 5 次多项式为 f (x) =5x 5+2x4+3.5x3-2.6x2+1.7x-0.8 ,
计算
x
k 0

k=2
,3,
4, … ,n)的值需要 k- 1 次乘法,计算 P3(x 0)的值共需要 9 次运算( 6 次乘法, 3 次加法),
那么计算 P10(x 0)的值共需要 __________ 次运算 . 下面给出一种减少运算次数的算法:
P0(x)=a 0,Pk+1(x)=xP k(x)+a k+1 (k= 0,1, 2,…, n- 1).利用该算法,计算 P3(x 0)的值共需要
.
解: 设 f ( x) =a5x 5+a4x4+a3x 3+a2x2 +a1x+a 0
首先,让我们以 5 次多项式一步步地进行改写:
f ( x) =( a5x 4+a4x3+a3x 2+a2 x+a1) x+a0 =(( a5x3+a 4x 2+ a3x+a 2) x+a1)x+a 0 =((( a5x 2+a4x+ a3) x+a 2) x+a 1) x+a0
法.
思路 2(直接导入) 前面我们学习了辗转相除法与更相减损术,
今天我们开始学习秦九韶算法 .
(二)推进新课、新知探究、提出问题
(1)求多项式 f(x)=x 5+x 4+x3+x 2+x+1 当 x=5 时的值有哪些方法?比较它们的特点 .
(2)什么是秦九韶算法?
(3)怎样评价一个算法的好坏?
讨论结果:
时 案例 2 秦九韶算法
(一)导入新课
思路 1(情境导入)
大家都喜欢吃苹果吧, 我们吃苹果都是从外到里一口一口的吃, 而虫子却是先钻到苹果
里面从里到外一口一口的吃,由此看来处理同一个问题的方法多种多样
.怎样求多项式
f(x)=x 5+x 4+x 3+x 2+x+1 当 x=5 时的值呢?方法也是多种多样的,今天我们开始学习秦九韶算
PRINT “ i=;”i INPUT “ ai=;”a
v=v*x+a
i=i-1
WEND
PRINT v
END 点评:本题是古老算法与现代计算机语言的完美结合,
程序框图和算法语句 ,是一个典型的算法案例 . 变式训练
详尽介绍了思想方法、 算法步骤、
请以 5 次多项式函数为例说明秦九韶算法,并画出程序框图
1202~1261)在
v1=anx+an-1, 然后由内向外逐层计算一次多项式的值,即
v2=v 1x+a n-2, v3=v 2x+a n-3, … vn=v n-1x+a 0, 这样,求 n 次多项式 f (x)的值就转化为求
秦九韶算法 .直到今天,这种算法仍是多项式求值比较先进的算法
v0=an,我们可以得到下面的公式:
v0 an , vk vk 1x an k (k 1,2, , n).
这是一个在秦九韶算法中反复执行的步骤,因此可用循环结构来实现
.
算法步骤如下:
第一步,输入多项式次数 n、最高次的系数 an 和 x 的值 . 第二步,将 v 的值初始化为 an,将 i 的值初始化为 n-1.
第三步,输入 i 次项的系数 ai.
第四步, v=vx+a i ,i=i-1.
第五步,判断 i 是否大于或等于 0.若是,则返回第三步;否则,输出多项式的值
v.
程序框图如下图:
程序: INPUT “ n=;”n INPUT “ an=;”a INPUT “ x=;”x
v=a
i=n-1
WHILE i > =0
=(((( a5x+a4) x+ a3) x+a2) x+a1) x+a0.
上面的分层计算 ,只用了小括号,计算时,首先计算最内层的括号,然后由里向外逐层计算,
直到最外层的括号,然后加上常数项即可 .
程序框图如下图:
例2
已知 n 次多项式
Pn(x)=a 0 xn+a1x n-1+… +an-1x+an,如果在一种算法中,
用秦九韶算法求这个多项式当 x=5 时的值 . 解: 根据秦九韶算法,把多项式改写成如下形式:
f(x)= ( (((5x+2)x+3.5)x-2.6)x+1.7) x-0.8 , 按照从内到外的顺序,依次计算一次多项式当
x=5 时的值:
v0=5;
v1=5×5+2=27;
v2=27 ×5+3.5=138.5;
相关文档
最新文档