秦九韶算法介绍和实例分析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
=5×(5×(5×(5 ×(5 +1) +1 )+1)+1) +1
算法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(5)=55+54+53+52+5+1
f (x) an xn an1xn1 a1x a0
对该多项式按下面的方式进行改写:
f (x) an xn an1xn1 a1x a0
(an xn1 an1xn2 a1)x a0
这是怎样的 一种改写方 式?最后的 结果是什么?
((an xn2 an1xn3 a2 )x a1)x a0
v4 689.95 1.7 3451.2 v5 3451.25 0.8 17255.2
你从中看到了 怎样的规律? 怎么用程序框 图来描述呢?
所以,当x = 5时,多项式的值等于17255.2
程序框图:
开始
输入f(x)的系数: a0,a1,a2,a3,a4a5
输入x0
v0
a n
n=1
vk
v x a (k
算法案例
第二课时
复习引入:
1、求两个数的最大公约数的两种方法分别是 ( )和( )。
2、两个数21672,8127的最大公约数是 ( ) A、2709 B、2606 C、2703 D、2706
新课讲解:
怎样求多项式f(x)=x5+x4+x3+x2+x+1当x=5时的值呢?
计算多项式f(x) =x5+x4+x3+x2+x+1
练习: 1、已知多项式f(x)=x5+5x4+10x3+10x2+5x+1 用秦九韶算法求这个多项式当x=-2时的值。
2、已知多项式f(x)=2x4-6x3-5x2+4x-6 用秦九韶算法求这个多项式当x=5时的值。
课堂小结:
1、秦九韶算法的方法和步骤 2、秦九韶算法的程序框图
多项式的值
思考:你能设计程序把“秦九韶算法”表示出来
吗?
(1)、算法步骤:
第一步:输入多项式次数n、最高次项的系数an和x 的值. 第二步:将v的值初始化为an,将i的值初始化为n-1.
第三步:输入i次项的系数an.
第四步:v=vx+ai, i=i-1.
第五步:判断i是否大于或等于0,若是,则返回第 三步;否则,输出多项式的值v。
=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
共做了4次乘法运算,5次加法运算。
《数书九章》——秦九韶算法
设f (x) 是一个n 次的多项式
( (an x an1)x an2 )x a1)x a0
f (x) ( (an x an1)x an2 )x a1)x a0
要求多项式的值,应该先算最内层的一次多项式的值,即
然后,由内到外逐v层1 计a算n x一次an多1项式的值,即
v2 v1x an2 v3 v2 x an3
用秦九韶算法求这个多项式当x = 5的值。 解:将多项式变形:
f (x) ((((5x 2)x 3.5)x 2.6)x 1.7)x 0.8
按由里到外的顺序,依此计算一次多项式当x = 5时的值:
v0 5
v1 55 2 27 v2 275 3.5 138.5 v3 138.55 2.6 689.9
(2)程序框图:
开始
输入n,an,x V=an
i=n-1
i>=0? N
输出v 结束
i=i-1
v=vx+ai
输入ai
Y
(3)程序:
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
k 1
nk
1,2,
, n)
v=a5
这是一个在秦九韶算法中 反复执行的步骤,因此可 用循环结构来实现。
n≤5?
Y
输出v
n=n+1 v=vx0+a5-n百度文库N
结束
另解:(秦九韶算法的另一种直观算法)多项式的系数
+
X5
5 2 3.5 -2.6 1.7 -0.8 0 25 135 692.5 3449.5 17256 5 27 138.5 689.9 3451.2 17255.2
当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
算法2:
= 3906
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
vn vn1x a0
最后的一 项是什么?
这种将求一个n次多项式f(x)的值转化成求n个一 次多项式的值的方法,称为秦九韶算法。
秦九韶算法的特点:
通过一次式的反复计算,逐步得出高次多 项式的值,对于一个n次多项式,只需做n次乘 法和n次加法即可。
例: 已知一个五次多项式为
f (x) 5x5 2x4 3.5x3 2.6x2 1.7x 0.8