
4.2 数值计算 【学习目标】 1.通过求解一元二次方程的解,了解计算机编程解决数值计算问题的一般流程,并能够使用解析法解决实际问题。 2.通过绘制一元多次方程函数图像,了解Python利用numpy和matplotlib两个模块绘制图像的基本方法。 3.通过编程求解一元多次方程,了解迭代法的含义,并尝试用牛顿迭代法解决实际问题。 【教学重点】 1.了解数值类算法在实际问题解决时的常用方法,如解析法和迭代法。 2.能够利用numpy和matplotlib两个模块绘制函数图像。 【教学难点】 理解迭代法的含义,并能够用牛顿迭代法求解一元多次方程。 【教学过程】 第一课时 师:计算机最初研究的用途就是进行数值计算,因此计算机可以解决很多数学方法所描绘的数值计算问题。本节将围绕项目“与数学公式面对面”探讨在中学数学领域里常见的数学公式与程序设计的有趣结合。完成下列的项目报告书。 完成项目报告书的过程中,比较数学方法、软件工具和编程解决问题的异同。 参考答案: 方法一:写出数学方法求解方程2x2+x-6=0。 方程可因式分解为(2x-3)(x+2)=0,因此x=1.5或x=-2。 用求根公式计算得x=1.5或x=-2。 方法二:wps表格画图。 存在问题,如果需要图象更加光滑,必须x的取值间隔要小;取值范围要恰当。 方法三:Python求解。 import math a=float(input("请输入方程系数a(!=0):")) b=float(input("请输入方程系数b:")) c=float(input("请输入方程系数c:")) d=b*b-4*a*c if d>0: x1=(-b+math.sqrt(d))/(2*a) x2=(-b-math.sqrt(d))/(2*a) print("方程有两个不同的解",x1,x2) elif d==0: x1=-b/(2*a) print("方程有两个相同的解",x1) else: print("方程无解") 生:完成项目报告,并思考计算机编程在解决问题时的一般步骤流程和方法。 总结:计算机编程解决问题的一般流程 数学建模数值计算 实际问题数学问题解 一元二次方程编程解决问题的方法:解析法。 第二课时 一、引入 师:一元二次方程可以根据公式来直接求解,但一元多次方程没有现成的公式。可以利用绘制函数图像和编程实现问题的解决,完成项目报告。 为了完成该项目,必须学习如何利用Python绘制函数图像和编程求解一元多次方程。 二、Python绘制函数图像 师:在Python中绘制函数图像一般要用到numpy和matplotlib两个模块。 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并取别名为plt x=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() #将绘制的函数图像窗口显示出来 练习:模仿绘制sin函数的方法,完成项目报告书,绘制x5+x4+x-10=0的图像。 生: import numpy as np #加载numpy模块并取一个简洁的别名为np,便于后续引用 import matplotlib.pyplot as plt #加载matplotlib.pyplot并取别名为plt x=np.arange(-1,2,0.01) #x在-1,2之间,每隔0.01取一个点 y=x**5+x**4+x-3 #求对应的y值 plt.plot(x,y) #绘制图像,系统自动配置蓝色 plt.title('x^5+x^4+x-3') #设置图像标题 plt.xlabel('X') #设置X轴标题 plt.ylabel('Y') #设置Y轴标题 plt.sh ... ...
~~ 您好,已阅读到文档的结尾了 ~~