资源简介 (共27张PPT)44.2 数值计算2019教科版高中信息技术学习目标感受数据的图形化表示设计解析式或迭代方程,进行数值计算,解决问题。了解数值类算法在实际问题解决时的应用及常用方法。三维目标一、旧知复习【函数的定义和调用】import matha=int(input ("请输入底数:"))x=int(input ("请输入指数:") )def zhishu(a1,x1):y=math.pow(a1,x1)return yprint(a, x, zhishu(a, x))回忆一下这个函数的功能,并尝试推理运行结果。提示:导入了math库,在math库了涵盖了常用数学函数。pow即指数函数。一、学习活动【任务一 绘制数学函数曲线】活动1 用wps绘制正弦曲线——描点法利用平时使用的电子表格软件就能绘制函数图像。方法如下:若以30°为间隔,绘制0~360°之间的正弦函数图像,则首先需要在WPS 中完成下列表格数据的计算。用描点法画函数图像一般分三步:首先建立平面直角坐标系其次根据解析式计算出若干点的坐标并画在坐标系内最后将这些点依次连接起来活动1 用wps绘制正弦曲线——描点法【任务一 绘制数学函数曲线】二、知识讲授二、知识讲授通过计算下述13行数据,分别在sin(x)、sin(-x)和sin(2x)/2的数值,并填写下表。大家开始完成任务。【任务一 绘制数学函数曲线】二、知识讲授观察视频并对照设计插入函数曲线。阐述你是如何实现的呢?二、知识讲授【任务一 绘制数学函数曲线】二、知识讲授【任务一 绘制数学函数曲线】二、知识讲授活动2 用Python绘制正弦曲线查阅资料,并自主学习numpy模块和matplotlib模块。用Python绘制正弦曲线。【任务一 绘制数学函数曲线】numpy模块简介numpy是一个科学计算包,其中包含很多数学函数,如三角函数、矩阵计算方法等。通过该模块中的arange函数可以创建一个等差数列。如在0~2π之间每隔0.01取个值,则可以用arange(0,2*numpy. pi,0.01)来表示,其中numpy.pi表示π。下列代码可以产生sin(x)的若干个关键点。matplotlib模块简介matplotlib模块是Python中最出色的绘图库,功能很完善。调用matplotlib.pyplot时,坐标系可以根据数值范围自动生成。matplotlib的绘图原理很简单,利用plot画线函数就可以在直角平面内轻松地将(x,y)坐标点对连接成平滑曲线。例如:在上述代码的适当位置增加下列语句,就可以将刚才生成的关键点连接起来。二、知识讲授【任务一 绘制数学函数曲线】二、知识讲授#加载numpy模块并取一个简洁的别名为np,便于后续引用import numpy as np#x在0到2π之间,每隔0.01取一个点x=np.arange(0,2*np.pi,0.01)y=np.sin(x)#通过解析式计算列表x对应的列表y的值【如何使用呢?】【任务一 绘制数学函数曲线】二、知识讲授#加载matplotlib.pyplot并取别名为plt import matplotlib.pyplot as plt#将点对连线plt.plot(x,y)#将绘制的图像窗口显示出来plt.show()【如何使用呢?】【任务一 绘制数学函数曲线】二、知识讲授【完善代码】_________________#加载numpy模块并取别名为np#加载matplotlib.pyplot并取别名为pltimport matplotlib.pyplot as plt_________________#列表x在0到2π之间,每隔0.01取一个点_________________#求sin(x)对应的列表y1的值y2=np.sin(-x)#求sin(-x)对应的列表y2的值_________________#求sin(2x)/2对应的列表y3的值_________________#绘制sin(x)的图像plt.plot(x,y1)【任务一 绘制数学函数曲线】二、知识讲授_________________#绘制sin(-x)的图像_________________#绘制sin(2x)/2的图像#设置图像标题plt.title('sin(x)')#设置X轴标题plt.xlabel('×')#设置Y轴标题plt.ylabel('Y')#将绘制的函数图像窗口显示出来plt.show()【任务一 绘制数学函数曲线】二、知识讲授import numpy as np#加载numpy模块并取别名为np#加载matplotlib.pyplot并取别名为pltimport matplotlib.pyplot as pltx=np.arange(0,2*np.pi,0.01)#列表x在0到2π之间,每隔0.01取一个点y1=np.sin(x)#求sin(x)对应的列表y1的值y2=np.sin(-x)#求sin(-x)对应的列表y2的值y3=np.sin(2*x)/2#求sin(2x)/2对应的列表y3的值plt.plot(x,y1)#绘制sin(x)的图像plt.plot(x,y1)plt.plot(x,y2)plt.plot(x,y3)#设置图像标题plt.title('sin(x) || sin(-x) || sin(2x)/2')#设置X轴标题plt.xlabel('×')#设置Y轴标题plt.ylabel('Y')#将绘制的函数图像窗口显示出来#显示三个函数的图例标题#legend = plt.legend(['sin(x)','sin(-x)','sin(2x)/2'])plt.show()【尝试运行】【任务一 绘制数学函数曲线】二、知识讲授#显示三个函数的图例标题legend = plt.legend(['sin(x)','sin(-x)','sin(2x)/2'])【练习任务】查找资料并在该图基础上绘制添加每个函数的图例标题。【任务一 绘制数学函数曲线】二、知识讲授【练习】对比wps绘制的函数图像与Python绘制函数图像的优劣wps绘制图像需要多行数据,且精度不够,图像不光滑。但wps简单易理解。Python绘制图像需要导入相应函数库和图像库,结合库函数实现图形绘制,较为复杂,但是图形平滑美观。【任务一 绘制数学函数曲线】二、知识讲授【任务二 求解斐波那契数列】二、知识讲授斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1,1,2,3,5,8,13······1、这个数列从第3项开始,每一项都等于前两项之和。2、斐波那契数的边界条件是:f1,f2,f1+f2,fn=f(n-1)+f(n-2)【分析斐波那契数列算法】【任务二 求解斐波那契数列】二、知识讲授利用迭代算法解决问题,有三个关键步骤:(1)确定迭代变量,如活动2中的fl、f2;(2)建立迭代关系式;(3)对迭代过程进行控制【任务二 求解斐波那契数列】二、知识讲授请根据示意图完善下列程序代码。def fib(n):#利用迭代求斐波那契数列的第n个数f2=f1=1 #第1个月、第2个月初值设定for i in range(3,n+1): #推算从第三个月开始,并且至n+1个月结束f1,f2=f2,f1+f2return f2n=int(input('输入需要计算的月份数:')#输出最终解print('兔子总对数为:',fib(n))【任务二 求解斐波那契数列】二、知识讲授【运行程序】【任务二 求解斐波那契数列】查找资料,小组合作完成利用Python实现递归方法下的斐波那契数列图象绘制。并解释核心代码实现过程。活动2 用Python绘制斐波那契数列图象二、知识讲授【任务二 求解斐波那契数列】二、知识讲授from turtle import *#输入自定义数列的个数amount=int(input("请输入斐波那契数列的而个数,推荐15:"))#数列产生a1=0a2=1tem_he=0shulie=[]for i in range(1,amount):#终端输出数列的数值print(a1,end=',')tem_he=a1+a2a1=a2a2=tem_he#数列添加数值shulie.append(tem_he)#turtle画图for i in range(1,amount-1):for n in range(4):forward(shulie[i])left(90)#画圆circle(shulie[i],90)#输出数列数值write(shulie[i],font=("微软雅黑",i*2))【运行程序】【任务二 求解斐波那契数列】二、知识讲授【任务二 求解斐波那契数列】三、课后作业查找资料并寻找生活中的黄金分割问题,将其用代码实现,并形成一份实现报告。报告要求以下内容:算法设计、流程图设计、完整代码、实现图片【任务二 求解斐波那契数列】教学单元 计算与问题解决 教学主题 数值计算教学目标知识与技能 能够理解库函数的使用 能够结合数学库函数实现函数图象的绘制 能够理解图象绘制时各代码实现的含义并能够综合修改代码 过程与方法 通过问题解决和综合应用,提升代码综合解决问题的能力。 情感态度价值观 能够感受到程序设计和函数运用、统计分析之间的联系。核心素养培养学会高阶函数库实现的程序设计,奠定数学统计分析的基础和兴趣,以待深入跨学科学习。教学内容Python绘制函数图象;迭代算法教学媒体电子白板、PPT教学过程教学环节 教师活动 学生活动 设计意图旧知复习 让学生复习【函数的定义和调用】,并且总结阐述函数库导入的意义的目的。 import math a=int(input ("请输入底数:")) x=int(input ("请输入指数:") ) def zhishu(a1,x1): y=math.pow(a1,x1) return y print(a, x, zhishu(a, x)) 回忆一下这个函数的功能,并尝试推理运行结果。 提示:导入math库,在math库了涵盖了常用数学函数。Pow即指数函数。 学生观察程序代码并运行函数。 回答教师的问题,复习math库的应用。 本节课需要学习numpy库和matplotlib函数。任务探究 【知识点一、Python绘制函数图象】活动1 用wps绘制正弦曲线——描点法 利用平时使用的电子表格软件就能绘制函数图像。方法如下:若以30°为间隔,绘制0~360°之间的正弦函数图像,则首先需要在WPS 中完成下列表格数据的计算。 通过计算下述13行数据,分别在sin(x)、sin(-x)和sin(2x)/2的数值,并填写下表。大家开始完成任务。 【提示】 知识脚手架:观察视频并对照设计插入函数曲线。 阐述你是如何实现的呢? 学生分析算法: 用描点法画函数图像一般分三步: 首先建立平面直角坐标系 其次根据解析式计算出若干点的坐标并画在坐标系内 最后将这些点依次连接起来。 完成教师安排的任务并讨论。 组织汇报结果并展示。 学生通过练习逐渐在实践过程中加强对理论知识的消化和理解,同时在程序运行中不断调试、寻找错误,让学生能够理解和感受程序员职业的日常工作,感受代码结果实现的魅力。 教师提供代码引导、视频引导和语言引导,真正实现以学为中心。活动2 用Python绘制正弦曲线 查阅资料,并自主学习numpy模块和matplotlib模块。用Python绘制正弦曲线。 numpy模块简介 numpy是一个科学计算包,其中包含很多数学函数,如三角函数、矩阵计算方法等。通过该模块中的arange函数可以创建一个等差数列。如在0~2π之间每隔0.01取个值,则可以用arange(0,2*numpy. pi,0.01)来表示,其中numpy.pi表示π。下列代码可以产生sin(x)的若干个关键点。 matplotlib模块简介 matplotlib模块是Python中最出色的绘图库,功能很完善。调用matplotlib.pyplot时,坐标系可以根据数值范围自动生成。 matplotlib的绘图原理很简单,利用plot画线函数就可以在直角平面内轻松地将(x,y)坐标点对连接成平滑曲线。例如:在上述代码的适当位置增加下列语句,就可以将刚才生成的关键点连接起来。 发布任务,完善代码 _________________#加载numpy模块并取别名为np #加载matplotlib.pyplot并取别名为plt import matplotlib.pyplot as plt _________________#列表x在0到2π之间,每隔0.01取一个点 _________________#求sin(x)对应的列表y1的值 y2=np.sin(-x)#求sin(-x)对应的列表y2的值 _________________#求sin(2x)/2对应的列表y3的值 _________________#绘制sin(x)的图像plt.plot(x,y1) _________________#绘制sin(-x)的图像 _________________#绘制sin(2x)/2的图像 #设置图像标题 plt.title('sin(x)') #设置X轴标题 plt.xlabel('×') #设置Y轴标题 plt.ylabel('Y') #将绘制的函数图像窗口显示出来 plt.show() 【练习任务】 #显示三个函数的图例标题 legend = plt.legend(['sin(x)','sin(-x)','sin(2x)/2']) 【练习】 对比wps绘制的函数图像与Python绘制函数图像的优劣 学生根据教师提供的材料,自主学习和探究numpy模块和matplotlib模块。 【如何使用呢?】 #加载numpy模块并取一个简洁的别名为np,便于后续引用import numpy as np #x在0到2π之间,每隔0.01取一个点x=np.arange(0,2*np.pi,0.01) y=np.sin(x) #通过解析式计算列表x对应的列表y的值 #加载matplotlib.pyplot并取别名为plt import matplotlib.pyplot as plt #将点对连线 plt.plot(x,y) #将绘制的图像窗口显示出来 plt.show() import numpy as np#加载numpy模块并取别名为np #加载matplotlib.pyplot并取别名为plt import matplotlib.pyplot as plt x=np.arange(0,2*np.pi,0.01)#列表x在0到2π之间,每隔0.01取一个点 y1=np.sin(x)#求sin(x)对应的列表y1的值 y2=np.sin(-x)#求sin(-x)对应的列表y2的值 y3=np.sin(2*x)/2#求sin(2x)/2对应的列表y3的值 plt.plot(x,y1)#绘制sin(x)的图像plt.plot(x,y1) plt.plot(x,y2) plt.plot(x,y3) #设置图像标题 plt.title('sin(x) || sin(-x) || sin(2x)/2') #设置X轴标题 plt.xlabel('×') #设置Y轴标题 plt.ylabel('Y') #将绘制的函数图像窗口显示出来 #显示三个函数的图例标题 #legend = plt.legend(['sin(x)','sin(-x)','sin(2x)/2']) plt.show() 学生总结 wps绘制图像需要多行数据,且精度不够,图像不光滑。但wps简单易理解。 Python绘制图像需要导入相应函数库和图像库,结合库函数实现图形绘制,较为复杂,但是图形平滑美观。【知识点二、求解斐波那契数列】分析斐波那契数列算法 wps绘制图像需要多行数据,且精度不够,图像不光滑。但wps简单易理解。 Python绘制图像需要导入相应函数库和图像库,结合库函数实现图形绘制,较为复杂,但是图形平滑美观。 分析: 利用迭代算法解决问题,有三个关键步骤: (1)确定迭代变量,如活动2中的fl、f2; (2)建立迭代关系式; (3)对迭代过程进行控制 学生总结算法: 1、这个数列从第3项开始,每一项都等于前两项之和。 2、斐波那契数的边界条件是:f1,f2,f1+f2,fn=f(n-1)+f(n-2) 认真听讲并记笔记。 学生运行程序: 【运行程序】 from turtle import * #输入自定义数列的个数 amount=int(input("请输入斐波那契数列的而个数,推荐15:")) #数列产生 a1=0 a2=1 tem_he=0 shulie=[] for i in range(1,amount): #终端输出数列的数值 print(a1,end=',') tem_he=a1+a2 a1=a2 a2=tem_he #数列添加数值 shulie.append(tem_he) #turtle画图 for i in range(1,amount-1): for n in range(4): forward(shulie[i]) left(90) #画圆 circle(shulie[i],90) #输出数列数值 write(shulie[i],font=("微软雅黑",i*2))请根据示意图完善下列程序代码。 def fib(n): #利用迭代求斐波那契数列的第n个数 f2=f1=1 #第1个月、第2个月初值设定 for i in range(3,n+1): #推算从第三个月开始,并且至n+1个月结束 f1,f2=f2,f1+f2 return f2 n=int(input('输入需要计算的月份数:')#输出最终解 print('兔子总对数为:',fib(n))活动2 用Python绘制斐波那契数列图象 查找资料,小组合作完成利用Python实现递归方法下的斐波那契数列图象绘制。 并解释核心代码实现过程。 【播放视频】 播放运行程序结果并给学生讲解过程。课后作业 查找资料并寻找生活中的黄金分割问题,将其用代码实现,并形成一份实现报告。报告要求以下内容: 算法设计、流程图设计、完整代码、实现图片 学生完成学习报告。 巩固、加强学习,并解决开放性问题。 展开更多...... 收起↑ 资源列表 数值计算.docx 数值计算.pptx