课题:第四单元 计算与问题解决 4.2 数值计算(第1课时)
教材 分析 第四章4.2节围绕“与数学公式面对面”项目展开,探讨在中学数学领域中常见的数学公式与程序设计的有趣结合。本项目有两个任务“绘制数学函数曲线”和“求解‘斐波那契数列’”。 本节完成任务一“绘制数学函数曲线”,重在实现学科知识的融通,将数学函数与计算机模拟相融合,突出计算机在问题解决过程中的地位和作用。
学习 目标 学科知识: 1.通过绘制正弦函数图像,了解计算机编程解决数值计算问题的一般流程,并能够使用解析法解决实际问题。 2.通过绘制正弦函数图像,了解利用Python中numpy和matplotlib两个模块绘制图像的基本方法。 问题解决: 利用WPS绘制正弦函数图像和利用Python绘制正弦函数图像。 学科思维: 在实践过程中体验利用数字化工具处理数据和发现信息的过程,提高使用计算机解决实际问题的能力。
教学 重难点 1.了解在解决数值计算问题时常用的方法——解析法。 2.能够利用numpy和matplotlib两个模块绘制函数图像。
教学 环节 教学内容
导入 首先提出问题:什么是数值计算?通过对数值计算的分析让学生了解在中学阶段所涉及到的函数计算、方程求解、数列求和等都属于数值计算。利用计算机程序我们可以解决很多数学方法所描绘的数值计算问题。
项目 提出 项目:与数学公式面对面 在中学数学领域中有很多常见的数学公式,怎样利用计算机编程去求解数学公式所描绘的数值计算问题呢?本项目将围绕求解数学模型的理论、算法和程序实现来进行研究。
任务一 和学生一起回顾在数学课上利用描点法绘制函数图像的过程。 通过描点法会发现,若想画出精度相对较高的函数,则需取多个绘制点进行绘制。想画出趋于完美的函数曲线则需要花费较长时间。我们可以借助计算机绘制数学函数曲线。 任务一:绘制数学函数曲线
活动1 用WPS表格绘制正弦曲线 1.利用电子表格软件绘制函数图像分为三步:建立表格,明确行和列之间的关系;确定x的取值间隔,通过建立相关公式来计算各解析式的值,进而完善表格数据;选择表格中相关数据,建立图表。 其中对表格公式中的PI()和PI()/180进行解释。PI( )即数学常量π,使用此函数可以将π值精确到小数点后14位。PI( )/180则相当于1度。并引导学生注意相关公式的格式,避免因公式建立错误导致数据出错的情况。 2.试一试:师生共同完成WPS绘制正弦曲线的过程,体验借助计算机绘制数学函数曲线的过程。 3.通过对生成的函数图像的分析,学生发现用WPS绘制函数图像的问题所在:由于x的取值间隔太大,图像的关键点太少,精度不够,图像不光滑。进而思考:怎么去提高图像的光滑程度?用缩小x的取值间隔来解决这个问题,但随之而来的是工作量的增加。所以可以借助计算机程序描点绘制函数来达到速度快且精度高的效果。
活动2 利用Python绘制正弦曲线 1.以绘制正弦曲线为例,给学生梳理计算机编程解决问题的一般步骤: 分析问题→设计算法→编写程序→调试运行 2.在Python中,绘制函数图像一般要用到numpy和matplotlib两个模块,这两个模块需要另外安装。演示两个模块的安装过程。 3.介绍numpy模块的功能,其中着重讲解numpy模块中的arange()函数的用法。同时将arange( )和range( )进行对比讲解,通过在Python中执行相关语句让学生更深入透彻地理解他们之间的区别。 通过对y=sin(x)程序中的numpy模块代码分析,明确numpy模块在绘制正弦曲线中的作用,即可以产生sin(x)的若干关键点。 4.介绍matplotlib模块的功能,通过对y=sin(x)程序中的matplotlib模块代码分析,明确matplotlib模块在绘制正弦曲线中的作用,即以将刚才所生成的关键点连接起来。 5.通过对绘制y=sin(x)图像流程图的分析,并参考两个模块的代码,带领学生将绘制y=sin(x)图像的程序完整的编写出来。 6.试一试: 参考绘制y=sin(x)图像程序,来完善程序段,尝试同时绘制出sin(x),sin(-x),sin(2x)/2的图像。(师生共同完成程序的编写并调试运行。) 结论:对比用WPS表格绘制的函数,Python程序绘制的函数明显图像平滑了很多。
课堂 小结 1.利用WPS绘制正弦曲线可行但并不高效。 2.利用Python绘制正弦曲线时,首先需要安装numpy和matplotlib两个模块。 3.通过操作和分析,明显感受到了利用python语言编程绘图的准确和高效。
课后 习题 分析并完善下列代码段,尝试用python绘制y=x2-2x+1的图像。并对程序进行调试运行。 import numpy as np #加载matplotlib.pyplot并取名为plt #列表x在10到12之间,每隔0.01取个点 y=x**2-2*x+1 #绘制图像 plt.title('一元二次方程') plt.xlabel('X') plt.ylabel('Y') plt.show()