高中信息技术教科版 (2019)必修1 数据与计算第4单元 计算与问题解决4.2 数值计算备课课件ppt
展开★ 感受数据的图形化表示。★ 设计解析式或迭代方程,进行数值计算,解决问题。★ 了解数值类算法在实际问题解决时的应用及常用方法。
数值计算,其实是数学的一个分支,它以数字计算机求解数学问题的理论和方法为研究对象,借助计算机运算速度快、精确度高的特点来解决各种数据问题。
项目:与数学公式面对面
任务一:绘制数学函数曲线
任务二:求解斐波那契数列
数学课上的描点法绘制函数图像
1.建立平面直角坐标系2.根据解析式计算出若干点的坐标并画在坐标系内3.将这些点依次连接起来
通过描点法会发现,若想画出精度相对较高的函数,则需取多个绘制点进行绘制。想画出趋于完美的函数曲线则需要花费较长时间。
如何借助计算机绘制数学函数曲线?
活动1 用WPS表格绘制正弦曲线
B2单元格中的公式=SIN(PI()*A2/180)C2单元格中的公式=SIN(-PI()*A2/180)D2单元格中的公式=SIN(2*PI()*A2/180)/2
PI( )即数学常量π,使用此函数可以将π值精确到小数点后14位。PI( )/180则相当于1度。
填表之后,选择相应的数据,建立折线图图表,设置x轴数据系列格式,可绘制出函数的图像。
用WPS表格绘制函数图像还是不太方便,我们还可以用什么样的方法实现函数的绘制呢?
操作步骤:选择数据——插入——x、y散点图——带平滑线的散点图
仔细观察图像,会发现图像的关键点太少,精度不够,图像不光滑。要想提高图像的光滑程度,就要减小角度间隔,但间隔增加,工作量也会随之增加:每隔1°画一个点,数据表上就会增加300多行新数据;如果以0.1°为间隔,将有3000多行数据。
可以借助计算机程序描点绘制函数来达到速度快且精度高的效果。
numpy是一个科学计算包,其中包含很多数学函数,如三角函数、矩阵计算方法等。通过该模块中的arange函数可以创建一个等差数列。如在0~2Π之间每隔0.01取个值,则可以用arange(0, 2*numpy.pi ,0.01)来表示, 其中numpy.pi表示Π 。下列代码可以产生sin(x)的若干个关键点。
活动二:利用Pythn绘制正弦曲线
在Pythn中,绘制函数图像一般要用到numpy和matpltlib两个模块,这两个模块需要另外安装。
#加载numpy模块并取一个简洁的别名为np,便于后续引用imprt numpy as np#x在0到2Π:之间,每隔0.01取一个点x=np.arange(0,2*np.pi,0.01)#调用numpy模块的arange函数,其参数为开始参数0,结束参数2*np.pi,间隔参数0.01y=np.sin(x) #通过解析式计算列表x对应的列表y的值
Numpy应用—创建三角函数图像
matpltlib 模块简介
matpltlib模块是Pythn中最出色的绘图库,功能很完善。调用matpltlib.pyplt时,坐标系可以根据数值范围自动生成。matpltlib的绘图原理很简单,利用plt画线函数就可以在直角平面内轻松地将(x, y)坐标点对连接成平滑曲线。例如:在上述代码的适当位置增加下列语句,就可以将刚才生产的关键点连接起来。
#加载matpltlib.pyplt并取别名为pltimprt matpltlib.pyplt as pltplt.plt(x,y)#plt()函数将点对连线plt.shw()#shw()函数将绘制的图像窗口显示出来
imprt numpy as np
plt.plt(x,y)
x=np.arrange(0,2*np.pi,0.01)
imprt matpltlib.pylt as plt
y=np.sin(x)
plt.shw()
参考前页代码,让我们一起来完善以下Pythn程序,尝试绘出"sin(x)" "sin(-x)"和“sin(2x)/2" 的图像。
______________________ #加载numpy模块并取名为npImprt matpltlib.pyplt as plt#加载matpltlib.pyplt并取别名为plt______________________#列表x在0到加之间,每隔0.01取一个点______________________#求sin(x)对应的列表y1的值y2=np.sin(-x)#求sin(-X)对应的列表y2的值______________________#求sin(2x)/2对应的列表y3的值plt.plt(x,y1)#绘制sin(x)的图像
① imprt numpy as np② x=np.arrange(0,2*np.pi,0.01)③ y1=np.sin(x) ④ y3=(np.sin(2*x))/2
____________________________#绘制sin(—X)的图像____________________________#绘制sin(2x)/2的图像plt.title(‘sin(x)’)#设置图像标题plt.xlabel(‘x’)#设置X轴标题plt.ylabel(‘y’)#设置Y轴标题plt.shw( ) #将绘制的函数图像窗口显示出来
⑤ plt.plt(x,y2)⑥ plt.plt(x,y3)
运行代码,对比在活动1中生成的图像,程序绘制的函数图像果然平滑了很多,如下图图所示。
Pythn语言绘制的函数图像
Wps电子表格绘制的函数图像
活动1 用WPS求解数列
斐波那契在《计算之书》中提出了一个有趣的兔子问题:假设一对兔子每个月可以生一对小兔子,一对兔子出生后第2个月就开始生小兔子。则一对兔子一年内能繁殖成多少对?10年呢?
从笫3个月起,每个月大兔子的对数等于上个月大兔子与小兔子的对数之和(即上个月兔子总对数), 每个月小兔子的对数等于上个月大兔子的对数(即上上个月兔子总对数)。
我们发现,当计算到第74个月的时候,由于数据范围及表示精度的问题,导致结果出错。
借助电子表格软件计算时,只能算到第74个月,而我们需要计算10年即第120个月的兔子数量。
下面,我们借助pythn语言进行求解。
第1个月和第2个月的兔子对数之和为第3个月的兔子对数 第2个月和第3个月的兔子对数之和为笫4个月的兔子对数…第118个月和第119个月的兔子对数之和为第120个月的兔子对数每个月的兔子对数是前两个月的兔子对数之和, 又同时作为下一个月兔子对数的加数。这种重复反馈的过程称为迭代。
活动2 用Pythn 求解数列
迭代法也称辗转法,是用计算机解决问题的一种基本方法。迭代通常是为了接近并到达所需的目标或结果。每一次对过程的重复被称为一次"迭代”,而每一次迭代得到的结果会被用来作为下一次迭代的初始值。
由于在迭代系列中的每个月份兔子对数只跟前两个月有关,因此在编写程序时,只需两个变量f1记录上上个月的数据,用f2记录上个月的数据。
根据示意图完善下列程序代码。
def fib(n): #利用迭代求斐波那契数列的第n个数f2=f1=1 fr i in range(3,n+1): f1,f2=f2,fl+f2 return f2 n=int(input('输入需要计算的月份数:')) print('兔子总对数为: ', fib(n))程序运行结果:输入需要计算的月份数:74兔子总对数为:1304969544928657
利用迭代算法解决问题的步骤
有三个关键步骤:(1)确定迭代变量,如活动2中的fl、f2; (2)建立迭代关系式; (3)对迭代过程进行控制,这是编写迭代程序必须考虑的问题, 不能让迭代过程无休止地重复执行下去。
1. 尝试用Pythn绘制 y = x2 -2x + 1 的图像。
imprt numpy as np #加载numpy模块并取名为npimprt matpltlib.pyplt as plt #加载matpltlib.pyplt并取名为pltx=np.arange(-10,12,0.01) y=x**2-2*x+1plt.plt(x,y) plt.title('一元二次方程') plt.xlabel('X') plt.ylabel('Y') plt.shw()
2. 尝试用辗转相除法求解两个正整数的最大公约数。
num1=int(input('请输入第一个正整数:'))num2=int(input('请输入第二个正整数:'))m=max(num1,num2)n=min(num1,num2)r=m % nwhile r!=0: m=n n=r r=m % nprint('这两个数的最大公约数为:',n)input("运行完毕,请按回车键退出...")
教科版 (2019)必修1 数据与计算4.2 数值计算优秀ppt课件: 这是一份教科版 (2019)必修1 数据与计算4.2 数值计算优秀ppt课件,共16页。PPT课件主要包含了学习目标,温故而知新,使用电子表格求解,迭代法,课堂练习,巩固提升,课堂小结等内容,欢迎下载使用。
高中信息技术教科版 (2019)必修1 数据与计算4.3 非数值计算课前预习课件ppt: 这是一份高中信息技术教科版 (2019)必修1 数据与计算4.3 非数值计算课前预习课件ppt,共23页。PPT课件主要包含了学习目标,新课导入,分治策略,二分查找,递归的基本思想,迭代与递归的关系,巩固提升,练一练等内容,欢迎下载使用。
信息技术必修1 数据与计算4.3 非数值计算优质ppt课件: 这是一份信息技术必修1 数据与计算4.3 非数值计算优质ppt课件,共17页。PPT课件主要包含了游戏导入,Part01,本节内容讲解,Part02,二分查找,查找过程演示,二分法查找2的过程,重点难点解读,Part03等内容,欢迎下载使用。