内容正文:
《4.2数值计算》学历案
【课题与课时】
课题:4.2数值计算
课时:第2课时
【学习目标】
1、了解 numpy 模块和 matplotlib 模块的作用
2、学会 numpy 模块的基本使用和 matplotlib 模块的简单绘图方法
3、理解迭代法的基本思想,能运用迭代法解决简单的数值计算问题
【重点】numpy 模块的基本使用、matplotlib 模块的简单绘图、迭代法的基本思想和应用
【难点】能熟练运用 numpy 模块、matplotlib 模块结合迭代法解决数值计算问题
【评价任务】
活动1、初识实用模块。让学生自学,初步了解 numpy 模块和 matplotlib 模块的作用及基本使用方法。然后老师通过检测的形式强化内容,完成学习目标 1 和学习目标 2 的部分内容,为后续学习做铺垫。
活动2、用 numpy 模块处理数组数据并绘制图形。学生运用活动 1 所学的 numpy 模块知识处理一组数值计算数据,再使用 matplotlib 模块将数据可视化,初步完成学习目标 2。
活动3、运用迭代法求解方程近似解并可视化。学生结合迭代法的基本思想,编写程序求解方程的近似解,同时利用 matplotlib 模块绘制迭代过程,感受模块和迭代法结合解决问题的优势,完成学习目标 2 和学习目标 3,最后通过修改程序解决另一个数值计算问题进一步巩固学习目标。
【学习过程】
《数值计算》项目学习单
1、项目主题内容
数值计算
2、项目学法建议
(1)组内合作,认真对待每一个问题,每个任务完成之后,组内自评,组间竞学。
(2)养成自主探究的学习习惯,学会独立思考,借助学习单来解决问题。
(3)任何操作都要注意规范性,尤其是代码的输入格式和模块的正确导入。
3、项目所需资源
(1)网络教室
(2)学习单、学历案、PPT
(3)数值计算示例程序、相关数据文件
项目环节
项目活动
项目指导
导入
思考:
1、如何快速处理大量的数值计算数据?
2、怎样将数值计算结果更直观地展示出来?
3、对于复杂的方程,如何用简单的方法求出近似解?
引入新课 numpy 模块、matplotlib 模块和迭代法
numpy 模块是处理数值计算的强大工具,matplotlib 模块可实现数据可视化,迭代法能有效求解方程近似解。
使用这些方法和工具可以提高数值计算的效率和直观性。
初识实用模块
【活动一】初识 numpy 和 matplotlib 模块
阅读课本相关内容,完成下列问题
1、numpy 模块的主要作用是________。
2、matplotlib 模块中用于绘图的子模块通常是________。
3、导入 numpy 模块的常用语句是________,导入 matplotlib.pyplot 的常用语句是________。
4、请写出用 numpy 创建一个包含 1 到 10 的数组的代码________。
5、请写出用 matplotlib 绘制简单折线图的基本步骤________。
【学习检测】
1、用 numpy 计算数组 [1,2,3,4,5] 的平均值和标准差。
2、绘制 y = 2x + 1 在 x 从 0 到 10 的折线图。
【知识点拨】
1、numpy 模块主要用于数组运算、数值计算等。
2、matplotlib.pyplot 是常用的绘图子模块。
3、导入语句通常为 import numpy as np 和 import matplotlib.pyplot as plt。
4、创建数组可使用 np.arange (1,11) 或 np.array ([1,2,3,4,5,6,7,8,9,10])。
5、绘制折线图基本步骤:准备数据、调用 plt.plot () 绘图、添加标题和坐标轴标签、显示图形。
6、计算平均值用 np.mean (),计算标准差用 np.std ()。
探究一
模块应用实践
【活动二】:用 numpy 模块处理数组数据并绘制图形
1、现有一组数据 [5,8,12,15,20,23,25],使用 numpy 计算这组数据的总和、最大值和最小值。
代码如下:
import numpy as np
data = np.array([5,8,12,15,20,23,25])
1、 【知识点拨】
2、numpy 中计算总和用 np.sum (),最大值用 np.max (),最小值用 np.min ()。
探究一
模块应用实践
sum_data =
max_data =
min_data =
print ("总和:", sum_data)
print ("最大值:", max_data)
print ("最小值:", min_data)
2、将上述数据用 matplotlib 绘制柱状图,并添加标题 “数据统计柱状图” 和坐标轴标签 “数据序号”“数据值”。
代码补充完整:
import matplotlib.pyplot as plt
x = np.arange(1, 8)
y = data
# 绘制柱状图
# 添加标题
# 添加 x 轴标签
________ # 添加 y 轴标签
plt.show()
3、matplotlib 绘制柱状图用 plt.bar (x,y),添加标题用plt.title (),添加 x 轴标签用 plt.xlabel (),添加 y 轴标签用 plt.ylabel ()。
4、注意函数的参数和调用格式。
探究二
迭代法应用
【活动三】:补运用迭代法求解方程近似解并可视化
求解方程 x³ - 2x - 5 = 0 在区间 [2,3] 内的近似解,精度要求为 1e-6。
迭代公式:xₙ₊₁ = (2xₙ + 5)^(1/3)
1、补全下列代码
import numpy as np
import matplotlib.pyplot as plt
def iterate_method(x0, eps):
x_list = [x0]
while True:
x1 = (2 * x0 + 5) **(1/3)
x_list.append(x1)
if abs(x1 - x0) < eps:
break
x0 = x1
return x1, x_list
x0 = 2 # 初始值
eps = 1e-6
root, x_list = iterate_method(x0, eps)
print ("方程的近似解为:", root)
# 绘制迭代过程
plt.plot(x_list, 'o-')
plt.title ("迭代过程")
plt.xlabel ("迭代次数")
plt.ylabel ("近似解值")
plt.show()
【知识点拨】
1、迭代法是一种不断用变量的旧值递推新值的过程,通过多次迭代逼近真实解。
2、在代码中,要注意迭代终止条件的设置,即两次迭代结果的差值小于精度要求。
3、绘制迭代过程时,将每次迭代的结果存入列表,再用 plot 函数绘制。
探究三
巩固练习
【巩固练习】:运用迭代法求解方程 x = cos (x) 的近似解,精度为 1e-5,并绘制迭代过程。
补全程序并调试运行
import numpy as np
import matplotlib.pyplot as plt
def iterate_cos(x0, eps):
x_list = [x0]
while True:
x1 = np.cos(x0)
x_list.append(x1)
if abs(x1 - x0) < eps:
break
x0 = x1
return x1, x_list
x0 = ________ # 初始值,可设为 0
eps = 1e-5
root, x_list = iterate_cos(x0, eps)
print ("方程 x = cos (x) 的近似解为:", root)
【知识点拨】
1、 方程 x = cos (x) 的迭代公式就是
xₙ₊₁ = cos (xₙ)。
2、初始值可以根据经验或大致范围选取,这里可设为 0。
3、注意 numpy 中 cos 函数的使用,参数为弧度。
# 绘制迭代过程
plt.plot(x_list, 'o-')
plt.title ("迭代过程")
plt.xlabel ("迭代次数")
plt.ylabel ("近似解值")
plt.show()
知识
小节
提升
感悟
通过本节课的学习你有什么收获?
扩展习题
【扩展习题】
使用 numpy 生成 100 个符合正态分布(均值为 5,标准差为 2)的随机数,并用 matplotlib 绘制其直方图。
参考代码如下:
import numpy as np
import matplotlib.pyplot as plt
# 生成随机数
data = np.random.normal(5, 2, 100)
# 绘制直方图
plt.hist(data, bins=10)
plt.title ("正态分布随机数直方图")
plt.xlabel ("数值")
plt.ylabel ("频数")
plt.show()
【知识点拨】
1、numpy 中生成正态分布随机数用 np.random.normal (均值,标准差,数量)。
2、matplotlib 绘制直方图用 plt.hist (),bins 参数表示直方图的箱数。
【检测与作业】
1、 尝试用Python绘制y=x2-2x+1的图像。
2、 用相除法求解两个正整数的最大公约数
【学后反思】
我的收获与感悟:
1、通过学习了解计算机处理大量的数值计算的过程,感受了技术在生活中的重要作用,体验了技术的重要性。
2、通过学习了解了数值类算法在实际生活中的应用。
【板书设计】
4.2数值计算
1、函numpy 模块:作用、基本使用(数组创建、运算)
2、matplotlib 模块:作用、简单绘图(折线图、柱状图等)
3、迭代法:基本思想、应用(求解方程近似解)
4、模块与迭代法结合解决数值计算问题
学科网(北京)股份有限公司
$