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

合集下载

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算法案例2

1.3.2算法案例2

要求多项式的值,应该先算最内层的一次多项式 的值,即 v 1 a n x an 1 然后,由内到外逐层计算一次多项式的值,即
v 2 v1 x an 2 v 3 v 2 x an 3
最后的一 项是什么?

vn vn1 x a0
这种将求一个n次多项式f(x)的值转化成求n个一 次多项式的值的方法,称为秦九韶算法.
所以,当x = 5时,0、a1、a2、a3、a4、a5 输入x0 n=0 v=a5 v= v· 0+a5-n x
n=n+1
n < 5? 否 输出v 结束
秦九韶算法检验

练习、已知多项式f(x)=x5+5x4+10x3+10x2+5x+1
f ( x) an x n an1 x n1 a1 x a0
对该多项式按下面的方式进行改写:
f ( x) an x n an1 x n1 a1 x a0
(an x n1 an1 x n2 a1 ) x a0
这是怎样的 一种改写方 式?最后的 结果是什么?
算法步骤:
第一步:输入多项式次数n、最高次项的系数an和x 的值. 第二步:将v的值初始化为an,将i的值初始化为n-1. 第三步:判断i是否大于或等于0,若是,则返回第
四步;否则,转第六步
第四步:输入i次项的系数ai 第五步:v=vx+ai, i=i-1 第六步:输出多项式的值v。
程序框图:
开始
v1 5 5 2 27 v2 27 5 3.5 138.5 v 3 138.5 5 2.6 689.9 v4 689.9 5 1.7 3451.2 v5 3451.2 5 0.8 17255.2

算法案例—(2)秦九韶算法

算法案例—(2)秦九韶算法

=(((2x2-5x-4)x+3)x-6)x+7 v3=v2x+3=21×5+3=108
=((((2x-5)x-4)x+3)x-6)x+7 v4=v3x-6=108×5-6=534
v5=v4x+7=534×5+7=2677
当x=5时,多项式 的值是多少?
所以,当x=5时,多
这种求多项式值的方法就项叫式秦的九值韶是算26法77..
要求多项式的值,应该先算最内层的一次多项式的
值,即 v0 a n
v1anxan1
然后,由内到外逐层计算一次多项式的值,即
v2v一 项是什么?
:在求多项式的值上,这是怎样的一个转化?
这种将求一个n次多项式f(x)的值转化成求n个
一次多项式的值的方法,称为秦九韶算法。
种算法中用了几次乘法运算?和几次加法运算?
共做了4次乘法运算,5次加法运算。
问题2:能否探索一个算法,来解决任意多项式的 f(求x)值=2问x5题-5?x4-4x3+3x2-6x+7v0=2
=(2x4-5x3-4x2+3x-6)x+7 v1=v0x-5=2×5-5=5
=((2x3-5x2-4x+3)x-6)x+7 v2=v1x-4=5×5-4=21
v2=v1x+an-2, v3=v2x+an-3, ……, vn=vn-1x+a0.
这样,求n次多项式f(x)的值就转化为求n个 一次多项式的值.这种算法称为秦九韶算法.
特点:通过一次式的反复计算,逐步得出
高次多项式 f(x ) a n x n a n 1 x n 1 a 1 x a 0
解法二:列表

高中数学必修3公开课课件 1.3.2算法案例--秦九韶算法

高中数学必修3公开课课件 1.3.2算法案例--秦九韶算法
次数,如果一个算法从理论上需要超出计算机允 许范围内的运算次数,那么这样的算法就只能是 一个理论算法.在多式求值的各种算法中,秦九 韶算法是一个优秀算法.
10
课后再做好复习巩固. 谢谢!
再见!
新疆 王新敞
奎屯
王新敞 特级教师 源头学子小屋 wxckt@ 新疆奎屯
再统计一下计算当时的值时需要的计算次数,可 以得出仅需4次乘法和5次加法运算即可得出结果。显 然少了6次乘法运算。
这种算法就叫秦九韶算法。
3
秦九韶算法
把一个多项式
f (x) an xn an1xn1 an2 xn2 a1x a0
改写为:
f (x) an xn an1xn1 an2 xn2 a1x a0 (an xn1 an1xn2 an2 xn3 a1)x a0 ((an xn2 an1xn3 a2 )x a1)x a0
·2007·
11
案例2 秦九韶算法
2019年5月6日星期一
1
问题提出
1.辗转相除法和更相减损术,是求两个正整数 的最大公约数的优秀算法,我们将算法转化为程序 后,就可以由计算机来执行运算,实现了古代数学 与现代信息技术的完美结合.
2.对于求n次多项式的值,在我国古代数学中 也有一个优秀算法,即秦九韶算法,本节对这个算 法作些了解和探究.
=……
( ((an x an1)x an2 )x a1) a0
4
秦九韶算法
对于f(x)=(…((anx+an-1)x+ an-2)x+…+a1)x+a0, 由内向外逐层计算一次多项式的值,其算法步骤:
第一步,计算v1=anx+an-1. 第二步,计算v2=v1x+an-2. 第三步,计算v3=v2x+an-3.

