1、4.2数值计算数据与计算必修一 了解迭代法的含义,并尝试用牛顿迭代法解决实际问题。了解数值类算法在实际问题解决时的常用方法,如解析法和迭代法【导】【导】兔子问题兔子问题斐波那契在计算之书中提出了一个有趣的兔子问题:假设一对兔子每个月可以生一对小兔子,一对兔子出生后第2个月就开始生小兔子。则一对兔子一年内能繁殖成多少对?10个月呢?n个月呢?【导】【导】兔子问题兔子问题 【展】【展】兔子问题兔子问题:小兔子:大兔子 【点】【点】兔子问题兔子问题从第3个月起:每个月大兔子的对数=上个月大兔子与小兔子的对数之和(上个月兔子总对数)每个月小兔子的对数=上个月大兔子的对数(上上个月兔子总对数)【点】【点
2、】兔子问题兔子问题从第3个月起每个月兔子的总对数=上个月兔子总对数+上上个月兔子总对数斐波那契数列1,1,2,3,5,8,13,21,34,55,.斐波那契数列斐波那契数列与黄金分割比斐波那契数列与黄金分割比【学】斐波那契数列【学】斐波那契数列WPSWPS表格法表格法打开文件:求解斐波那契数列.xlsxB11=B9+B10【展、点】【展、点】斐波那契数列斐波那契数列WPSWPS表格法表格法【学】斐波那契数列【学】斐波那契数列PythonPython求解法求解法def fib(n):f2=f1=_ for i in range(3,_):f1=_ f2=_ return _n=int(input
3、(输入需要计算的月份数:)print(兔子总对数为:,fib(n)input(运行完毕,请按回车键退出.)1n+1f2f1+f2f2f1,f2=f2,f1+f2【点】迭代法【点】迭代法第1个月和第2个月的兔子的对数之和为第3个月的兔子对数第2个月和第3个月的兔子对数之和为第4个月的兔子对数每个月的兔子对数是前两个月的兔子对数之和,又同时作为下一个月兔子对数的加数。这种重复反馈这种重复反馈的过程称为迭代。的过程称为迭代。迭代计算关系图:迭代计算关系图:【点】迭代法【点】迭代法迭代法也称辗转法,是用计算机解决问题的一种基本方法。累加、累乘都是迭代算法的基础应用。迭代法(辗转法)是一种不断用变量的旧
4、值递推出新值的解决问题的方法。每一次对过程的重复被称为一次迭代,而每一次迭代得到的结果会被用来作为下一次迭代的初始值。【点】迭代法【点】迭代法确定迭代变量确定迭代变量建立迭代关系式建立迭代关系式对迭代过程进行控制对迭代过程进行控制利用迭代法来解决问题,有三个关键的步骤:利用迭代法来解决问题,有三个关键的步骤:【练】【练】尝试用尝试用pythonpython绘制绘制y=xy=x2 2-2x+1-2x+1的图像的图像import numpy as np#加载numpy模块并取名为npimport matplotlib.pyplot as plt#加载matplotlib.pyplot并取名为plt
5、x=np.arange(_)#x在-10到10之间,每隔0.01取一个点y=x*2-2*x+1#求x*2-2x+1对应的y1值plt.plot(x,y)#绘制图像plt.title(y=x*2-2*x+1)#设置图像标题plt.xlabel(X)#设置X轴标题plt.ylabel(Y)#设置Y轴标题 plt.show()#将绘制的函数图像窗口显示出来input(运行完毕,请按回车键退出.)-10,10,0.01【练】【练】尝试用辗转相除法求解两个正整数的最大公约数尝试用辗转相除法求解两个正整数的最大公约数辗转相除法:辗转相除法:用较大数除以较小数,再用出现的余数(第一余数)去除除数,再用出现的
6、余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。如果是求两个数的最大公约数,那么最后的除数就是这两个数的最大公约数。【练】【练】尝试用辗转相除法求解两个正整数的最大公约数尝试用辗转相除法求解两个正整数的最大公约数m,n=map(int,input(请输入两个数:).split(,)if mn:m,n=n,mr=m%nwhile r:m=n n=r r=m%nprint(f最大公约数师n)m,n:先用split函数把输入用逗号分隔的两个数分离,再用map函数把分离的两个数变成整数,最后分别赋值给m和n。if:在后面的代码中m作为被除数,要比n大,所以如果m小于n,则交换m和n的值(Python中不用第三个变量作为中间变量,可直接用上述语句进行变量间值的交换)。while:如果余数不为0,则把n赋值给m,r赋值给n,算出新的余数,直到余数变为0,程序结束,得到的n即为最大公约数。print:打印出最大公约数。谢谢聆听谢谢聆听