内容正文:
第一课时
4.2 数值计算
学习目标
01
02
感受数据的图形化表示。
03
设计解析式方程,进行数值计算,解决问题。
了解数值类算法在实际问题解决时的应用及常用方法。
什么是数值计算?
数值计算,其实是数学的一个分支,它以数字计算机求解数学问题的理论和方法为研究对象,借助计算机运算速度快、精确度高的特点来解决各种数学问题。
导入
函数计算
方程求解
数值计算
数列求和
项目任务
项目任务:
任务一 绘制数学函数曲线
任务二 求解斐波那契数列
本节
任务
活动1 用WPS表格绘制正弦曲线
在数学课上经常需要手工绘制函数图像,今天我们借助计算机来绘制函数图像。
任务1:绘制数学函数曲线
活动1 用WPS表格绘制正弦曲线
任务1:绘制数学函数曲线
利用电子表格软件就能绘制函数图像。
方法如下:若以30°为间隔,绘制0-360°之间的正弦函数图像,则首先需要完成下列表格数据的计算。
A B C D
1 x sin(x) sin(-x) sin(2x)/2
2 0
3 30
4 60
... ...
14 360
活动1 用WPS表格绘制正弦曲线
PI( )即数学常量π,使用此函数可以将π值精确到小数点后14位。
PI( )/180则相当于1度。
B2单元格中的公式
=SIN(PI()*A2/180)
C2单元格中的公式
=SIN(-PI()*A2/180)
D2单元格中的公式
=SIN(2*PI()*A2/180)/2
活动1 用WPS表格绘制正弦曲线
填表之后,选择相应数据,建立折线图绘制函数图像。
活动1 用WPS表格绘制正弦曲线
视频演示—用WPS表格绘制函数图像
活动1 用WPS表格绘制正弦曲线
①利用课本上间隔30的数据绘制函数图像;
②利用间隔1度的数据,绘制函数图像。
学生自主探究、发现问题:
数据点越多,绘制的正弦函数图像越精细,圆滑。
活动1 用WPS表格绘制正弦曲线
仔细观察图像,会发现图像的关键点太少,精度不够,图像不光滑。要想提高图像的光滑程度,就要减小角度间隔,但间隔增加,工作量也会随之增加:每隔1°画一个点,数据表上就会增加300多行新数据;如果以0.1°为间隔,将有3000多行数据。
可以借助计算机程序描点绘制函数来达到速度快且精度高的效果。
活动2 用Python绘制正弦曲线
借助计算机程序描点,可以达到速度快且精确度高的效果。下面我们尝试利用Python编写程序绘制正弦曲线。
在Python中,绘制函数图像一般要用到numpy和matplotlib两个模块,这两个模块需要另外安装。
知识探究——Numpy模块
简介
numpy是一个科学计算包,其中包含很多数学函数,如三角函数、矩阵计算方法等。通过该模块中的arange函数可以创建一个等差数列。如在0~2П之间每隔0.01取个值,则可以用arange(0,2*numpy.pi ,0.01)来表示,其中numpy.pi表示π。下列代码可以产生sin(x)的若干个关键点。
应用─创建三角函数图像
#加载numpy模块并取一个简洁的别名为np,便于后续引用
import numpy as np
#x在0到2Π之间,每隔0.01取一个点
x=np.arange(0 , 2*np.pi , 0.01) #调用numpy模块的arange函数,其开始参数为0,结束参数为2*np. pi,间隔参数0.01
y=np.sin(x) #通过解析式计算列表x对应的列表y的值
2π=2*numpy.pi
知识探究——Matplotlib模块
简介
matplotlib模块是Python中最出色的绘图库,功能很完善。调用matplotlib. pyplot时,坐标系可以根据数值范围自动生成。
matplotlib的绘图原理很简单,利用plot画线函数就可以在直角平面内轻松地将(x,y)坐标点对连接成平滑曲线。例如:在上述代码的适当位置增加下列语句,就可以将刚才生产的关键点连接起来。
应用
#加载matplotlib. pyplot并取别名为plt
import matplotlib.pyplot as plt
plt.plot(x, y) # plot()函数将点对连线
plt.show () # show()函数将绘制的图像窗口显示出来
知识探究——模块安装
1、numpy模块和matplotlib模块的安装条件
以Windows 10系统为例,在安装之前要确定已经安装了Python 3.7及以上的版本,同时也安装了pip工具。一般Python 3.7会自动默认安装pip工具,如果没有安装pip工具,请重新运行Python安装程序并选择安装pip工具。
2、numpy模块和matplotlib模块的安装工具
pip工具主要用于Python包的查找、下载、安装、卸载功能,pip工具是从Python Package包管理库查找Python包,大多数流行的Python开源项目的作者都会将开源项目包上传到Python Package包管理库中。
所以基于解析算法的问题解决,其实需要明确已知条件和求解目标之间(点)的关系,形成一个(点)解析式。在这之后,我们可以通过编写程序的方式完成计算和处理。下面让我们一起来看一道题目。
3、模块的安装过程
1.点击键盘上的 win+r,打开运行窗口。
2.在运行窗口中输入“cmd",点击enter键,打开windows命令行窗口。
3.在windows命令行窗口中输入以下命令:
pip install numpy
pip工具会自动下载numpy包并安装。
4.当pip版本不是最新版本时,pip会提示是否更新pip版本。
5.如果提示pip版本更新,则需在Windows命令行窗口输入命令:
python.exe -m pip install -upgrade pip
6.pip版本更新成功,安装完成。
网上购物这种省时又省力的购物方式已经被越来越多的人接受并使用。在网上购物时我们选择了商品和数量,页面上立即就会显示出总价,你知道购物程序中的总价是如何计算出来的吗?其实解决这一问题也应用了解析算法。(点)已知商品的单价和数量,建立数学模型,总价等于单价乘以数量就得出了结果。
活动2 用Python绘制正弦曲线
import numpy as np #加载numpy模块并取别名为np
import matplotlib.pyplot as plt #加载matplotlib.pyplot并取别名为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,y2) #绘制sin(-x)的图像
plt.plot(x,y3) #绘制sin(2x)/ 2的图像
plt.title(‘sin(x)’) #设置图像标题
plt.xlabel(‘X’) #设置X轴标题
plt.ylabel(‘Y’) #设置Y轴标题
plt.show( ) #将绘制的函数图像窗口显示出来
参考绘制y=sin(x)的代码来完善以下的Python程序,尝试同时绘制出sin(x),sin(-x),sin(2x)/2的图像。
活动2 用Python绘制正弦曲线
活动2 用Python绘制正弦曲线
能力提升
补全代码,使用numpy和matplotlib模块,绘制 y = x2 -2x -3的图像,
x的取值范围式0<=x<=8,取值间隔是0.01。
import numpy as np #加载numpy模块并取别名为np
import matplotlib.pyplot as plt
x=np.arange(0,8,0.01) #列表在所给范围之间,每隔0.01取一个点
y=x*x-2*x-3
plt.plot(x,y)#绘制函数图像
plt.title(‘y = x2 -2x - 3')
plt.xlabel('X')
plt.ylabel('Y')
plt.show()#将绘制的函数图像窗口显示出来
课堂小结
绘制
数学
函数
曲线
WPS绘制
Python绘制
numpy模块
matplotlib
模块
第二课时
项目任务
项目任务:
任务一 绘制数学函数曲线
任务二 求解斐波那契数列
本节
任务
活动1 用WPS表格求解数列
任务:求解斐波那契数列
数学家斐波那契在《计算之书》中提出了一个有趣的兔子问题:
假设一对兔子每个月可以生一对小兔子,一对兔子出生后第2个月就开始生小兔子。则一对兔子一年内能繁殖成多少对?10年呢?
根据描述,
兔子的对数如图所示:
活动1 用WPS表格求解数列
任务:求解斐波那契数列
右边这一列数字是有规律的。第一个数和第二个数为1,之后的每一个数为之前两个数之和。比如,六月份的兔子数量为四月份和五月份兔子数量之和,即8=5+3。
活动1 用WPS表格求解数列——数学计算
1,
1,
1+1=2,也就是①+②
2+1=3,②+③
3+2=5,③+④
5+3=8,④+⑤
8+5=13,⑤+⑥
13+8=21,⑥+⑦
…..
根据这些数据,我们就可以总结得出:每个月的兔子对数是前两个月的兔子对数之和, 又同时作为下一个月兔子对数的加数。
第n-2个月
第n-1个月
第n个月
第n-1个月
第n个月
第n+1个月
活动1 用WPS表格求解数列
使用电子表格可以很方便的求解:
每个月的兔子对数是前两个月的兔子对数之和, 又同时作为下一个月兔子对数的加数。
上机实践1
活动1 用WPS表格求解数列
我们发现,当计算到第74个月的时候,由于数据范围及表示精度的问题,导致结果出错。
借助电子表格软件计算时,只能算到第74个月,而我们需要计算10年即第120个月的兔子数量。
所以下面我们借助python语言进行求解。
知识探究——迭代法
第1个月和第2个月的兔子对数之和为第3个月的兔子对数
第2个月和第3个月的兔子对数之和为笫4个月的兔子对数
……
第118个月和第119个月的兔子对数之和为第120个月的兔子对数
每个月的兔子对数是前两个月的兔子对数之和, 又同时作为下一个月兔子对数的加数。这种重复反馈的过程称为迭代。
知识探究——迭代法
迭代法也称辗转法,是用计算机解决问题的一种基本方法。迭代通常是为了接近并到达所需的目标或结果。每一次对过程的重复被称为一次"迭代”,而每一次迭代得到的结果会被用来作为下一次迭代的初始值。
由于在迭代系列中的每个月份兔子对数只跟前两个月有关,因此在编写程序时,只需两个变量,用f1记录上上个月的数据,用f2记录上个月的数据。
f1
f2
F1+f2
③
①
②
迭代计算的示意图
活动2 用Python求解数列
def fib(n):
#迭代求Fibonacci数列
f2=f1=1
for i in range(3,n+1):
f1,f2=f2,f1+f2
return f2
n=int(input('输入需要计算的月份数:'))
print('兔子总对数为:',fib(n))
input("运行完毕,请按回车键退出...")
请同学们打开程序
4-2 求Fibonacci数列.py
进行上机实践。
活动2 用Python求解数列
利用迭代算法解决问题的步骤:
有三个关键步骤:
(1)确定迭代变量,如活动2中的fl、f2;
(2)建立迭代关系式;
(3)对迭代过程进行控制,这是编写迭代程序必须考虑的问题, 不能让迭代过程无休止地重复执行下去。
选择题
通常是为了接近并达到所需的目标或结果,对过程进行重复,每一次重复得到的结果会被用来作为下一次的初始值。这种用计算机解决问题的一种基本方法是( )。
A.迭代法 B.查找法
C.分析法 D.排序法
课堂测试
A
课堂小结
求解斐波那契数列
WPS求解
Python求解
迭代法
f1
f2
F1+f2
③
①
②
感谢观看!
$