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

秦九韶算法 一、三维目标(a )知识与技能了解秦九韶算法的计算过程,并理解利用秦九韶算法可以减少计算次数提高计算效率的实质。
(b )过程与方法 模仿秦九韶计算方法,体会古人计算构思的巧妙。
(c )情态与价值观通过对秦九韶算法的学习,了解中国古代数学家对数学的贡献,充分认识到我国文化历史的悠久。
充分认识信息技术对数学的促进。
二、教学重难点重点:1.秦九韶算法的特点难点:1.秦九韶算法的先进性理解三、教学设计 (一)创设情景,揭示课题1.辗转相除法和更相减损术,是求两个正整数的最大公约数的优秀算法,我们将算法转化为程序后,就可以由计算机来执行运算,实现了古代数学与现代信息技术的完美结合.2.对于求n 次多项式的值,在我国古代数学中有一个优秀算法,即秦九韶算法,我们将对这个算法作些了解和探究.(二)研探新知思考1 ).5(,12345)(2345f x x x x x x f 求已知+++++= 21325算法1:需要(5+4+3+2)=14次乘法,5次加法算法2:需要5次乘法,5次加法 秦九韶算法思考2 ).3(,1234567)(234567f x x x x x x x x f 求已知+++++++= 18556 思考3:利用后一种算法求多项式f(x)=a n x n +a n-1x n-1+…+a 1x+a 0的值,这个多项式应写成哪种形式?f(x)=a n x n +a n-1x n-1+…+a 1x+a 0=(a n x n-1+a n-1x n-2+…+a 2x+a 1)x+a 0=((a n x n-2+a n-1x n-3+…+a 2)x+a 1)x+a 0=…=(…((a n x+a n-1)x+a n-2)x+…+a 1)x+a 0.思考4:对于f(x)=(…((a n x+a n-1)x+a n-2)x+…+a 1)x+a 0,由内向外逐层计算一次多项式的值,其算法步骤如何?第一步,计算v 1=a n x+a n-1.第二步,计算v 2=v 1x+a n-2.第三步,计算v 3=v 2x+a n-3.…第n 步,计算v n =v n-1x+a 0.思考5:上述求多项式f(x)=a n x n +a n-1x n-1+…+a 1x+a 0的值的方法称为秦九韶算法,利用该算法求f(x 0)的值,一共需要多少次乘法运算,多少次加法运算?思考6:在秦九韶算法中,记v 0=a n ,那么第k 步的算式是什么?v k =v k-1x+a n-k (k=1,2,…,n)例1 阅读下列程序,说明它解决的实际问题是什么?求多项式43254321)(x x x x x f ++++=,在x=a 时的值.评价一个算法好坏的一个重要标志是运算的次数,如果一个算法从理论上需要超出计算机允许范围内的运算次数,那么这样的算法就只能是一个理论算法.在多项式求值的各种算法中,秦九韶算法是一个优秀算法.作业:《习案》作业九 INPUT “x=”;a n=0y=0WHILE n <5y=y+(n+1)*a ∧n n=n+1WEND PRINT y END。
数学:1.3.2《算法案例-秦九韶算法》课件(新人教A版必修3)

解:首先将原多项式改写成如下形式 : f(x)=((((5x+2)x+3.5)x-2.6)x+1.7)x-0.8.
然后由内向外逐层计算一次多项式的值,即
v0= 5
v1=5×5+2=27;
你从中看到了 怎样的规律?
[问题5]对于多项式
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.
思考:在多项 式的求值上, 这是怎样的一 种转化?
用秦九韶算法求这个多项式当x=-2时的值。
2.已知多项式f(x)=2x6-6x4-5x2+4x-6
用秦九韶算法求这个多项式当x=你5时从的中值看到。了 3.已知多项式 f(x)=2x6-5x5-4x怎3+3样x的2-规6x律当?
怎么用程序框
x=5用秦九韶算法求这个多项式当图x来=5描时述的呢值?
注意:n次多项式有n+1项,因此缺少哪一项 应将其系数补0.
课堂小结:
秦九韶算法的方法和步骤
评价一个算法好坏的一个重要标志是运算的 次数,如果一个算法从理论上需要超出计算机允 许范围内的运算次数,那么这样的算法就只能是 一个理论算法.在多项式求值的各种算法中,秦 九韶算法是一个优秀算法.
1.3 算法案例2---秦九韶算法9

1.3 算法案例——案例2 秦九韶算法与刘徽割圆术9**学习目标**1.在学习中国古代数学中的算法案例的同时,进一步体会算法的特点。
2.体会中国古代数学对世界数学发展的贡献。
**要点精讲**1.秦九韶算法对于多项式的求值,我国南宋时期的数学家秦九韶(约1202—1261)在他的代表作《数书九章》中提出了下面的算法:把一个n 次多项式1110()n n n n f x a x a x a x a --=++++改写成如下形式:1110()n n n n f x a x a x a x a --=++++12110()n n n n a x a x a x a ---=++++ 231210(())n n n n a x a x a x a x a ---=+++++ =1210(()))n n n 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 -=+,这样,求n 次多项式()f x 的值转化为求n 个一次多项式的值.上述算法称为秦九韶算法,这种算法直到今天仍是比较先进的多项式求值方法.请思考,①直接求n 次多项式1110()n n n n f x a x a x a x a --=++++当0x x =(0x 是任意实数)时的值,需要多少次乘法运算,多少次加法运算?②用秦九韶算法求n 次多项式1110()n n n n f x a x a x a x a --=++++当0x x =(0x 是任意实数)时的值,最多需要多少次乘法运算,多少次加法运算?2.刘徽割圆术魏晋时期数学家刘徽割圆术语录:“割之弥细,所失弥少,割之又割,以至于不可割,则与圆合体而无所失矣”解析:从作圆内接正六边形开始,让边数逐次加倍,逐个算出这些内接正多边形的面积,从而得到一系列逐次递增的数值。
高中数学 1.3算法案例精品教案 新人教A版必修3

