(
课件网) 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)对迭代过程进行控制,这是编写迭代程序必须考虑的问题, 不能让迭代过程无休止地 ... ...