1.3 算法案例2-秦九韶算法

1.3  算法案例2-秦九韶算法

2. 利用秦九韶算法求n次多项式f(x)的值的步骤:
先把n次多项式f(x)改写成如下形式: f(x)=(…((anx+an-1)x+an-2)x+…+a1)x+a0. 再按照从内到外的顺序 , 依次计算一次多项 式的值, 即 v1=anx+an-1 ;
注意: 用秦九韶算法
计 算 n 次 多 项 式 f(x) 的 值时,一共需要n次乘法 运算和n次加法运算.
解: f(x)=((((0.83x+0.41)x+0.16)x+0.33)x+0.5)x+1
当x=5时, v1=0.83×5+0.41=4.56; v2=4.56×5+0.16=22.96; v3=22.96×5+0.33=115.13; v4=115.13×5+0.5=576.15; v5=576.15×5+1=2881.75. 所以, f(5)=2881.75.
作业: P48 A组 T2
思考2:阅读下列程序,说明它是解决什么的 问题算法?
INPUT “x=”;a n=0 y=0 WHLE n<5 y=y+(n+1)*a∧n n=n+1 WEND PRINT y END
求多项式f(x)=1+2x+3x2+4x3+5x5在x=a时的值.
当x=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. 所以, f(5)=17255.2.
2

《算法案例---秦九韶算法》名师课件2

《算法案例---秦九韶算法》名师课件2
当x=5时,多项式的值是2677.
课堂小结
1 、通过对秦九韶算法的学习,你对算法本身有哪些进 一步的认识?
(1)算法具有通用的特点,可以解决一类问题
(2)解决一类问题,可以有不同的算法,但 计算的效率是不同的,应该选择高效的算法。
2、 秦九韶算法的特点及揭示的算法思想。 通过一次式的反复计算,逐步得出高次多项式的值, 对于一个n次多项式,只需做n次乘法和n次加法即可。 把高次转化为一次的化归思想方法。
即 若 v1 an x0 an1,
v2 v1 x0 an2 , v3 v2 x0 an3 ,
v0 an vk vk1 x0 ank (k 1,2,3 ,n)
这种算法用了 几次乘法运算 和几次的加法
vn vn1 x0 a0
运算?
则 f (x0 ) vn
设 v0 an 共做了n次乘法运算,n次加法运算。
vn vn1x a0
例题讲解
f (x0 ) ( ((an x0 an1 )x0 an2 )x0 a1 )x0 a0
vv0vaxn ai →
这是一个在秦九韶算法中 反复执行的步骤,因此可 用循环结构来实现。
1.初始化变量
v an i n 1
v0 an
v1 v0 x an1
2.循环体
作业
(1)课本第45页练习2,第48页习题 1.3 A组第2题
(2)请同学们用另一种循环结构画 出秦九韶算法的程序框图并编写程序 语言。
(3)(选做)探究课本第45-47页内 容完成习题1.3 A组第4题
于0,若是,则返回第三步;否
则,输出多项式的值v.
★算法框图
开始 输入n, an , x的值
v=an
i=n-1

算法案例2-秦九韶算法

算法案例2-秦九韶算法

我们已经学过了多项式的计算,下面我们计 算一下多项式 f(x) x5 x4 x3 x2 x 1 当 x = 5 的值。 解析:下面分别用两种算法来求其值。 并计算每个算法所用乘法和加法的次数。
算法1: f(x)=x5+x4+x3+x2+x+1 因为f(x)=x5+x4+x3+x2+x+1 所以f(5)=55+54+53+52+5+1 =3125+625+125+25+5+1
= 3906 共做了1+2+3+4=10次乘法运算,5次加法运算。
算法2: f(x)=x5+x4+x3+x2+x+1
第二种做法与第一种做法相比,乘法的运算次数减少了, 因而能够提高运算效率。对于计算机来说,做一次乘法运算 所用的时间比做一次加法运算要长得多,所以采用第二种做 法,计算机能更快得到结果。
i=i-1 v=vx+ai
输入ai
i≥0? 否 是
输出v
结束
练习1、已知一个5次多项式为
f x 4x 2x 3.5x 2.6x 1.7 x 0.8
5 4 3 2
用秦九韶算法求f(5)的值.
解:f(x)=((((4x+2)x+3.5)x-2.6)x+1.7)x-0.8 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=2826.2; v5=2826.2×5-0.8=14130.2. 所以f(5)= =14130.2.
输入ai
Y

算法案例(秦九韶算法)

算法案例(秦九韶算法)

