(共36张PPT)
高中信息技术教育科学出版社必修1第四章4.2节
数值计算
导入新课
什么是数值计算?
数值计算,其实是数学的一个分支,它以数字计算机求解数学问题的理论和方法为研究对象,借助计算机运算速度快、精确度高的特点来解决各种数据问题。
函数计算
方程求解
数列求和
数值计算
项目提出
项目:与数学公式面对面
任务一:绘制数学函数曲线
任务二:求解斐波那契数列
数学课上的描点法绘制函数图像
1.建立平面直角坐标系
2.根据解析式计算出若干点的坐标并画在坐标系内
3.将这些点依次连接起来
解析式 数学公式。如y=x^2、y=ax^2+bx+c、y=sin(x)等.
通过描点法会发现,若想画出精度相对较高的函数,则需取多个绘制点进行绘制。想画出趋于完美的函数曲线则需要花费较长时间。
如何借助计算机绘制数学函数曲线?
活动一:用wps表格绘制正弦曲线
活动二:用Python绘制正弦曲线
活动一:用WPS表格绘制正弦曲线
建立WPS表格
完善相关数据
建立折线图图表
x sin(x) sin(-x) sin(2x)/2
1 0 0 0 0
2 30 0.5 -0.5 0.5
3 60 0.866025404 -0.866025404 0.866025404
… … … … …
14 360 0 0 0
任务一:绘制数学函数曲线
B2单元格中的公式
=SIN(PI()*A2/180)
C2单元格中的公式
=SIN(-PI()*A2/180)
D2单元格中的公式
=SIN(2*PI()*A2/180)/2
PI( )即数学常量π,使用此函数可以将π值精确到小数点后14位。
PI( )/180则相当于1度。
任务一:绘制数学函数曲线
活动一:用WPS表格绘制正弦曲线
由于x的取值间隔太大,图像的关键点太少,精度不够,图像不光滑。
活动一:用WPS表格绘制正弦曲线
间隔缩小至1°画一个点,数据表就会增加300多行的数据。
间隔缩小至0.1°画一个点,数据表将有3000多行的数据。
怎样去提高图像的光滑程度呢?
可以借助计算机程序描点绘制函数来达到速度快且精度高的效果。
还可以利用什么方法来实现函数的绘制呢?
可行但并不高效!
活动二:利用Python绘制正弦曲线
计算机编程解决问题的一般步骤:
分析问题
设计算法
编写程序
绘制函数图像
1. 建立平面直角坐标系
2. 解析式计算出若干点的坐标
3. 并将点依次连接起来
调试运行
活动二:利用Python绘制正弦曲线
在Python中,绘制函数图像一般要用到numpy和matplotlib两个模块,这两个模块需要另外安装。
活动二:利用Python绘制正弦曲线
numpy模块和matplotlib模块的安装条件
以Windows 10系统为例,在安装之前要确定已经安装了Python 3.7及以上的版本,同时也安装了pip工具。一般Python 3.7会自动默认安装pip工具,如果没有安装pip工具,请重新运行Python安装程序并选择安装pip工具。
活动二:利用Python绘制正弦曲线
numpy模块和matplotlib模块的安装工具
pip工具主要用于Python包的查找、下载、安装、卸载功能,pip工具是从Python Package包管理库查找Python包,大多数流行的Python开源项目的作者都会将开源项目包上传到Python Package包管理库中。
活动二:利用Python绘制正弦曲线
numpy模块的安装过程
1.点击键盘上的 win+r,打开运行窗口。
2.在运行窗口中输入“cmd",点击enter键,打开windows命令行窗口。
活动二:利用Python绘制正弦曲线
numpy模块的安装过程
3.在windows命令行窗口中输入以下命令:
pip install numpy
pip工具会自动下载numpy包并安装,如图所示。
活动二:利用Python绘制正弦曲线
numpy模块的安装过程
4.图示为安装成功信息。当pip版本不是最新版本时,pip会提示是否更新pip版本。
活动二:利用Python绘制正弦曲线
numpy模块的安装过程
5.如果提示pip版本更新,则需在Windows命令行窗口输入命令:
python -m pip install -upgrade pip
6.pip版本更新成功,安装完成。
Matplotlib模块的安装过程和Numpy模块基本相同。
活动二:利用Python绘制正弦曲线
numpy模块简介
numpy是一个科学计算包,其中包括很多数学函数,如三角函数、矩阵计算方法等。例如,要绘制y=sin(x)的曲线,先要通过该模块中的arange函数创建一个等差数列,也就是描点法中的取x值,然后再求出相对应的y值。
活动二:利用Python绘制正弦曲线
根据函数的参数的个数分为以下几种情况:
只有一个参数,则这个参数为终点。起点默认为0,步长默认为1。
有两个参数,第一个参数为起点,第二个参数为终点,步长默认为1。默认取值左闭右开。
有三个参数,第一个参数为起点,第二个参数为终点,第三个参数为步长。步长支持小数。
arange( )函数的作用是创建等差数组。
活动二:利用Python绘制正弦曲线
>>> import numpy as np
>>> np.arange(10)
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> np.arange(1,10)
array([1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> np.arange(1,10,0.5)
array([1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5, 5. , 5.5, 6. , 6.5, 7. ,7.5, 8. , 8.5, 9. , 9.5])
活动二:利用Python绘制正弦曲线
arange( )和range( )的区别
range(start, end, step),返回一个list对象,起始值为start,终止值为end,但不含终止值,步长为step。只能创建int型list。
arange(start, end, step),与range()类似,但是返回一个array对象。需要引入import numpy as np,并且arange可以使用float型数据。
活动二:利用Python绘制正弦曲线
arange( )和range( )的区别
>>> import numpy as np
>>> range(1,10,2)
[1, 3, 5, 7, 9]
>>> np.arange(1,10,2)
array([1, 3, 5, 7, 9])
>>> range(1,5,0.5)
Traceback (most recent call last):
File "", line 1, in
TypeError: range() integer step argument expected, got float.
>>> np.arange(1,5,0.5)
array([ 1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5])
活动二:利用Python绘制正弦曲线
import numpy as np #加载numpy模块并取一个简洁的别名为np
x=np.arrange(0,2*np.pi,0.01) # x在0到2π之间,每隔0.01取一个点
y=np.sin(x) #通过解析式计算列表x对应的列表y的值
上述代码可以产生sin(x)的若干个关键点。
y=sin(x)程序中的numpy模块代码分析
活动二:利用Python绘制正弦曲线
matplotlib模块简介
matplotlib模块是python中最出色的绘图库,功能很完善。调用matplotlib.pylot时,坐标系可根据数值范围自动生成。matplotlib的绘图原理很简单,用户利用plot画线函数就可以在直角平面内轻松地将(x,y)坐标点对连接成平滑曲线。
活动二:利用Python绘制正弦曲线
y=sin(x)程序中的matplotlib模块代码分析
import matplotlib.pylot as plt #加载matplotlib.pylot并取别名为plt
plt.plot(x,y) #将点对连线
plt.show() #将绘制的图像窗口显示出来
上述代码可以将刚才所生成的关键点连接起来。
活动二:利用Python绘制正弦曲线
import numpy as np
plt.plot(x,y)
x=np.arrange(0,2*np.pi,0.01)
import matplotlib.pylot as plt
y=np.sin(x)
plt.show()
利用arrange函数取点
开始
加载numpy模块
加载matplotlib.pylot模块
求sin(x)对应的y的值
绘制sin(x)的图像
显示绘制的图像
结束
活动二:利用Python绘制正弦曲线
活动二:利用Python绘制正弦曲线
试一试:参考绘制y=sin(x)的代码来完善以下的Python程序,尝试
同时绘制出sin(x),sin(-x),sin(2x)/2的图像。
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( ) #将绘制的函数图像窗口显示出来
活动二:利用Python绘制正弦曲线
活动二:利用Python绘制正弦曲线
Python 程序代码:
利用python程序绘制的函数图像
活动二:利用Python绘制正弦曲线
对比用WPS表格绘制的函数,Python
程序绘制的函数明显图像平滑了很多。
利用python程序绘制的函数图像
利用wps表格绘制的函数图像
课堂小结
绘制
数学
函数
曲线
wps绘制
Python绘制
numpy模块
matplotlib
模块
课后练习
分析并完善下列代码段,尝试用python绘制y=x2-2x+1的图像。并对程序进行调试运行。
import numpy as np
import matplotlib.pyplot as plt #加载matplotlib.pyplot并取名为plt
x=np.arange(-10,12,0.01) #列表x在10到12之间,每隔0.01取个点
y=x**2-2*x+1
plt.plot(x,y) #绘制图像
plt.title('一元二次方程')
plt.xlabel('X')
plt.ylabel('Y')
plt.show()
谢谢