4.2 数值计算(第2课时)课件(共20张PPT)-2023—2024学年高中信息技术教科版(2019)必修1

资源下载
  1. 二一教育资源

4.2 数值计算(第2课时)课件(共20张PPT)-2023—2024学年高中信息技术教科版(2019)必修1

资源简介

(共20张PPT)
4.2 数值计算
高中信息技术 必修1 数据与计算
第二课时 求解斐波那契数列
第4单元 计算与问题解决
学习目标
感受数据的图形化表示。
设计解析式或迭代方程,进行数值计算,解决问题。
了解数值类算法在实际问题解决时的应用及常用方法。
4.2 数值计算
项目内容
人们对计算机的最初应用大多是数值计算,主要借助计算机运算速度快,精确度高的特点来解决各种数学问题,如函数计算、方程的求解、数列求和等都属于数值计算。
借助计算机程序,可以解决很多数学方法所描绘的数值计算问题。本节我们将围绕“与数学公式面对面”项目探讨在中学数学领域中常见的数学公式与程序设计的有趣结合。
项目任务:
任务一 绘制数学函数曲线
任务二 求解斐波那契数列
本节任务
4.2 数值计算
任务:求解斐波那契数列
4.2 数值计算
活动1 用WPS求解数列
数学家斐波那契在《计算之书》中提出了一个有趣的兔子问题:
假设一对兔子每个月可以生一对小兔子,一对兔子出生后第2个月就开始生小兔子。则一对兔子一年内能繁殖成多少对?10年呢?
根据描述,
兔子的对数如图所示:
任务:求解斐波那契数列
4.2 数值计算
活动1 用WPS求解数列
分析 从第3个月开始,每个月大兔子的对数等于上个月大兔子与小兔子的对数之和(即上个月兔子总对数),每个月小兔子的对数等于上个月大兔子的对数(即上个月兔子总对数)。
使用电子表格可以很方便的求解:
上机实践1
任务:求解斐波那契数列
4.2 数值计算
活动1 用WPS求解数列
分析 从第3个月开始,每个月大兔子的对数等于上个月大兔子与小兔子的对数之和(即上个月兔子总对数),每个月小兔子的对数等于上个月大兔子的对数(即上个月兔子总对数)。
我们发现,当计算到第74个月的时候,由于数据范围及表示精度的问题,导致结果出错:
任务:求解斐波那契数列
4.2 数值计算
活动1 用WPS求解数列
分析 从第3个月开始,每个月大兔子的对数等于上个月大兔子与小兔子的对数之和(即上个月兔子总对数),每个月小兔子的对数等于上个月大兔子的对数(即上个月兔子总对数)。
借助电子表格软件计算时,只能算到第74个月,而我们需要计算10年即第120个月的兔子数量。
下面,我们借助python语言进行求解。
知识探究——迭代法
第1个月和第2个月的兔子对数之和为第3个月的兔子对数
第2个月和第3个月的兔子对数之和为笫4个月的兔子对数
……
第118个月和第119个月的兔子对数之和为第120个月的兔子对数
每个月的兔子对数是前两个月的兔子对数之和, 又同时作为下一个月兔子对数的加数。这种重复反馈的过程称为迭代。
第n-2个月
第n-1个月
第n个月
第n-1个月
第n个月
第n+1个月
知识探究——迭代法
迭代法也称辗转法,是用计算机解决问题的一种基本方法。迭代通常是为了接近并到达所需的目标或结果。每一次对过程的重复被称为一次"迭代”,而每一次迭代得到的结果会被用来作为下一次迭代的初始值。
由于在迭代系列中的每个月份兔子对数只跟前两个月有关,因此在编写程序时,只需两个变量f1记录上上个月的数据,用f2记录上个月的数据。
f1
f2
F1+f2



迭代计算的示意图
任务:求解斐波那契数列
4.2 数值计算
活动2 用Python求解数列
def fib(n):
#迭代求Fibonacci数列
f2=f1=1
for i in range(3,n+1):
f1,f2=f2,f1+f2
return f2
n=int(input('输入需要计算的月份数:'))
print('兔子总对数为:',fib(n))
input("运行完毕,请按回车键退出...")
上机实践2
知识探究——迭代法
有三个关键步骤:
(1)确定迭代变量,如活动2中的fl、f2;
(2)建立迭代关系式;
(3)对迭代过程进行控制,这是编写迭代程序必须考虑的问题, 不能让迭代过程无休止地重复执行下去。
利用迭代算法解决问题的步骤
拓展练习
尝试用辗转相除法求解两个正整数的最大公约数。
辗转相除法:用较大数除以较小数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。如果是求两个数的最大公约数,那么最后的除数就是这两个数的最大公约数。
拓展练习
尝试用辗转相除法求解两个正整数的最大公约数。
step1: 将两数中大的那个数放在m中,小的放在n中。
step2: 求出m被n除后的余数r。
step3: 若余数为0则执行步骤(7),否则执行步骤(4)。
step4: 把除数作为新的被除数;把余数作为新的除数。
step5: 求出新的余数r。
step6: 重复步骤(3)到(5)。
step7: 输出n,n即为最大公约数。
拓展练习
尝试用辗转相除法求解两个正整数的最大公约数。
num1=int(input('请输入第一个正整数:'))
num2=int(input('请输入第二个正整数:'))
m=max(num1,num2)
n=min(num1,num2)
r=m % n
while r!=0:
m=n
n=r
r=m % n
print('这两个数的最大公约数为:',n)
input("运行完毕,请按回车键退出...")
上机实践3
课堂测试
选择题
通常是为了接近并达到所需的目标或结果,对过程进行重复,每一次重复得到的结果会被用来作为下一次的初始值。这种用计算机解决问题的一种基本方法是( )。
A.迭代法 B.查找法
C.分析法 D.排序法
课堂小结
现代自然科学和工程电子技术的研究过程中,都离不开大规模的数学计算问题。如:数学类课程中的线性方程求解、微分方程求解、概率统计等;实用性和实验性技术应用中的模拟核试验、油田开发、飞机设计等。
理解斐波那契数列。
理解迭代法。
拓展知识
拓展知识
编程求解一元多次方程
用牛顿迭代法求解x5+x4+x-3=0
1.选取x1=0作为方程的初始解(x0应选取在解附近,这个可以通过观察函数图像得到);2.新解 ,其中f(x1)= x15+x14+x1-3,f'(x1)=5*x14+4*x13+1;
3.如果|x1-x2|<1e-10,则解为x2,否则x1=x2,跳转到(2)。
拓展知识
练习:利用牛顿迭代法求解方程x5+x4+x-3=0。def f(x): #定义f(x)函数,计算f(x)=x**5+x**4+x-3 f=x**5+x**4+x-3 return fdef f1(x): #定义f1(x)函数,计算f'(x)= 5*x**4+4*x**3+1 f1=5*(x**4)+4*(x**3)+1 return f1x1=0.5 #x1,x2的初值只要确保|x1-x2|>1e-10就可以x2=1.5 #解系列初值print('迭代过程中的x值:')#根据迭代公式计算while abs(x1-x2)>1e-10: print(x2) x1=x2 x2=x1-f(x1)/f1(x1)print('近似解:',x1) #输出最后解input("运行完毕,请按回车键退出...")
运行结果迭代过程中的x值:1.51.21978021978021991.0576440726974761.0048987207330281.00003812464892941.00000000232545361.0近似解:1.0运行完毕,请按回车键退出...
感谢观看
学无止境 永攀高峰

展开更多......

收起↑

资源预览