1、4.24.2 数值计算数值计算( (第第 1 1 课时课时) ) 【教学【教学目标目标】 1.通过求解一元二次方程的解, 了解计算机编程解决数值计算问题的一般流程, 并能够使用 解析法解决实际问题。 2.通过绘制一元多次方程函数图像, 了解 Python 利用 numpy 和 matplotlib 两个模块绘制图 像的基本方法。 【教学【教学重重难难点点】 能够利用 numpy 和 matplotlib 两个模块绘制函数图像。 【教学过【教学过程】程】 计算机最初研究的用途就是进行数值计算, 因此计算机可以解决很多数学方法所描绘的数值 计算问题。本节将围绕项目“与数学 公式面对面”探讨在中学数
2、学领域里常见的数学公式 与程序设计的有趣结合。首先完成下列任务: 环节一环节一求解一元二次方程求解一元二次方程 ax2+bx+c=0(a0) 1用数学方法求解方程 2x2+x-6=0。 2用 WPS 表格绘制方程 2x2+x-6=0 函数图象,求解方程。 3用 Python 编程求解 ax2+bx+c=0(a0)的解。a,b,c 由程序输入。 参考答案:参考答案: 方法一:写出数学方法求解方程 2x2+x-6=0。 方程可因式分解为(2x-3)(x+2)=0,因此 x=1.5 或 x=-2。来源:学科网 ZXXK 用求根公式计算得 x=1.5 或 x=-2。 方法二:wps 表格画图。 (描点
3、法) 来源来源:Zxxk.Com 存在问题,如果需要图象更加光滑,必须 x 的取值间隔要小;取值范围要恰当。 方法三:Python 求解。 import math a=float(input(请输入方程系数 a(!=0):) b=float(input(请输入方程系数 b:) c=float(input(请输入方程系数 c:) d=b*b-4*a*c if d0: x1=(-b+math.sqrt(d)/(2*a) x2=(-b-math.sqrt(d)/(2*a) print(方程有两个不同的解,x1,x2) elif d=0: x1=-b/(2*a) print(方程有两个相同的解,x1)
4、 else: print(方程无解) 运行结果: 环节二环节二绘制数学函数曲线绘制数学函数曲线 1用 WPS 表格绘制 y=sin(x) 、y=sin(-x)和 y= sin(2x)函数的图像。 2用 Python 编程绘制 y=sin(x) 、y=sin(-x)和 y= sin(2x) 函数的图像。 活动一:用活动一:用 WPS 表格绘制表格绘制 y=sin(x) 、y=sin(-x)和和 y= sin(2x)函数的图像。函数的图像。 (列表法描点法)(列表法描点法) (利用(利用 WPS 绘制的函数图像)绘制的函数图像) 总结:数据点越多,绘制的正弦函数图像越精细,圆滑。总结:数据点越多,
5、绘制的正弦函数图像越精细,圆滑。 来源:学。科。网 Z。X。X。K 活动二:用活动二:用 Python 编程绘制编程绘制 y=sin(x) 、y=sin(-x)和和 y= sin(2x) 函数的图像。函数的图像。 在 Python 中绘制函数图像一般要用到 numpy 和 matplotlib 两个模块。 这 2 个模块需要另外安装。Python 外置库安装方法如下: 1)访问网址下载对应的文件 (和你的 windows 系统及 Python 版本都要对应) (1)从 https:/pypi.python.org/pypi/matplotlib/ (2)从 https:/pypi.python
6、.org/pypi/numpy/ 2)把这些文件直接复制到你的 Python 路径下的 Scripts 文件夹中 例如 C:UsersownerAppDataLocalProgramsPythonPython36Scripts 文件夹中; 3)在文件夹中 按 shift 键的同时单击鼠标右键,选择“在此处打开命令窗口”弹出 cmd 窗 口 复制下列代码回车运行: 32 位: pip install numpy-1.17.2-cp36-cp36m-win32.whl pip install matplotlib-3.1.1-cp36-cp36m-win32.whl来源:学_科_网 64 位: p
7、ip install numpy-1.17.2-cp36-cp36m-win_amd64.whl pip install matplotlib-3.1.1-cp36-cp36m-win_amd64.whl numpy 是一个科学计算包。其中包含很多数学函数,如三角函数、矩阵计算方法等。通 过该模块中的 arange 函数可以创建一个等差数列,也就是描点法中的取 x 值,然后用 y=np.sin(x)计算 y 的值。 接着调用 matplotlib 模块绘制函数图像。调用 matplotlib.pyplot 在直角平面内轻松 地将(x,y)坐标点对连接成平滑曲线。 那么绘制 y=sin(x)函数
8、的图像程序如下: 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 取一个点 y=np.sin(x)#求 sin(x)对应的 y 值 plt.plot(x,y)#绘制 sin(x)图像,系统自动配置蓝色 plt.title(sin(x)#设置图像标题 plt.xlabel(X)#设置 X 轴标题 plt.ylabel(Y)#
9、设置 Y 轴标题 plt.show()#将绘制的函数图像窗口显示出来 体验操作:同学们可修改绘制体验操作:同学们可修改绘制“sin(-x)sin(-x)”和和“sin(2x)/2sin(2x)/2 的图像。的图像。 y2=np.sin(-x)y2=np.sin(-x) y3=np.sin(2*x)/2y3=np.sin(2*x)/2 总结总结: 振幅和周期发振幅和周期发生了变化生了变化。 对比对比用用 WPS 表格绘制表格绘制 y=sin(x) 、 y=sin(-x) 和和 y= sin(2x)/2/2函数的图像平滑了很多。函数的图像平滑了很多。来源来源:Zxxk.Com 作业:作业:尝试用尝试用 PythonPython 绘制绘制y y= =x x 2 2 2 2x x+ + 1 1 的图像。的图像。 代码如下: import numpy as np #加载 numpy 模块并取名为 np import matplotlib.pyplot as plt #加载 matplotlib.pyplot 并取名为 plt x=np.arange(-10,12,0.01) y=x*2-2*x+1 plt.plot(x,y) plt.title(一元二次方程) plt.xlabel(X) plt.ylabel(Y) plt.show()