资源简介 (共28张PPT)4.2数值计算CONTENTS感受数据的图形化表示01设计解析式方程02设计迭代方程03进行数值计算04了解数值类算法在实际问题解决时的应用及常用方法05第一章节diyizhangjie导入:数值计算数值计算,其实是数学的一个分支,它以数字计算机求解数学问题的理论和方法为研究对象,借助计算机运算速度快、精确度高的特点来解决各种数据问题。1.1 导入什么是数值计算04函数计算方程求解数列求和数值计算=建立WPS表格进行计算建立折线图图表1.2 用WPS表格绘制正弦曲线05x Sin(x) Sin(-x) Sin(2x)/21 0 =sin(pi()*A2/180)2 303 60… …14 360Pi( ) 即数学常量П,使用此函数可以将П值精确到小数点后14位。1.2 用WPS表格绘制正弦曲线06Pi( )/180 则相当于1度。B2单元格中的公式=Sin(Pi()*A2/180)C2单元格中的公式=Sin(-Pi()*A2/180)D2单元格中的公式=Sin(2*Pi()*A2/180)/2选择相应的数据建立折线图图表设置X轴数据系列格式1.2 用WPS表格绘制正弦曲线07图像的关键点少,精度不够,图像不光滑。每隔1°画一个点,数据表上就会增加300多行新数据。我们还可以借助程序描点绘制函数来达到速度快且精度高的效果。1.3 利用python绘制正弦曲线Numpy模块Matplotlib模块两个模块的安装08简介numpy是一个科学计算包,其中包含很多数学函数,如三角函数、矩阵计算方法等。通过该模块中的arange函数可以创建一个等差数列。如在0~2П之间每隔0.01取个值,则可以用arange(0,2*numpy.pi ,0.01)来表示,其中numpy.pi表示Π。下列代码可以产生sin(x)的若干个关键点。应用─创建三角函数图像#加载numpy模块并取一个简洁的别名为np,便于后续引用import numpy as np#x在0到2Π之间,每隔0.01取一个点x=np.arange(0 , 2*np.pi , 0.01) #调用numpy模块的arange函数,其参数为开始参数0,结束参数2*np. pi,间隔参数0.01y=np.sin(x) #通过解析式计算列表x对应的列表y的值1.3.1 Numpy模块09简介matplotlib模块是Python中最出色的绘图库,功能很完善。调用matplotlib. pyplot时,坐标系可以根据数值范围自动生成。matplotlib的绘图原理很简单,利用plot画线函数就可以在直角平面内轻松地将(x,y)坐标点对连接成平滑曲线。例如:在上述代码的适当位置增加下列语句,就可以将刚才生产的关键点连接起来。应用#加载matplotlib. pyplot并取别名为pltimport matplotlib.pyplot as pltplt.plot(x, y) # plot()函数将点对连线plt.show () # show()函数将绘制的图像窗口显示出来1.3.2 Matplotlib模块10参考代码并补充#加载numpy模块并取名为npimport 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(2*x)/2图像plt.title('sin(x)’) #设置图像标题plt.xlabel('X’) #设置X轴标题plt.ylabel('Y’) #设置Y轴标题plt.show() #将绘制的函数图像窗口显示出来input("运行完毕,请按回车键退出...")1.4 Python绘制函数图像11完整代码import numpy as np #加载numpy模块并取名为npimport matplotlib.pyplot as plt #加载matplotlib.pyplot并取名为pltx=np.arange(0,2*np.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(2*x)/2 #求sin(2x)/2对应的y3值plt.plot(x,y1) #绘制sin(x)图像plt.plot(x,y2) #绘制sin(-x)图像plt.plot(x,y3) #绘制sin(2*x)/2图像plt.title('sin(x)’) #设置图像标题plt.xlabel('X’) #设置X轴标题plt.ylabel('Y’) #设置Y轴标题plt.show() #将绘制的函数图像窗口显示出来input("运行完毕,请按回车键退出...")1.4 Python绘制函数图像121.4 Python绘制函数图像13第二章节dierzhangjie求解斐波那契数列2.1 斐波那契数列故事得从西元1202年说起,话说有一位意大利青年,名叫斐波那契。在他的一部著作中提出了一个有趣的问题:假设一对刚出生的小兔一个月后就能长成大兔,再过一个月就能生下一对小兔,并且此后每个月都生一对小兔,一年内没有发生死亡,问:一对刚出生的兔子,一年内繁殖成多少对兔子 152.1 斐波那契数列16右边这一列数字是有规律的。第一个数和第二个数为1,之后的每一个数为之前两个数之和。比如,六月份的兔子数量为四月份和五月份兔子数量之和,即8=5+3。2.1.1斐波那契数列-数学计算171,1,1+1=2,2+1=3,3+2=5,5+3=8,8+5=13,13+8=21,…..数学计算2.1.2 斐波那契数列-WPS18WPS2.1.3 斐波那契数列-Python19Python第三章节disanzhangjie迭代法3.1迭代法每一次的重复称为一次迭代,每次迭代的结果被用作下一次的迭代值一般用于数值计算。累加、累乘都是迭代算法的基础应用。迭代法(辗转法)是一种不断用变量的旧值递推出新值的解决问题的方法。迭代算法是用计算机解决问题的一种基本方法。21确定迭代变量建立迭代关系式3.1迭代法对迭代过程进行控制22利用迭代法来解决问题,有三个关键的步骤:第四章节disizhangjie扩展练习4.1 练习一24尝试用python绘制y=x2-2x+1的图像import numpy as np #加载numpy模块并取名为npimport matplotlib.pyplot as plt #加载matplotlib.pyplot并取名为pltx=np.arange(-10,10,0.01) #x在0到2π之间,每隔0.01取一个点y=x**2-2*x+1 #求x**2-2x+1对应的y1值plt.plot(x,y) #绘制图像plt.title('y=x**2-2*x+1’) #设置图像标题plt.xlabel('X’) #设置X轴标题plt.ylabel('Y’) #设置Y轴标题plt.show() #将绘制的函数图像窗口显示出来input("运行完毕,请按回车键退出...")4.2 练习二尝试用辗转相除法求解两个正整数的最大公约数25辗转相除法:用较大数除以较小数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。如果是求两个数的最大公约数,那么最后的除数就是这两个数的最大公约数。4.2.2练习二实现原理讲解 尝试用辗转相除法求解两个正整数的最大公约数26 step1: 将两数中大的那个数放在m中,小的放在n中。 step2: 求出m被n除后的余数r。 step3: 若余数为0则执行步骤(7),否则执行步骤(4)。 step4: 把除数作为新的被除数;把余数作为新的除数。 step5: 求出新的余数r。 step6: 重复步骤(3)到(5)。 step7: 输出n,n即为最大公约数。4.2.2练习二python代码实现尝试用辗转相除法求解两个正整数的最大公约数 m,n=map(int,input("请输入两个数:").split(","))if mm,n=n,mr=m%nwhile r:m=nn=rr=m%nprint(f"最大公约数师{n}") m,n: 先用split函数把输入用逗号分隔的两个数分离,再用map函数把分离的两个数变成整数,最后分别赋值给m和n。if: 在后面的代码中m作为被除数,要比n大,所以如果m小于n,则交换m和n的值(Python中不用第三个变量作为中间变量,可直接用上述语句进行变量间值的交换)。while: 如果余数不为0,则把n赋值给m,r赋值给n,算出新的余数,直到余数变为0,程序结束,得到的n即为最大公约数。print: 打印出最大公约数。27THANKS谢谢聆听 展开更多...... 收起↑ 资源预览