(新教材)教科版高中信息技术必修一 4.2 数值计算 课件(共22张PPT)

文档属性

名称 (新教材)教科版高中信息技术必修一 4.2 数值计算 课件(共22张PPT)
格式 pptx
文件大小 483.6KB
资源类型 教案
版本资源 教科版(2019)
科目 信息技术(信息科技)
更新时间 2020-08-10 16:16:34

图片预览

文档简介

4.2 数值计算
第4单元 计算与问题解决
学 习 目 标
3.了解数值类算法在实际问题解决时的应用及常用方法。
2.设计解析式或迭代方程,进行数值计算,解决问题。
1.感受数据的图形化表示。
设计解析式或迭代方程,进行数值计算,解决问题。 (重点)
了解数值类算法在实际问题解决时的应用及常用方法。(难点)

计算机最初研究的应用大多是数值计算,人们主要借助计算机运算速度快,精确度高的特点来解决各种数学问题,如函数计算、方程的求解、数列求和等都属于数值计算。
在数学课上经常需要手工绘制函数图像,今天我们借助计算机来绘制函数图像。
A
B
C
D
x
sin(x)
sin(-x)
sin(2x)/2
1
0
0
0
0
2
30
3
60





14
360
0
0
0
表4.2.1 函数计算
活动1 用WPS表格绘制正弦曲线
方法如下:若以30°为间隔,绘制0-360°之间的正弦函数图像,则首先需要完成下列表格数据的计算。
任务一 绘制数学函数曲线
利用wps绘制的函数图像
方法:选择相应的数据,建立折线图表,设置x轴数据系列格式。
绘制出如下函数图像:
活动2 利用Python绘制正弦曲线
任务一 绘制数学函数曲线
在Python中,绘制函数图像一般要用到Numpy和
Matplotlib两个模块,这两个模块需要另外安装。
numpy模块简介
numpy是一个科学计算包,其中包括很多数学函数,如三角函数、矩阵计算方法、矢量运算、线性代数等。
通过该模块中的arange函数可以创建一个等差数列。 如在0-2π之间每隔0.01取个值,则可以用arange(0,2* numpy.pi,0.01)表示,其中numpy.pi表示π。
下列代码可以产生sin(x)的若干个关键点。
import numpy as np #加载numpy模块并取一个简洁的别名np,便于后续引用
x=np. arange(0,2*np.pi,0.01) #x在0到2π之间,每隔0.01取一个点
y=np.sin(x) #通过解析式计算列表x对应的列表y的值
matplotlib模块是一个绘图库。调用matplotlib.pyplot时,坐标系可以根据数值范围自动生成。
matplotlib的绘图原理很简单,利用plot画线函数就可以在直角平面内轻松地将(x,y)坐标点对连接成平滑曲线。例如:在上述代码的适当位置增加下列语句,就可以将刚才生成的关键点连接起来。
matplotlib模块简介
import matplotlib.pyplot as plt #加载matplotlib.pyplot并取名p1t
plt.plot(x,y) #将点对连线
plt.show() #将绘制的图像窗口显示出来
利用Python绘制正弦曲线方法:
导入numpy模块,通过该模块中的arange函数可以创建一个等差数列,也就是描点法中的取x值,然后用y=np.sin(x)计算y的值。 接着调用matplotlib模块绘制函数图像。调用matplotlib.pyplot在直角平面内轻松地将(x,y)坐标点对连接成平滑曲线。
绘制y=sin(x)函数的图像程序如下:
import numpy as np #加载numpy模块并取一个简洁的别名为np, 便于后续引用
import matplotlib.pyplot as plt #加载matplotlib.pyplot并取别名为pltx=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') #设置Y轴标题plt.show() #将绘制的函数图像窗口显示出来
参考以上代码,完善P95-P96的Python程序。
#加载numpy模块并取别名为np
import?matplotlib.pyplot?as?plt #加载matplotlib.pyplot并取别名为plt
#列表x在0到2π之间,毎隔0.01取一个点
#求sin(x)对应的列表y1的值
y2=np.sin(-x) #求sin(-x)对立的列表y2的值
#求sin(2x)/2对应的列表y3的值
plt.plot(x,y1) #绘制sin(x)的图像
#绘制sin(-x)的图像
#绘制sin(2x)/ 2的图像
plt.title(‘sin(x)’) #设置图像标题
plt.xlabel(‘X’) #设置X轴标题
plt.ylabel(‘Y’)? #设置Y轴标题
plt.show( ) #将绘制的函数图像窗口显示出来
import numpy as np
x=np.arange(0,2*np.pi,0.01)
y1=np.sin(x)
y3=np.sin(2*x)/2
plt.plot(x,y2)
plt.plot(x,y3)
利用python程序绘制的函数图像
任务二 求解斐波那契数列
活动1 用WPS求解数列
斐波那契在《计算之书》中提出了一个有趣的兔子问题:假设一对兔子每个月可以生一对小兔子,一对兔子出生后第2个月就开始生小兔子。则一对兔子一年内能繁殖成多少对?10年呢?
图4.2.3 兔子数量
使用电子表格可以很方便地求解,如上左图所示。
当计算到第74个月的时候,由于数据范围及表示精度的问题,导致结果出错,如上右图所示。
第1个月和第2个月的兔子的对数之和为第3个月的兔子对数,第2个月和第3个月的兔子对数之和为第4个月的兔子对数……,每个月的兔子对数是前两个月的兔子对数之和,又同时作为下一个月兔子对数的加数。这种重复反馈的过程称为迭代。
迭代法也称辗转法,是用计算机解决问题的一种基本方法。迭代通常是为了接近并达到所需的目标或结果。每一次对过程的重复称为一次“迭代”,而每一次迭代得到的结果会被用来作为下一次迭代的初始值。
4.2.6 计算的迭代示意图
任务二 求解斐波那契数列
活动2 用Python求解数列
def fib(n): #利用迭代求斐波那契数列的第n个数
f2=f1=1 #第1个月、第2个月初值设定
for i in range(3,n+1):
f1,f2=f2,f1+f2
return f2
n=int(input('输入需要计算的月份数:'))
print('兔子总对数为:',fib(n)) #输出结果
input("运行完毕,请按回车键退出...")
程序执行后,输入74,运行结果:
利用迭代算法解决问题,有三个关键步骤:
(1) 确定迭代变量,如活动2中的f1、f2;
(2) 建立迭代关系式;
(3 )对迭代过程进行控制,这是编写迭代程序必须考虑的问题,不能让迭代过程无休止地重复执行下去。
1. 尝试用Python绘制 y = x2 -2x + 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()
巩固提升
2. 尝试用辗转相除法求解两个正整数的最大公约数。
num1=int(input('请输入第一个正整数:'))
num2=int(input('请输入第二个正整数:'))
m=max(num1,num2)
n=min(num1,num2)
r=m % n
while r!=0:
m=n
n=r
r=m % n
print('这两个数的最大公约数为:',n)
input("运行完毕,请按回车键退出...")
巩固提升