算法的步骤和流程
01
02
03
04
2. 将 $a_{i+1}$ 加到 $v$ 中。 3. 将 $v$ 存储在变量 $P$ 中。
步骤3:返回 $P$ 作为多项 式的值。
通过以上步骤,秦九韶算法可以 在 $O(n)$ 的时间内计算出一元 多项式的值,其中 $n$ 是多项式 的次数。与直接使用常规的求值 方法相比,秦九韶算法可以显著 减少乘法的次数,从而提高计算
缺点
对大系数多项式不适用
秦九韶算法适用于系数和次数都很大的多项式,但如果多项式的 系数非常大,可能会导致数值溢出或下溢,影响计算精度。
需要额外的存储空间
秦九韶算法需要存储中间结果,如果多项式的次数很大,需要额外 的存储空间。
对某些特殊多项式不适用
秦九韶算法不适用于某些特殊的多项式,如常数、一次多项式等。
秦九韶算法的应用场景
数值分析
秦九韶算法在数值分析中广泛应用于求解多项式方程的根,以及进行 数值积分和微分等计算。
科学计算
在科学计算领域,秦九韶算法被用于计算物理、化学、工程等领域中 的多项式函数值,以及进行数据拟合和插值等操作。
计算机图形学
在计算机图形学中,秦九韶算法被用于计算光线追踪和纹理映射等算 法中的多项式函数值,以提高渲染效率和精度。
05
秦九韶算法的优缺点
优点
高效性
秦九韶算法是一种快速算法,可以在多项式 时间内完成计算,比直接计算更高效。
易于编程实现
秦九韶算法的步骤明确,易于编程实现,可 以方便地应用于计算机程序中。
数值稳定性
秦九韶算法在计算过程中可以减少舍入误差, 提高数值稳定性。
适用范围广
秦九韶算法适用于多项式的系数和次数都很 大的情况,具有较广的适用范围。

9.§1.3.2算法案例—秦九韶算法(2)

9.§1.3.2算法案例—秦九韶算法(2)

否那么 ,输出多项式的值 v.
思考 2:该算法的程序框图如何表示 ?
程序框图如下列图: 2
公众号:惟微小筑
教师课时教案
问题与情境及教师活动
学生活动
INPUT "n =〞;n
INPUT "an =〞;a
INPUT "x =〞;x
v =a
i =n -1
WHILE i> =0

PRINT "i =〞;i INPUT "ai =〞;a
加法运算 ?
秦九韶算法适用一般的多项式 f(x) =anxn +an -1xn -1 +… +a1x +a0 的
过 求值问题 .直接法乘法运算的次数最|多可到达 (n 1)n ,加法最|多 n 2
程 次 .秦九韶算法通过转化把乘法运算的次数减少到最|多 n 次 ,加法最|
多n次
及 思考 4:在秦九韶算法中 ,记 v0 an 那么第 k 步的算式是什么 ?
学 目
技能目标
模仿秦九韶计算方法 ,体会古人计算构思的巧妙;探究计算机算法与数 学算法的区别 .

情感态度价值观
通过对秦九韶算法的学习 ,了解中国古代数学家对数学的奉献 ,充分 认识到我国文化历史的悠久 .
重点 理解秦九韶算法的思想 .
难点 用循环结构表示算法的步骤 .
问题与情境及教师活动
学生活动
一.复习引入
法运算和多少次加法运算 ?
学 共需要 10 次乘法运算 ,5 次加法运算 . 我们把多项式变形为: f (x) x2 (1 x(1 x(1 x))) x 1
过 再统计一下计算当 x 5 时的值时需要的计算次数 ,可以得出仅

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

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

