高中数学《13算法案例》教案2新人教A版必修3文档格式.docx
- 文档编号:13537112
- 上传时间:2022-10-11
- 格式:DOCX
- 页数:13
- 大小:64.18KB
高中数学《13算法案例》教案2新人教A版必修3文档格式.docx
《高中数学《13算法案例》教案2新人教A版必修3文档格式.docx》由会员分享,可在线阅读,更多相关《高中数学《13算法案例》教案2新人教A版必修3文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
第二种做法与第一种做法相比,乘法的运算次数减少了,因而能够提高运算效率,对于计算机来说,做一次乘法运算所用的时间比做一次加法运算要长得多,所以采用第二种做法,计算机能更快地得到结果.
(2)上面问题有没有更有效的算法呢?
我国南宋时期的数学家秦九韶(约1202~1261)在他的著作《数书九章》中提出了下面的算法:
把一个n次多项式f(x)=anxn+an-1xn-1+…+a1x+a0改写成如下形式:
f(x)=anxn+an-1xn-1+…+a1x+a0
=(anxn-1+an-1xn-2+…+a1)x+a0
=((anxn-2+an-1xn-3+…+a2)x+a1)x+a0
=…
=(…((anx+an-1)x+an-2)x+…+a1)x+a0.
求多项式的值时,首先计算最内层括号内一次多项式的值,即
v1=anx+an-1,
然后由内向外逐层计算一次多项式的值,即
v2=v1x+an-2,
v3=v2x+an-3,
…
vn=vn-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=3451.2;
v5=3415.2×
5-0.8=17255.2;
所以,当x=5时,多项式的值等于17255.2.
算法分析:
观察上述秦九韶算法中的n个一次式,可见vk的计算要用到vk-1的值,若令v0=an,我们可以得到下面的公式:
这是一个在秦九韶算法中反复执行的步骤,因此可用循环结构来实现.
算法步骤如下:
第一步,输入多项式次数n、最高次的系数an和x的值.
第二步,将v的值初始化为an,将i的值初始化为n-1.
第三步,输入i次项的系数ai.
第四步,v=vx+ai,i=i-1.
第五步,判断i是否大于或等于0.若是,则返回第三步;
否则,输出多项式的值v.
程序框图如下图:
程序:
INPUT“n=”;
n
INPUT“an=”;
a
INPUT“x=”;
x
v=a
i=n-1
WHILEi>=0
PRINT“i=”;
i
INPUT“ai=”;
v=v*x+a
i=i-1
WEND
PRINTv
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次多项式Pn(x)=a0xn+a1xn-1+…+an-1x+an,如果在一种算法中,计算(k=2,3,4,…,n)的值需要k-1次乘法,计算P3(x0)的值共需要9次运算(6次乘法,3次加法),那么计算P10(x0)的值共需要__________次运算.下面给出一种减少运算次数的算法:
P0(x)=a0,Pk+1(x)=xPk(x)+ak+1(k=0,1,2,…,n-1).利用该算法,计算P3(x0)的值共需要6次运算,计算P10(x0)的值共需要___________次运算.
答案:
6520
秦九韶算法适用一般的多项式f(x)=anxn+an-1xn-1+…+a1x+a0的求值问题.直接法乘法运算的次数最多可到达,加法最多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.
计算的过程可以列表表示为:
最后的系数2677即为所求的值.
算法过程:
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=2677.
如果多项式函数中有缺项的话,要以系数为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;
3+5=86;
v3=86×
3+4=262;
v4=262×
3+3=789;
v5=789×
3+2=2369;
v6=2369×
3+1=7108;
v7=7108×
3+0=21324.
∴f(3)=21324.
课堂小结
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)算法的种类虽多,但三种逻辑结构可以有效地表达各种算法等等.
2019-2020年高中数学《1.3算法案例》教案3新人教A版必修3
情境导入
在日常生活中,我们最熟悉、最常用的是十进制,据说这与古人曾以手指计数有关,爱好天文学的古人也曾经采用七进制、十二进制、六十进制,至今我们仍然使用一周七天、一年十二个月、一小时六十分的历法.今天我们来学习一下进位制.
(1)你都了解哪些进位制?
(2)举出常见的进位制.
(3)思考非十进制数转换为十进制数的转化方法.
(4)思考十进制数转换成非十进制数及非十进制之间的转换方法.
活动:
先让学生思考或讨论后再回答,经教师提示、点拨,对回答正确的学生及时表扬,对回答不准确的学生提示引导考虑问题的思路.
(1)进位制是人们为了计数和运算方便而约定的计数系统,约定满二进一,就是二进制;
满十进一,就是十进制;
满十二进一,就是十二进制;
满六十进一,就是六十进制等等.也就是说:
“满几进一”就是几进制,几进制的基数(都是大于1的整数)就是几.
(2)在日常生活中,我们最熟悉、最常用的是十进制,据说这与古人曾以手指计数有关,爱好天文学的古人也曾经采用七进制、十二进制、六十进制,至今我们仍然使用一周七天、一年十二个月、一小时六十分的历法.
(3)十进制使用0~9十个数字.计数时,几个数字排成一行,从右起,第一位是个位,个位上的数字是几,就表示几个一;
第二位是十位,十位上的数字是几,就表示几个十;
接着依次是百位、千位、万位……
例如:
十进制数3721中的3表示3个千,7表示7个百,2表示2个十,1表示1个一.于是,我们得到下面的式子:
3721=3×
103+7×
102+2×
101+1×
100.
与十进制类似,其他的进位制也可以按照位置原则计数.由于每一种进位制的基数不同,所用的数字个数也不同.如二进制用0和1两个数字,七进制用0~6七个数字.
一般地,若k是一个大于1的整数,那么以k为基数的k进制数可以表示为一串数字连写在一起的形式
anan-1…a1a0(k)(0<an<k,0≤an-1,…,a1,a0<k).
其他进位制的数也可以表示成不同位上数字与基数的幂的乘积之和的形式,如
110011
(2)=1×
25+1×
24+0×
23+0×
22+1×
21+1×
20,
7342(8)=7×
83+3×
82+4×
81+2×
80.
非十进制数转换为十进制数比较简单,只要计算下面的式子值即可:
anan-1…a1a0(k)=an×
kn+an-1×
kn-1+…+a1×
k+a0.
第一步:
从左到右依次取出k进制数anan-1…a1a0(k)各位上的数字,乘以相应的k的幂,k的幂从n开
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 13算法案例 高中数学 13 算法 案例 教案 新人 必修