最新1.3.2算法案例(秦九韶算法)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用秦九韶算法求这个多项式当x = 5的值。 解:将多项式变形:
f ( x ) (5 x ( 2 ) ( x 3 ( . 5 ) x 2 . 6 ) x 1 . 7 ) x 0 . 8
按由里到外的顺序,依此计算一次多项式当x = 5时的值:
v0 5 v155227 v22 753.513 .58 v313 .5 8 52.668 .99 v468 .9 9 51.734.251 v534.25 51 0.817.2 255
第三步:输入i次项的系数ai
v1anxan1
第四步:v=vx+ai,i=i-1. 第五步:判断i是否大于或等于0,若是,
则返回第三步;否则,输出多项式的值v.
v2v1xan2
v 3 v2xan3
vnvn1xa0
程序框图
第一步:输入多项式次数n、最 高次项的系数an和x的值
第二步:将v的值初始化为an, 将i的值初始化为n-1
2、已知多项式f(x)=2x4-x3-2x2+3x-6 用秦九韶算法求这个多项式当x=2时的值。
此课件下载可自行编辑修改,仅供参考! 感谢您的支持,我们努力做得更好!谢谢
这种将求一个n次多项式f(x)的值转化成求n个一 次多项式的值的方法,称为秦九韶算法。
秦九韶算法的特点:
通过一次式的反复计算,逐步得出高次多项式的 值,对于一个n次多项式,只需做n次乘法和n次 加法即可。
例: 已知一个五次多项式为
f( x ) 5 x 5 2 x 4 3 .5 x 3 2 .6 x 2 1 .7 x 0 .8
=3125+625+125+25+5+1 = 3906
共做了1+2+3+4=10次乘法运算,5次加法运算。
算法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
=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
算法1:
因为f(x) =x5+x4+x3+x2+x+1 所以f(5)=55+54+53+52+5+1
第三步:输入i次项的系数ai
第四步:v=vx+ai,i=i-1. 第五步:判断i是否大于或等于 0,若是,则返回第三步;否则,输出 多项式的值v.
开始 输入n,an,x的值
v=an
i=n-1
i≥0?
N
输出v
结束
i=i-1 v=vx+ai 输入ai
Y
开始 输入n,an,x的值
v=an
i=n-1
i≥0?wk.baidu.com
(a n x n 1 a n 1 x n 2 a 1 )x a 0
(a n ( x n 2 a n 1 x 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
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
算法2:
= 3906
f(5)=55+54+53+52+5+1
f ( x ) ( ( a n x a n 1 ) x a n 2 ) x a 1 ) x a 0
要求多项式的值,应该先算最内层的一次多项式的值,即
v1anxan1
然后,由内到外逐层计算一次多项式的值,即
v2v1xan2 v3v2xan3
最后的一 项是什么?
vnvn1xa0
吗f?(x )a nxna n 1xn 1a 1xa 0
( (a nxa n 1)xa n 2)xa 1)xa 0
v v
0 k
an vk1 x
ank
算法步骤
(k 1, 2, , n)
第一步:输入多项式次数n、最高次项的系数an和x的值
第二步:将v的值初始化为an,将i的值初始化为n-1
共做了4次乘法运算,5次加法运算。
《数书九章》——秦九韶算法
设f (x) 是一个n 次的多项式 f(x ) a n x n a n 1 x n 1 a 1 x a 0
对该多项式按下面的方式进行改写:
f(x ) a n x n a n 1 x n 1 a 1 x a 0
这是怎样的 一种改写方 式?最后的 结果是什么?
N
输出v
结束
i=i-1 v=vx+ai 输入ai
Y
程序
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
练习: 1、已知多项式f(x)=x5+2x4+x3-3x2+5x+1 用秦九韶算法求这个多项式当x=2时的值。
所以,当x = 5时,多项式的值等于17255.2
另解:(秦九韶算法的另一种直观算法) 多项式的系数
+
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
多项式的值
思考:你能设计程序把“秦九韶算法”表示出来
f ( x ) (5 x ( 2 ) ( x 3 ( . 5 ) x 2 . 6 ) x 1 . 7 ) x 0 . 8
按由里到外的顺序,依此计算一次多项式当x = 5时的值:
v0 5 v155227 v22 753.513 .58 v313 .5 8 52.668 .99 v468 .9 9 51.734.251 v534.25 51 0.817.2 255
第三步:输入i次项的系数ai
v1anxan1
第四步:v=vx+ai,i=i-1. 第五步:判断i是否大于或等于0,若是,
则返回第三步;否则,输出多项式的值v.
v2v1xan2
v 3 v2xan3
vnvn1xa0
程序框图
第一步:输入多项式次数n、最 高次项的系数an和x的值
第二步:将v的值初始化为an, 将i的值初始化为n-1
2、已知多项式f(x)=2x4-x3-2x2+3x-6 用秦九韶算法求这个多项式当x=2时的值。
此课件下载可自行编辑修改,仅供参考! 感谢您的支持,我们努力做得更好!谢谢
这种将求一个n次多项式f(x)的值转化成求n个一 次多项式的值的方法,称为秦九韶算法。
秦九韶算法的特点:
通过一次式的反复计算,逐步得出高次多项式的 值,对于一个n次多项式,只需做n次乘法和n次 加法即可。
例: 已知一个五次多项式为
f( x ) 5 x 5 2 x 4 3 .5 x 3 2 .6 x 2 1 .7 x 0 .8
=3125+625+125+25+5+1 = 3906
共做了1+2+3+4=10次乘法运算,5次加法运算。
算法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
=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
算法1:
因为f(x) =x5+x4+x3+x2+x+1 所以f(5)=55+54+53+52+5+1
第三步:输入i次项的系数ai
第四步:v=vx+ai,i=i-1. 第五步:判断i是否大于或等于 0,若是,则返回第三步;否则,输出 多项式的值v.
开始 输入n,an,x的值
v=an
i=n-1
i≥0?
N
输出v
结束
i=i-1 v=vx+ai 输入ai
Y
开始 输入n,an,x的值
v=an
i=n-1
i≥0?wk.baidu.com
(a n x n 1 a n 1 x n 2 a 1 )x a 0
(a n ( x n 2 a n 1 x 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
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
算法2:
= 3906
f(5)=55+54+53+52+5+1
f ( x ) ( ( a n x a n 1 ) x a n 2 ) x a 1 ) x a 0
要求多项式的值,应该先算最内层的一次多项式的值,即
v1anxan1
然后,由内到外逐层计算一次多项式的值,即
v2v1xan2 v3v2xan3
最后的一 项是什么?
vnvn1xa0
吗f?(x )a nxna n 1xn 1a 1xa 0
( (a nxa n 1)xa n 2)xa 1)xa 0
v v
0 k
an vk1 x
ank
算法步骤
(k 1, 2, , n)
第一步:输入多项式次数n、最高次项的系数an和x的值
第二步:将v的值初始化为an,将i的值初始化为n-1
共做了4次乘法运算,5次加法运算。
《数书九章》——秦九韶算法
设f (x) 是一个n 次的多项式 f(x ) a n x n a n 1 x n 1 a 1 x a 0
对该多项式按下面的方式进行改写:
f(x ) a n x n a n 1 x n 1 a 1 x a 0
这是怎样的 一种改写方 式?最后的 结果是什么?
N
输出v
结束
i=i-1 v=vx+ai 输入ai
Y
程序
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
练习: 1、已知多项式f(x)=x5+2x4+x3-3x2+5x+1 用秦九韶算法求这个多项式当x=2时的值。
所以,当x = 5时,多项式的值等于17255.2
另解:(秦九韶算法的另一种直观算法) 多项式的系数
+
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
多项式的值
思考:你能设计程序把“秦九韶算法”表示出来