思考5:上述求多项式 思考5:上述求多项式 5: f(x)=anxn+an-1xn-1+…+a1x+a0的值的方法 称为秦九韶算法 利用该算法求f(x 秦九韶算法, 称为秦九韶算法,利用该算法求f(x0)的 一共需要多少次乘法运算, 值,一共需要多少次乘法运算,多少次 加法运算? 加法运算? n次乘法运算, n次加法运算 次乘法运算, 次加法运算 次乘法运算 思考6:在秦九韶算法中, 6:在秦九韶算法中 思考6:在秦九韶算法中,记v0=an,那么 步的算式是什么? 第k步的算式是什么? (k=1, vk=vk-1x+an-k (k=1,2,…,n)
思考4:对于f(x)=(…((a 思考4:对于f(x)=(…((anx+an-1)x+ 4:对于 an-2)x+…+a1)x+a0,由内向外逐层计算 一次多项式的值,其算法步骤如何? 一次多项式的值,其算法步骤如何? 第一步,计算v 第一步,计算v1=anx+an-1. 第二步,计算v 第二步,计算v2=v1x+an-2. 第三步,计算v 第三步,计算v3=v2x+an-3. … 第n步,计算vn=vn-1x+a0. 计算v
第二种做法与第一种做法相比,乘法的运算次数 第二种做法与第一种做法相比 乘法的运算次数 减少了,因而能提高运算效率 而且对于计算机来说,做 因而能提高运算效率.而且对于计算机来说 减少了 因而能提高运算效率 而且对于计算机来说 做 一次乘法所需的运算时间比做一次加法要长得多,因此 一次乘法所需的运算时间比做一次加法要长得多 因此 第二种做法能更快地得到结果. 第二种做法能更快地得到结果
知识探究( 知识探究(一):秦九韶算法的基本思想

第2课时案例2秦九韶算法

第2课时案例2秦九韶算法

第2课时案例2 秦九韶算法导入新课思路1(情境导入)大家都喜欢吃苹果吧,我们吃苹果都是从外到里一口一口的吃,而虫子却是先钻到苹果里面从里到外一口一口的吃,由此看来处理同一个问题的方法多种多样.怎样求多项式f(x)=x5+x4+x3+x2+x+1当x=5时的值呢?方法也是多种多样的,今天我们开始学习秦九韶算法.推进新课新知探究提出问题(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时的值: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=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=”;nINPUT “an=”;aINPUT “x=”;xv=ai=n-1WHILE i >=0PRINT “i=”;iINPUT “ai=”;av=v*x+ai=i-1WENDPRINT vEND点评:本题是古老算法与现代计算机语言的完美结合,详尽介绍了思想方法、算法步骤、程序框图和算法语句,是一个典型的算法案例.变式训练请以5次多项式函数为例说明秦九韶算法,并画出程序框图.解:设f (x )=a 5x 5+a 4x 4+a 3x 3+a 2x 2+a 1x+a 0首先,让我们以5次多项式一步步地进行改写:f (x )=(a 5x 4+a 4x 3+a 3x 2+a 2x+a 1)x+a 0=((a 5x 3+a 4x 2+ a 3x+a 2)x+a 1)x+a 0=(((a 5x 2+a 4x+ a 3)x+a 2)x+a 1)x+a 0=((((a 5x+a 4)x+ a 3)x+a 2)x+a 1)x+a 0.上面的分层计算,只用了小括号,计算时,首先计算最内层的括号,然后由里向外逐层计算,直到最外层的括号,然后加上常数项即可.程序框图如下图:例2 已知n 次多项式P n (x)=a 0x n +a 1x n-1+…+a n-1x+a n ,如果在一种算法中,计算kx 0(k=2,3,4,…,n )的值需要k -1次乘法,计算P 3(x 0)的值共需要9次运算(6次乘法,3次加法),那么计算P 10(x 0)的值共需要__________次运算.下面给出一种减少运算次数的算法:P 0(x)=a 0,P k+1(x)=xP k (x)+a k+1(k =0,1,2,…,n -1).利用该算法,计算P 3(x 0)的值共需要6次运算,计算P 10(x 0)的值共需要___________次运算.答案: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)算法具有通用的特点,可以解决一类问题;(2)解决同一类问题,可以有不同的算法,但计算的效率是不同的,应该选择高效的算法;(3)算法的种类虽多,但三种逻辑结构可以有效地表达各种算法等等.第3课时案例3 进位制导入新课情境导入在日常生活中,我们最熟悉、最常用的是十进制,据说这与古人曾以手指计数有关,爱好天文学的古人也曾经采用七进制、十二进制、六十进制,至今我们仍然使用一周七天、一年十二个月、一小时六十分的历法.今天我们来学习一下进位制.推进新课新知探究提出问题(1)你都了解哪些进位制?(2)举出常见的进位制.(3)思考非十进制数转换为十进制数的转化方法.(4)思考十进制数转换成非十进制数及非十进制之间的转换方法.活动:先让学生思考或讨论后再回答,经教师提示、点拨,对回答正确的学生及时表扬,对回答不准确的学生提示引导考虑问题的思路.讨论结果:(1)进位制是人们为了计数和运算方便而约定的计数系统,约定满二进一,就是二进制;满十进一,就是十进制;满十二进一,就是十二进制;满六十进一,就是六十进制等等.也就是说:“满几进一”就是几进制,几进制的基数(都是大于1的整数)就是几.(2)在日常生活中,我们最熟悉、最常用的是十进制,据说这与古人曾以手指计数有关,爱好天文学的古人也曾经采用七进制、十二进制、六十进制,至今我们仍然使用一周七天、一年十二个月、一小时六十分的历法.(3)十进制使用0~9十个数字.计数时,几个数字排成一行,从右起,第一位是个位,个位上的数字是几,就表示几个一;第二位是十位,十位上的数字是几,就表示几个十;接着依次是百位、千位、万位……例如:十进制数3 721中的3表示3个千,7表示7个百,2表示2个十,1表示1个一.于是,我们得到下面的式子:3 721=3×103+7×102+2×101+1×100.与十进制类似,其他的进位制也可以按照位置原则计数.由于每一种进位制的基数不同,所用的数字个数也不同.如二进制用0和1两个数字,七进制用0~6七个数字.一般地,若k是一个大于1的整数,那么以k为基数的k进制数可以表示为一串数字连写在一起的形式a n a n-1…a1a0(k)(0<a n<k,0≤a n-1,…,a1,a0<k).其他进位制的数也可以表示成不同位上数字与基数的幂的乘积之和的形式,如110 011(2)=1×25+1×24+0×23+0×22+1×21+1×20,7 342(8)=7×83+3×82+4×81+2×80.非十进制数转换为十进制数比较简单,只要计算下面的式子值即可:a n a n-1…a1a0(k)=a n×k n+a n-1×k n-1+…+a1×k+a0.第一步:从左到右依次取出k进制数a n a n-1…a1a0(k)各位上的数字,乘以相应的k的幂,k的幂从n开始取值,每次递减1,递减到0,即a n×k n,a n-1×k n-1,…,a1×k,a0×k0;第二步:把所得到的乘积加起来,所得的结果就是相应的十进制数.(4)关于进位制的转换,教科书上以十进制和二进制之间的转换为例讲解,并推广到十进制和其他进制之间的转换.这样做的原因是,计算机是以二进制的形式进行存储和计算数据的,而一般我们传输给计算机的数据是十进制数据,因此计算机必须先将十进制数转换为二进制数,再处理,显然运算后首次得到的结果为二进制数,同时计算机又把运算结果由二进制数转换成十进制数输出.1°十进制数转换成非十进制数把十进制数转换为二进制数,教科书上提供了“除2取余法”,我们可以类比得到十进制数转换成k进制数的算法“除k 取余法”.2°非十进制之间的转换一个自然的想法是利用十进制作为桥梁.教科书上提供了一个二进制数据与16进制数据之间的互化的方法,也就是先由二进制数转化为十进制数,再由十进制数转化成为16进制数.应用示例思路1例1 把二进制数110 011(2)化为十进制数.解:110 011(2)=1×25+1×24+0×23+0×22+1×21+1×20=1×32+1×16+1×2+1=51.点评:先把二进制数写成不同位上数字与2的幂的乘积之和的形式,再按照十进制的运算规则计算出结果.变式训练设计一个算法,把k进制数a(共有n位)化为十进制数b.算法分析:从例1的计算过程可以看出,计算k进制数a的右数第i位数字a i与k i-1的乘积a i·k i-1,再将其累加,这是一个重复操作的步骤.所以,可以用循环结构来构造算法.算法步骤如下:第一步,输入a,k和n的值.第二步,将b的值初始化为0,i的值初始化为1.第三步,b=b+a i·k i-1,i=i+1.第四步,判断i>n是否成立.若是,则执行第五步;否则,返回第三步.第五步,输出b的值.程序框图如右图:程序:INPUT “a,k,n=”;a,k,nb=0i=1t=a MOD 10DOb=b+t*k^(i-1)a=a\\10t=a MOD 10i=i+1LOOP UNTIL i>nPRINT bEND例2 把89化为二进制数.解:根据二进制数“满二进一”的原则,可以用2连续去除89或所得商,然后取余数.具体计算方法如下:因为89=2×44+1,44=2×22+0,22=2×11+0,11=2×5+1,5=2×2+1,2=2×1+0,1=2×0+1,所以:89=2×(2×(2×(2×(2×2+1)+1)+0)+0)+1=2×(2×(2×(2×(22+1)+1)+0)+0)+1=…=1×26+0×25+1×24+1×23+0×22+0×21+1×20=1 011 001(2).这种算法叫做除2取余法,还可以用下面的除法算式表示:把上式中各步所得的余数从下到上排列,得到89=1 011 001(2).上述方法也可以推广为把十进制数化为k进制数的算法,称为除k取余法.变式训练设计一个程序,实现“除k取余法”.算法分析:从例2的计算过程可以看出如下的规律:若十制数a除以k所得商是q0,余数是r0,即a=k·q0+r0,则r0是a的k进制数的右数第1位数.若q0除以k所得的商是q1,余数是r1,即q0=k·q1+r1,则r1是a的k进制数的左数第2位数.……若q n-1除以k所得的商是0,余数是r n,即q n-1=r n,则r n是a的k进制数的左数第1位数.这样,我们可以得到算法步骤如下:第一步,给定十进制正整数a和转化后的数的基数k.第二步,求出a除以k所得的商q,余数r.第三步,把得到的余数依次从右到左排列.第四步,若q≠0,则a=q,返回第二步;否则,输出全部余数r排列得到的k进制数.程序框图如右图:程序:INPUT “a,k=”;a,kb=0i=0DOq=a\\kr=a MOD kb=b+r*10^ii=i+1a=qLOOP UNTIL q=0PRINT bEND思路2例1 将8进制数314 706(8)化为十进制数,并编写出一个实现算法的程序.解:314 706(8)=3×85+1×84+4×83+7×82+0×81+6×80=104 902.所以,化为十进制数是104 902.点评:利用把k进制数转化为十进制数的一般方法就可以把8进制数314 706(8)化为十进制数.例2 把十进制数89化为三进制数,并写出程序语句.解:具体的计算方法如下:89=3×29+2,29=3×9+2,9=3×3+0,3=3×1+0,1=3×0+1,所以:89(10)=10 022(3).点评:根据三进制数满三进一的原则,可以用3连续去除89及其所得的商,然后按倒序的顺序取出余数组成数据即可. 知能训练:将十进制数34转化为二进制数.分析:把一个十进制数转换成二进制数,用2反复去除这个十进制数,直到商为0,所得余数(从下往上读)就是所求.解:即34(10)=100 010(2)拓展提升把1 234(5)分别转化为十进制数和八进制数.解:1 234(5)=1×53+2×52+3×5+4=194.则1 234(5)=302(8)所以,1 234(5)=194=302(8)点评:本题主要考查进位制以及不同进位制数的互化.五进制数直接利用公式就可以转化为十进制数;五进制数和八进制数之间需要借助于十进制数来转化.课堂小结(1)理解算法与进位制的关系. (2)熟练掌握各种进位制之间转化.作业习题1.3A组3、4.设计感想计算机是以二进制的形式进行存储和计算数据的,而一般我们传输给计算机的数据是十进制数据,因此计算机必须先将十进制数转换为二进制数,再处理,显然运算后首次得到的结果为二进制数,同时,计算机又把运算结果由二进制数转换成十进制数输出.因此学好进位制是非常必要的,另外,进位制也是高考的重点,本节设置了多种题型供学生训练,所以这节课非常实用.。

案例2秦九韶算法

案例2秦九韶算法

并行化优化效果
通过实验验证,并行化实现的秦 九韶算法在处理大规模数值计算 问题时,能够显著提高计算速度, 减少计算时间。
算法的误差分析
误差来源
秦九韶算法中的误差主要来源于舍入误差和截断误差。舍 入误差是由于计算机浮点数的表示精度限制而引起的,截 断误差是由于近似计算而引起的。
误差传播
误差在秦九韶算法的计算过程中会累积和传播,对计算结 果的精度产生影响。误差传播的分析有助于了解算法的精 度损失情况。
扩展应用前景
随着科学计算和工程领域中大规模数值计算问题的不断涌现,秦九韶 算法的扩展应用前景广阔,具有重要的实际意义和价值。
05 秦九韶算法的未来发展与 展望
算法的进一步研究与完善
深入研究秦九韶算法 的数学原理,探索其 更广泛的应用场景。
结合现代计算机技术, 开发更高效的秦九韶 算法实现方式。
针对算法的缺陷和不 足,进行改进和优化, 提高算法的效率和准 确性。
算法在其他领域的应用探索
01
在数值分析、计算物理、工程优化等领域探索秦九 韶算法的应用可能性。
02
结合人工智能、机器学习等技术,将秦九韶算法应 用于数据分析和模式识别等领域。
03
探索秦九韶算法在金融、经济、社会科学等领域的 应用,为决策提供支持。
秦九韶算法对数学发展的影响
1
秦九韶算法的提出和发展,丰富了数学理论体系, 为后续数学研究提供了新的思路和方法。
秦九韶算法案例分析
contents
目录
• 秦九韶算法简介 • 秦九韶算法的原理 • 秦九韶算法案例展示 • 秦九韶算法的改进与优化 • 秦九韶算法的未来发展与展望
01 秦九韶算法简介
秦九韶算法的定义
秦九韶算法是一种用于计算多项式的 算法,它将多项式计算转化为一系列 的乘法和加法操作,从而提高了计算 的效率。

高中数学人教版必修三《1.3.2秦九韶算法》课件

高中数学人教版必修三《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.3算法案例2(秦九韶算法)

1.3算法案例2(秦九韶算法)

第二课时案例2 秦九韶算法(一)导入新课大家都喜欢吃苹果吧,我们吃苹果都是从外到里一口一口的吃,而虫子却是先钻到苹果里面从里到外一口一口的吃,由此看来处理同一个问题的方法多种多样.怎样求多项式f(x)=x5+x4+x3+x2+x+1当x=5时的值呢?方法也是多种多样的,今天我们开始学习秦九韶算法.(二)推进新课、新知探究、提出问题(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.3案例2秦九韶算法.ppt1

1.3案例2秦九韶算法.ppt1
若将的值代入变形后的式子,那么求值的计算过 程是怎样的?
思考:上述算法共做了几次乘法运算,几次加法运算?
我国南宋时期的数学家秦九韶(约1202-1261) 在它的著作《数书九章》中提出了下面的算法.
f (x) an xn an1xn1 L a1x a0 (an xn1 an1xn2 L a1)x a0
第二步:以较大的数减较小的数,接着把所得的差与较 小的数比较,并以大数减小数.继续这个操作,直到所得的 减数和差相等为止,则这个数(等数)或这个数与约简 的数的乘积就是所求的最大公约数。
二、更相减损术求最大公约数
1.求98与63的最大公约数
解:98 63 35 63 35 28 35 28 7
(2)从结果体现形式来看,辗转相除法体现结果 是以相除余数为0则得到,而更相减损术则以减数与 差相等而得到
案例2 秦九韶算法
问题: 设计求多项式f(x)=2x5-5x4-4x3+3x2-6x+7 当x=5时的值的算法,并写出程序.
X=5
f=2*x^5-5*x^4-4*x^3+3*x^2-6*x+7
否 a≠b? 是 r=a-b 是 r<b? 否
输出b
结束
b=r a=b
a=r
练习: 求两个正数184与72的最大公约数. 8
比较辗转相除法与更相减损术的区别
(1)都是求最大公约数的方法,计算上辗转相除 法以除法为主,更相减损术以减法为主,计算次数 上辗转相除法计算次数相对较少,特别当两个数字 大小区别较大时计算次数的区别较明显。
28 7 21
21 7 14
14 7 7
所以7就是98与63的最大公约数
2.用更相减损术求下列两数的最大公约数.

算法案例(2)秦九韶算法ppt

算法案例(2)秦九韶算法ppt

特点:通过一次式的反复计算,逐步得出高次多 项式的值,对于一个n次多项式,只需做n次乘法 和n次加法即可。
开始
程序框图:
输入f(x)的系数: a0,a1,a2,a3,a4a5
输入x0
v 0 a n v k v k 1 x a n k ( k 1,2, , n)
n=1
1、3 算 法 案 例
1、求两个数的最大公约数的两种方法分别是 ( )和( )。
2、两个数21672,8127的最大公约数是 ( A、2709 B、2606 C、2703 D、2706

案例2、秦九韶算法
秦九韶算法是求一元多项式的值的一种方法。
怎样求多项式f(x)=x5+x4+x3+x2+x+1当x=5时的值呢? 算法一:把5代入,计算各项的值,然后把它们加起来。
依次类推,即每一步的计算之后都赋予一个新值 vk,即从最内层的括号到最外层的括号的值依次 赋予变量v1,v2,…,vn.第n步所求值vn=vn-1x+a0 即为所求多项式的值。
例1、已知一个5次多项式为
f(x)=5x5+2x4+3.5x3-2.6x2+1.7x-0.8
用秦九韶算法求这个多项式当x=5时的值。
n3
n
x a n 1 x a n 2 x a 1 x a 0
第一步:计算最内层anx+an-1的值,将anx+an-1的 值赋给一个变量v1(为方便将an赋给变量v0);
第二步:计算(anx+an-1)x+an-2的值,可以改写 为v1x+an-2,将v1x+an-2的值赋给一个变量v2;

秦九韶算法2.ppt

秦九韶算法2.ppt
第五步:判断i是否大于或等于0,若是,则返回第 三步;否则,输出多项式的值v。
程序框图:
开始
输入n,an,x V=an
i=n-1
i>=0? N
输出v
结束
i=i-1
v=vx+ai
输入ai
Y
练习: 1、已知多项式f(x)=x5+5x4+10x3+10x2+5x+1 用秦九韶算法求这个多项式当x=-2时的值。
课堂小结:
1、秦九韶算法的方法和步骤 2、秦九韶算法的程序框图
2、已知多项式f(x)=2x4-6x3-5x2+4x-6 用秦九韶算法求这个多项式当x=5时的值。
秦九韶算法特点
通过一次是的反复计算,逐步得到 高次多项式,即将一个n次多项式的 求值问题,转化为计算n个一次多项式 (ani x ai )来实现,即 f (x) (...(an x an1)x an2 )x ...a1) a0
主要著作《数书九章》▪ 来自世界范围来看,秦九韶的《数书九章》
也不愧为世界数学名著。
▪ 所提出的一种多项式简化算法,在西方被 称作霍纳算法 ,但比霍纳算法要早500多 年。
返回预习
秦九韶
▪ 秦九韶(约公元1202年 -1261年),字道古,
南宋末年人,出生于鲁
郡(今山东曲阜一带人)。 我国古代数学家的杰出代 表之 一。
n次乘法 n次加法
vv0k
an vk 1x
ank (k
1, 2,
, n)
这是一个在秦九韶算法中 反复执行的步骤,如何循 环结构来实现?
例题 练习
例题1:
思考:你能设计程序把“秦九韶算法”表示出来吗?
(1)、算法步骤:
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

f(x)=2x6-5x5 +0×x4-4x3+3x2-6x+0
列表 2 -5 0 -4 3 -6 0
x=5
10 25 125 605 3040 15170
2 5 25 121 608 3034 15170
所以,当x=5时,多项式的值是15170.
注意:n次多项式有n+1项,因此缺少哪一项 应将其系数补0.
v2=v1x+an-2, v3=v2x+an-3, ……, vn=vn-1x+a0.
这样,求n次多项式f(x)的值就转化为求n个 一次多项式的值.这种算法称为秦九韶算法.
点评:秦九韶算法是求一元多项式的 值的一种方法.
它的特点是:把求一个n次多项式的值 转化为求n个一次多项式的值,通过这种转 化,把运算的次数由至多n(n+1)/2次乘法 运算和n次加法运算,减少为n次乘法运算 和n次加法运算,大大提高了运算效率.

程序
INPUT a0,a1,a2,a3,a4,a5
INPUT x0 n=1 v=a5 WHILE n<=5 v=vx0+a5-n n=n+1 WEND PRINT v END
结束
达标检测
1.已知f(x)=x5-4x4+2x2-5x+1,求f(3)的值. f(3)=-77
2.用秦九韶算法计算多项式 f(x)=3x6+4x5+5x4+6x3+7x2+8x+1当x=0.4时的值时,需要
时的值.
1397
5.利用秦九韶算法计算函数f(x)=x+2x2+3x3+4x4+5x5
的值时,需要做加法、乘法的次数分别为__4___、__5___.
课堂小结:
1、秦九韶算法的方法和步骤 2、秦九韶算法的程序框图
作业: P48 A组 2 预习 进位制
解法二:列表
原多项式 的系数
2 -5 -4 3 -6 7
x=5
10 25 105 540 2670
2 5 21 108 534 2677
所以,当x=5时,多项式的值是2677. 多项式
的值.
练一练:用秦九韶算法求多项式 f(x)=2x6-5x5-4x3+3x2-6x当x=5时的值.
解:原多项式先化为:
v1=anx+an-1,
v2=v1x+an-2,
v3=v2x+an-3, ……, vn=vn-1x+a0.
观察上述秦九韶算法中的n个一次式,可见 vk的计算要用到vk-1的值. 若令v0=an,得
v0=an,
vK=vK-1x+an-k(k=1,2,……,n
这是一个在秦九韶算法中反复执行的步 骤,因此可用循环结构来实现.
然后由内向外逐层计算一次多项式的值,即
v0=2
v1=v0x-5=2×5-5=5
v2=v1x-4=5×5-4=21
v3=v2x+3=21×5+3=108
v4=v3x-6=108×5-6=534 所以,当x=5时,多 v5=v4x+7=534×5+7=2677 项式的值是2677.
例1:用秦九韶算法求多项式 f(x)=2x5-5x4-4x3+3x2-6x+7当x=5时的值.
学习目标: 1、了解秦九韶算法的计算过程,并理解利用秦
九韶算法可以减少计算次数提高计算效率的实质。 2、模仿秦九韶计算方法,体会古人计算构思的
巧妙。
知识回顾
1、求两个数的最大公约数的两种方法分别是( )
和(
)。
2、两个数21672,8127的最大公约数是( )
A、2709 B、2606 C、2703 D、2706
[问题]画出程序框图,表示用秦九韶算法求5次多 项式f(x)=a5x5+a4x4+a3x3+a2x2+a1x+a0当x=x0 (x0是任意实数)时的值的过程,然后写出程序.
程序框图 开始
输入a0,a1,a2,a3,a4,a5 输入x0 n=1 v=a5
n≤5?

输出v
n=n+1
v=vx0+a5-n
做乘法和加法的次数分别是( A )
A.6,6 B.5,6 C.5,5 D.6,5
3.用秦九韶算法求多项式f(x)=x4-2x3+3x2-7x-5当x=4时的 值,给出如下数据:①0 ②2 ③11 ④37 ⑤143 其运算过
程中(包括最终结果)会出现的数有_②__③__④__⑤___(只填序号).
4.用秦九韶算法求多项式f(x)=8x7+5x6+3x4+2x+1当x=2
[问题3]能否探索更好的算法,来解决任意多项式的 求值问题? f(x)=2x5-5x4-4x3+3x2-6x+7 v0=2 =(2x4-5x3-4x2+3x-6)x+7 v1=v0x-5=2×5-5=5 =((2x3-5x2-4x+3)x-6)x+7 v2=v1x-4=5×5-4=21 =(((2x2-5x-4)x+3)x-6)x+7 v3=v2x+3=21×5+3=108 =((((2x-5)x-4)x+3)x-6)x+7 v4=v3x-6=108×5-6=534
[问题2]有没有更高效的算法?
分析:计算x的幂时,可以利用前面的计算结 果,以减少计算量,
即Байду номын сангаас计算x2,然后依次计算
x2 • x, (x2 • x) • x, ((x2 • x) • x) • x
的值. 这析计算上述多项式的值,一共需要9次乘 法运算,5次加法运算.
第二种做法与第一种做法相比,乘法的运 算次数减少了,因而能提高运算效率.而且对于 计算机来说,做一次乘法所需的运算时间比做一 次加法要长得多,因此第二种做法能更快地得到 结果.
一般地,对于一个n次多项式 f(x)=anxn+an-1xn-1+an-2xn-2+……+a1x+a0. 我们可以改写成如下形式:
f(x)=(…(anx+an-1)x+an-2)x+…+a1)x+a0. 求多项式的值时,首先计算最内层括号内一 次多项式的值,即 v1=anx+an-1,
然后由内向外逐层计算一次多项式的值,即
知识探究
阅读教材37页—39页内容,解决下列问题:
[问题1]设计求多项式f(x)=2x5-5x4-4x3+3x2-6x+7 当x=5时的值的算法,并写出程序.
程序
x=5 f=2*x^5-5*x^4-4*x^3+3*x^2-6*x+7 PRINT f END
点评:上述算法一共做了15次乘法运算,5次 加法运算.优点是简单,易懂;缺点是不通用,不能 解决任意多项多求值问题,而且计算效率不高.
v5=v4x+7=534×5+7=2677
所以,当x=5时,多项式的值是2677.
这种求多项式值的方法就叫秦九韶算法.
例1:用秦九韶算法求多项式 f(x)=2x5-5x4-4x3+3x2-6x+7当x=5时的值.
解法一:首先将原多项式改写成如下形式 : f(x)=((((2x-5)x-4)x+3)x-6)x+7
相关文档
最新文档