教科版(2019)4.2数值计算 课件+教案

文档属性

名称 教科版(2019)4.2数值计算 课件+教案
格式 zip
文件大小 11.4MB
资源类型 试卷
版本资源 教科版(2019)
科目 信息技术(信息科技)
更新时间 2023-05-04 10:50:18

文档简介

(共27张PPT)
4
4.2 数值计算
2019教科版
高中信息技术
学习目标
感受数据的图形化表示
设计解析式或迭代方程,进行数值计算,解决问题。
了解数值类算法在实际问题解决时的应用及常用方法。
三维目标
一、旧知复习
【函数的定义和调用】
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即指数函数。
一、学习活动
【任务一 绘制数学函数曲线】
活动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并取别名为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()
【任务一 绘制数学函数曲线】
二、知识讲授
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()
【尝试运行】
【任务一 绘制数学函数曲线】
二、知识讲授
#显示三个函数的图例标题
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+f2
return f2
n=int(input('输入需要计算的月份数:')#输出最终解
print('兔子总对数为:',fib(n))
【任务二 求解斐波那契数列】
二、知识讲授
【运行程序】
【任务二 求解斐波那契数列】
查找资料,小组合作完成利用Python实现递归方法下的斐波那契数列图象绘制。
并解释核心代码实现过程。
活动2 用Python绘制斐波那契数列图象
二、知识讲授
【任务二 求解斐波那契数列】
二、知识讲授
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))
【运行程序】
【任务二 求解斐波那契数列】
二、知识讲授
【任务二 求解斐波那契数列】
三、课后作业
查找资料并寻找生活中的黄金分割问题,将其用代码实现,并形成一份实现报告。报告要求以下内容:
算法设计、流程图设计、完整代码、实现图片
【任务二 求解斐波那契数列】教学单元 计算与问题解决 教学主题 数值计算
教学目标
知识与技能 能够理解库函数的使用 能够结合数学库函数实现函数图象的绘制 能够理解图象绘制时各代码实现的含义并能够综合修改代码 过程与方法 通过问题解决和综合应用,提升代码综合解决问题的能力。 情感态度价值观 能够感受到程序设计和函数运用、统计分析之间的联系。
核心素养培养
学会高阶函数库实现的程序设计,奠定数学统计分析的基础和兴趣,以待深入跨学科学习。
教学内容
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实现递归方法下的斐波那契数列图象绘制。 并解释核心代码实现过程。 【播放视频】 播放运行程序结果并给学生讲解过程。
课后作业 查找资料并寻找生活中的黄金分割问题,将其用代码实现,并形成一份实现报告。报告要求以下内容: 算法设计、流程图设计、完整代码、实现图片 学生完成学习报告。 巩固、加强学习,并解决开放性问题。