内容正文:
数值计算
第一课时
第 4 单元
4.2
学习目标
★感受数据的图形化表示。
★设计解析式或迭代方程,进行数值计算,解决问题。
★了解数值类算法在实际问题解决时的应用及常用方法。
数学是计算机科学的理论基础之一。在实际问题的求解过程中,有许多数学分支,如解析几何、离散数学等,都是计算机科学所依赖的重要理论工具。借助计算机程序,可以解决很多数学方法所描绘的数值计算问题。 本节我们将围绕“与数学公式面对面”项目探讨在中学数学领域中常见的数学公式与程序设计的有趣结合。
活动1 用WPS表格绘制正弦曲线
利用平时使用的电子表格软件就能绘制函数图像。
方法如下:若以30°为间隔,绘制0~360°之间的正弦函数图像,则首先需要在WPS中完成表格数据的计算。
A B C D
1 x sin(x) sin(-x) sin(2x)/2
2 0 =sin(pi()*A2/180) =sin(pi()*(-A2/180))
3 30
4 60
.
.
. .
.
. .
.
. .
.
. .
.
.
14 360
填表之后,选择相应的数据,建立折线图图表,设置x轴数据系列格式,可绘制出函数的图像。
用WPS表格整理数据有时还是不太方便,我们还可以用什么样的方法管理数据呢?
操作步骤:选择数据——插入——x、y散点图——带平滑线的散点图
仔细观察图像,会发现图像的关键点太少,精度不够,图像不光滑。要想提高图像的光滑程度,就要减小角度间隔,但间隔增加,工作量也会随之增加:每隔1°画一个点,数据表上就会增加300多行新数据;如果以0.1°为间隔,将有3000多行数据。
在Python中,绘制函数图像一般要用到numpy和matplotlib两个模块,利用这两个模块可以绘制出更精细的函数图像。
numpy 模块简介
numpy是一个科学计算包,其中包含很多数学函数,如三角函数、矩阵计算方法等。通过该模块中的arange函数可以创建一个等差数列。如在0~2Π之间每隔0.01取个值,则可以用arange(0, 2*numpy.pi ,0.01)来表示, 其中numpy.pi表示Π 。下列代码可以产生sin(x)的若干个关键点。
numpy.pi
计算机中的表述
数学中的表述
π
例如:
2*numpy.pi = 2Π 3*numpy.pi = 3Π
Numpy应用——创建三角函数图像
#加载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的值
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()函数将绘制的图像窗口显示出来
参考前页代码,让我们一起来完善以下Python程序,尝试绘出"sin(x)" "sin(-x)"和“sin(2x)/2" 的图像。
活动2 利用Python绘制正弦曲线
______________________ #加载numpy模块并取名为np
Import matplotlib.pyplot as plt #加载matplotlib.pyplot并取别名为plt
______________________ #列表x在0到加之间,每隔0.01取一个点
______________________ #求sin(x)对应的列表y1的值
y2=np.sin(-x) #求sin(-X)对应的列表y2的值
______________________ #求sin(2x)/2对应的列表y3的值
plt.plot(x,y1) #绘制sin(x)的图像
① import numpy as np
② x=np.arrange(0,2*np.pi,0.01)
③ y3=(np.sin(2*x))/2
④ y1=np.sin(x)
①
④
②
③
____________________________ #绘制sin(—X