资源简介 (共25张PPT)教科版高中信息技术第4单元计算与问题解决必修1数据与计算4.2数值计算第1课时课堂导入人们对计算机的最初应用大多是数值计算,主要借助计算机运算速度快,精确度高的特点来解决各种数学问题,如函数计算、方程的求解、数列求和等都属于数值计算。在数学课上经常需要手工绘制函数图像,今天我们借助计算机来绘制函数图像。利用电子表格软件就能绘制函数图像。方法如下:若以30°为间隔,绘制0-360°之间的正弦函数图像,则首先需要完成下列表格数据的计算。xsin(x)sin(-x)sin(2x)/2100002300.5-0.50.53600.866025404-0.8660254040.866025404……………14360000表4.2.1函数计算利用wps绘制的函数图像利用WPS表格画图2x2+x-6=0利用python绘制正弦曲线在Python中,绘制函数图像一般要用到numpy和matplotlib两个模块,这两个模块需要另外安装。Numpy模块简介numpy是一个科学计算包,其中包括很多数学函数,如三角函数、矩阵计算方法等importnumpyasnp#加载numpy模块并取一个简洁的别名为npx=np.arrange(0,2np.pi,0.01)#x在0到2π之间,每隔0.01取一个点y=np.sin(x)#通过解析式计算列表x对应的列表y的值matplotlib模块简介Matplotlib模块是一个绘图库,importmatplotlib.pylotasplt#加载matplotlib.pylot并取别名为pltplt.plot(x,y)#将点对连线plt.show()#将绘制的图像窗口显示出来参考上述代码,让我们一起来完善以下Python程序,尝试绘出“sin(x)”“sin(-x)”和“sin(2x)/2”的图像。importnumpyasnp#加载numpy模块并取别名为npimport?matplotlib.pyplot?as?plt#加载matplotlib.pyplot并取别名为pltx=np.arange(0,2np.pi,0.01)#列表x在0到2π之间,毎隔0.01取一个点y1=np.sin(x)#求sin(x)对应的列表y1的值y2=np.sin(-x)#求sin(-x)对立的列表y2的值y3=np.sin(2x)/2#求sin(2x)/2对应的列表y3的值plt.plot(x,y1)#绘制sin(x)的图像plt.plot(x,y2)#绘制sin(-x)的图像plt.plot(x,y3)#绘制sin(2x)/2的图像plt.title(‘sin(x)’)??#设置图像标题plt.xlabel(‘X’)??#设置X轴标题plt.ylabel(‘Y’)??#设置Y轴标题plt.show()??#将绘制的函数图像窗口显示出来Python程序代码:利用python程序绘制的函数图像数学家斐波那契在《计算之书》中提出了一个有趣的兔子问题:假设一对兔子每个月可以生一对小兔子,一对兔子出生后第2个月就开始生小兔子。则一对兔子一年内能繁殖成多少对?10年呢?[1,1,2,3,5,8,13,21,34……]斐波那契数列,兔子数列,黄金分割数列,随着数列项数的增加,前一项与后一项之比越来越逼近黄金分割的数值,0.6180339887第1个月和第2个月的兔子的对数之和为第3个月的兔子对数,第2个月和第3个月的兔子对数之和为第4个月的兔子对数……,每个月的兔子对数是前两个月的兔子对数之和,又同时作为下一个月兔子对数的加数。这种重复反馈的过程称为迭代。迭代法也称辗转法,是用计算机解决问题的一种基本方法。迭代通常是为了接近并达到抽需的目标或结果。每一次对过程的重复称为一次“迭代”,而每一次迭代得到的结果会被用来作为下一次迭代的初始值。Python程序代码如下:deffib(n):#迭代求Fibonacci数列f2=f1=1foriinrange(3,n+1):f1,f2=f2,f1+f2returnf2n=int(input('输入需要计算的月份数:'))print('兔子总对数为:',fib(n))input("运行完毕,请按回车键退出...")程序源代码及执行结果截图:小结1、理解解数据的图形化表示,如利用wps表格绘图2、掌握numpy模块和matplotlib模块的安装和使用3、理解斐波那契数列4、理解迭代法练习1、尝试用Python绘制y=x2—2x+1的图像。代码如下:importnumpyasnp#加载numpy模块并取名为npimportmatplotlib.pyplotasplt#加载matplotlib.pyplot并取名为pltx=np.arange(-10,12,0.01)y=x2-2x+1plt.plot(x,y)plt.title('一元二次方程')plt.xlabel('X')plt.ylabel('Y')plt.show()利用Python绘制y=x2—2x+1的图像。2、求解方程ax2+bx+c=0importmatha=float(input("请输入方程系数a(!=0):"))b=float(input("请输入方程系数b:"))c=float(input("请输入方程系数c:"))d=bb-4acifd>0:x1=(-b+math.sqrt(d))/(2a)x2=(-b-math.sqrt(d))/(2a)print("方程有两个不同的解",x1,x2)elifd==0:x1=-b/(2a)print("方程有两个相同的解",x1)else:print("方程无解")3、用辗转相除法求解两个正整数的最大公约数参考答案:num1=int(input('请输入第一个正整数:'))num2=int(input('请输入第二个正整数:'))m=max(num1,num2)n=min(num1,num2)r=m%nwhiler!=0:m=nn=rr=m%nprint('这两个数的最大公约数为:',n)input("运行完毕,请按回车键退出...")4、牛顿迭代法求解x5+x4+x-3=0参考代码:deff(x):#定义f(x)函数,计算f(x)=x5+x4+x-10f=x5+x4+x-10returnfdeff1(x):#定义f(x)函数,求导数f1(x)=5x4+4x3+1f1=5(x4)+4(x3)+1returnf1#设置初始值x=1x1=2#x1的初值只要确保|x-x1|>1e-10就可以print('迭代过程中的x值:')#根据迭代公式计算whileabs(x-x1)>1e-10:x1=xy1=f(x)y2=f1(x1)x=x1-y1/y2print(x)程序代码及执行结果界面截图:THANKS 展开更多...... 收起↑ 资源预览