1.3算法案例第三、四课时 秦九韶算法与排序(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.秦九韶计算多项式的方法01210123120132211012211)))((())(()()(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 时的值。
第一章 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)当多项式函数中间出现空项式,要以系数为零的
高中数学必修3_1.3.2算法案例(秦九韶算法)(z)
按由里到外的顺序,依此计算一次多项式当x = 5时的值:
v0 5 v1 5 5 2 27 v2 27 5 3.5 138.5 v3 138.5 5 2.6 689.9 v4 689.9 5 1.7 3451.2 v5 3451.2 5 0.8 17255.2
结束
例2 已知一个五次多项式为
5 4
f ( x) 5x 2 x 3.5x 2.6 x 1.7 x 0.8
3 2
用秦九韶算法求这个多项式当x = 5的值。 解: 将多项式变形:
f ( x) ((((5 x 2) x 3.5) x 2.6) x 1.7) x 0.8
然后由内向外逐层计算一次多项式的值,即
v2=v1x+an-2, v3=v2x+an-3, ……, vn=vn-1x+a0.
这样,求n次多项式f(x)的值就转化为求n个 一次多项式的值.这种算法称为秦九韶算法.
v1=anx+an-1,
v2=v1x+an-2,
v3=v2x+an-3, ……, vn=vn-1x+a0.
-4 25 21
3 105 108
-6 7 540 2670 534 2677
多项式 的值.
所以,当x=5时,多项式的值是2677.
练一练:用秦九韶算法求多项式 f(x)=2x6-5x5-4x3+3x2-6x当x=5时的值. 解:原多项式先化为:
f(x)=2x6-5x5 +0×x4-4x3+3x2-6x+0Βιβλιοθήκη 1、辗转相除法(欧几里得算法)
(1)算理: 所谓辗转相除法,就是对于给定的两个 数,用较大的数除以较小的数。若余数不为零,则 将余数和较小的数构成新的一对数,继续上面的除 法,直到大数被小数除尽,则这时较小的数就是原 来两个数的最大公约数。
算法案例 辗转相除法与更相减损术秦九韶算法与进位制第一课时课件-数学高一必修3第一章算法初步1.3人教A版
【问题导思】 1.如何求18与54的最大公约数? 【提示】 短除法.
2.要求6 750与3 492的最大公约数,上述法还好用吗?
【提示】
数值太大,短除法不方便用.
(1)更相减损之术(等值算法)
用两个数中较大的数减去较小的数,再用 差数 较小的数 大 数 到产生 减 和
构成新的一对数,对这一对数再用 小数 ,以同样的操作一直做下去,直 ,这个数就是最大公约数.
v0=an 则递推公式为 其中 vk= vk-1x+an-k
k=1,2,„,n.
(2)计算P(x0)的方法 先计算 最内层括号 ,然后 由内向外 常数项 直到 最外层括号 ,然后加上 逐层计算, .
知识3
进位制
进位制是一种记数方式,用有限的数字在不同的位置表示
不同的数值.使用数字符号的个数称为基数,基数为 n,即称为
1.用更相减损之术可求得78与36的最大公约数是( A.24 【解析】 B.18 C.12 D. 6
)
78-36=42,42-36=6,36-6=30,30-
6=24,24-6=18,18-6=12,12-6=6,∴6为78与36的
最大公约数.
【答案】 D
2.用秦九韶算法计算f(x)=6x5-4x4+x3-2x2+x3-2x2 -9x,需要加法(或减法)与乘法运算的次数分别为( A.5,4 【解析】 B.5,5 C.4,4 )
【解析】 (1)101 111 011(2)=1×28+0×27+1×26+1×25
+1×24+1×23+0×22+1×21+1×20=379(10).
(2)1231(5)=1×53+2×52+3×5+1=191(10),
∴1231(5)=362(7).
高中数学人教版必修三《1.3.2秦九韶算法》课件
= 3906 10次的乘法运算,5次的加法运算 4次的乘法运算,5次的加法运算
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
• 四级所以f(5)=55+54+53+52+5+1
• 五级
=5x5x5x5x5+5x5x5x5+5x5x5+5x5+5+1
=3125+625+125+25+5+1
= 3906
2023/9/16
4
单击此处编辑母版标题样式
算法二:先运算x2的值,然后顺次运算
• 单击此处编辑x2母·x、版(文本x2样·x)式·x、( ( x2·x)·x)·x 的值
2023/9/16
2
单击此处编辑母版标题样式
案例2、秦九韶算法
• 单击此秦处九编韶辑算母法版是文求本一样元式多项式的值的一种方法。
• 二级
•怎三样•级四求级多项式f(x)=x5+x4+x3+x2+x+1当x=5时的值呢? 算法一• 五:级把5代入,运算各项的值,然后把它们加起来。
算法二:先运算x2的值,然后顺次运算x2·x、
• 单击此处课编堂辑母小版结文本:样式
• 二•级三级1、秦九韶算法的方法和步骤 • 2四、级• 五秦级九韶算法的流程图及程序
2023/9/16
14
单击此处编辑母版标题样式
• 单击此处编辑母版文本样式
• 二1级.3.2 • 三级 谢谢大家 • 四级 • 五级
人教版 高中数学
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
案例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 )=5x 5+2x 4+3.5x 3-2.6x 2+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 k
n 这是一个在秦九韶算法中反复执行的步骤,因此可用循环结构来实现.
算法步骤如下:
第一步,输入多项式次数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=”;n
INPUT “an=”;a
INPUT “x=”;x
v=a
i=n-1
WHILE i>=0
PRINT “i=”;i
INPUT “ai=”;a
v=v*x+a
i=i-1
WEND
PRINT v
END
点评:本题是古老算法与现代计算机语言的完美结合,详尽介绍了思想方法、算法步骤、程序框图和算法语句,是一个典型的算法案例.
变式训练
请以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
(n
n
,加法最多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)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+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.。