必修3课件1.3.1-2算法案例(二)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
v2 27 5 3.5 138.5 v0 5 v1 5 5 2 27 v4 689.9 5 1.7 3451.2 v3 138.5 5 2.6 689.9 v5 3451.2 5 0.8 17255.2 所以,x = f(5)=时17255.2
f ( x ) ( (an x an1 ) x an 2 ) x a1 ) x a0
要求多项式的值,应该先算最内层的一次多项式的值,即 v1 an x an1 n次乘法运算 n次加法运算 然后,由内到外逐层计算一次多项式的值,即 这是一个在秦 九韶算法中反 复执行的步骤, 因此可用循环 结构来实现.
v2 v1 x an 2 v 3 v 2 x an 3
v0 an v k v k 1 x a n k ( k 1, 2, , n)
vn vn1 x a0
这种将求一个n次多项式f(x)的值转化成求n个一次 多项式的值的方法,称为秦九韶算法
vn vn1 x a0
开始
程序框图
第一步:输入多项式次数n、最 高次项的系数an和x的值
输入n,an,x的值
v=an
i=n-1 i=i-1 v=vx+ai i≥0?
N Y
第二步:将v的值初始化为an, 将i的值初始化为n-1
第三步:输入i次项的系数ai
第四步:v=vx+ai,i=i-1.
v=an
i=n-1 i=i-1 v=vx+ai i≥0?
N Y
输入ai
输出v
结束
例2 已知一个五次多项式为
f ( x ) 5 x 5 2 x 4 3.5 x 3 2.6 x 2 1.7 x 0.8
用秦九韶算法求这个多项式当x = 5的值. 解: 将多项式变形: f ( x ) ((((5 x 2) x 3.5) x 2.6) x 1.7) x 0.8 按由里到外的顺序,依此计算一次多项式当x = 5时的值:
§1.3.1-2算法案例(二)
学习目标
1.理解并掌握秦九韶算法的计算过程,了解利用秦 九韶算法可以减少计算次数提高效率的实质. 2.通过秦九韶算法,进一步算法的基本思想,了解其 算法程序框图和程序. 3.理解数学算法与计算机算法的区别,理解计算机 对数学的辅助作用. 4.通过对秦九韶算法的学习,了解中国古代数学家 对数学的贡献,认识中国文化历史的悠久.
复习
1、求两个数的最大公约数的两种方法分别是( ( ).
)和
2、两个数21672,8127的最大公约数是( A、2709 B、2606 C、2703
)
D、2706
问题
怎样求多项式f(x)=x5+x4+x3+x2+x+1当x=5时的值?
算法1 f(5)=55+54+53+52+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 共做了4次乘法运算,5次加法运算. 秦九韶算法
f ( x ) an x n an1 x n1 a1 x a0 ( (an x an1 ) x an 2 ) x a1 ) x a0
算法步骤
v0 an v k v k 1 x a n k ( k 1, 2, , n)
第一步:输入多项式次数n、最高次项的系数an和x的值 第二步:将v的值初始化为an,将i的值初始化为n-1 第三步:输入i次项的系数ai v1 an x an1 第四步:v=vx+ai,i=i-1. v2 v1 x an 2 第五步:判断i是否大于或等于0,若是, v3 v2 x an 3 则返回第三步;否则,输出多项式的值v.
新课
《数书九章》——秦九韶算法
n( n 1) 次乘法运算 2
设 f (x) 是一个n 次的多项式
f ( x ) an x n an1 x n1 a1 x a0
n次加法运算
对该多项式按下面的方式进行改写
f ( x ) an x n an1 x n1 a1 x a0 (an x n1 an1 x n 2 a1 ) x a0 ((an x n 2 an1 x n 3 a2 ) x a1 ) x a0 ( (an x an1 ) x an 2 ) x a1 ) x a0
第五步:判断i是否大于或等于 0,若是,则返回第三步;否则,输 出多项式的值v.
输入ai
输出v
பைடு நூலகம்
结束
开始
输入n,an,x的值
程序
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 x=5
2 25
3.5
-2.6
1.7
-0.8 17256
135 692.5 3449.5
27 136.5 689.9 3451.2 17255.2
f ( x ) ( (an x an1 ) x an 2 ) x a1 ) x a0
要求多项式的值,应该先算最内层的一次多项式的值,即 v1 an x an1 n次乘法运算 n次加法运算 然后,由内到外逐层计算一次多项式的值,即 这是一个在秦 九韶算法中反 复执行的步骤, 因此可用循环 结构来实现.
v2 v1 x an 2 v 3 v 2 x an 3
v0 an v k v k 1 x a n k ( k 1, 2, , n)
vn vn1 x a0
这种将求一个n次多项式f(x)的值转化成求n个一次 多项式的值的方法,称为秦九韶算法
vn vn1 x a0
开始
程序框图
第一步:输入多项式次数n、最 高次项的系数an和x的值
输入n,an,x的值
v=an
i=n-1 i=i-1 v=vx+ai i≥0?
N Y
第二步:将v的值初始化为an, 将i的值初始化为n-1
第三步:输入i次项的系数ai
第四步:v=vx+ai,i=i-1.
v=an
i=n-1 i=i-1 v=vx+ai i≥0?
N Y
输入ai
输出v
结束
例2 已知一个五次多项式为
f ( x ) 5 x 5 2 x 4 3.5 x 3 2.6 x 2 1.7 x 0.8
用秦九韶算法求这个多项式当x = 5的值. 解: 将多项式变形: f ( x ) ((((5 x 2) x 3.5) x 2.6) x 1.7) x 0.8 按由里到外的顺序,依此计算一次多项式当x = 5时的值:
§1.3.1-2算法案例(二)
学习目标
1.理解并掌握秦九韶算法的计算过程,了解利用秦 九韶算法可以减少计算次数提高效率的实质. 2.通过秦九韶算法,进一步算法的基本思想,了解其 算法程序框图和程序. 3.理解数学算法与计算机算法的区别,理解计算机 对数学的辅助作用. 4.通过对秦九韶算法的学习,了解中国古代数学家 对数学的贡献,认识中国文化历史的悠久.
复习
1、求两个数的最大公约数的两种方法分别是( ( ).
)和
2、两个数21672,8127的最大公约数是( A、2709 B、2606 C、2703
)
D、2706
问题
怎样求多项式f(x)=x5+x4+x3+x2+x+1当x=5时的值?
算法1 f(5)=55+54+53+52+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 共做了4次乘法运算,5次加法运算. 秦九韶算法
f ( x ) an x n an1 x n1 a1 x a0 ( (an x an1 ) x an 2 ) x a1 ) x a0
算法步骤
v0 an v k v k 1 x a n k ( k 1, 2, , n)
第一步:输入多项式次数n、最高次项的系数an和x的值 第二步:将v的值初始化为an,将i的值初始化为n-1 第三步:输入i次项的系数ai v1 an x an1 第四步:v=vx+ai,i=i-1. v2 v1 x an 2 第五步:判断i是否大于或等于0,若是, v3 v2 x an 3 则返回第三步;否则,输出多项式的值v.
新课
《数书九章》——秦九韶算法
n( n 1) 次乘法运算 2
设 f (x) 是一个n 次的多项式
f ( x ) an x n an1 x n1 a1 x a0
n次加法运算
对该多项式按下面的方式进行改写
f ( x ) an x n an1 x n1 a1 x a0 (an x n1 an1 x n 2 a1 ) x a0 ((an x n 2 an1 x n 3 a2 ) x a1 ) x a0 ( (an x an1 ) x an 2 ) x a1 ) x a0
第五步:判断i是否大于或等于 0,若是,则返回第三步;否则,输 出多项式的值v.
输入ai
输出v
பைடு நூலகம்
结束
开始
输入n,an,x的值
程序
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 x=5
2 25
3.5
-2.6
1.7
-0.8 17256
135 692.5 3449.5
27 136.5 689.9 3451.2 17255.2