资源简介 (共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记录上个月的数据。f1f2F1+f2③①②迭代计算的示意图任务:求解斐波那契数列4.2 数值计算活动2 用Python求解数列def fib(n):#迭代求Fibonacci数列f2=f1=1for i in range(3,n+1):f1,f2=f2,f1+f2return f2n=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 % nwhile r!=0:m=nn=rr=m % nprint('这两个数的最大公约数为:',n)input("运行完毕,请按回车键退出...")上机实践3课堂测试选择题通常是为了接近并达到所需的目标或结果,对过程进行重复,每一次重复得到的结果会被用来作为下一次的初始值。这种用计算机解决问题的一种基本方法是( )。A.迭代法 B.查找法C.分析法 D.排序法课堂小结现代自然科学和工程电子技术的研究过程中,都离不开大规模的数学计算问题。如:数学类课程中的线性方程求解、微分方程求解、概率统计等;实用性和实验性技术应用中的模拟核试验、油田开发、飞机设计等。理解斐波那契数列。理解迭代法。拓展知识拓展知识编程求解一元多次方程用牛顿迭代法求解x5+x4+x-3=01.选取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运行完毕,请按回车键退出...感谢观看学无止境 永攀高峰 展开更多...... 收起↑ 资源预览