内容正文:
4.3非数值计算
学习目标
了解算法设计中的分治思想
运用二分查找解决实际问题
理解递归算法
分治策略
将一个大问题分解成若干个小问题,逐个解决
二分查找
又称折半查找,将数列有序排列,采用跳跃式查找数据;
以递增数列为例,先以中点位置的元素作为比较对象,如果要找的元素值小于该中点元素,则将待查序列缩小为左半部分,否则为右半部分;每一次比较后都可以将查找区间缩小一半
numpy模块
numpy是一个科学计算包。其中包含很多数学函数,如三角函数、矩阵计算方法等。通过该模块中的arange函数可以创建一个等差数列,也就是描点法中的取x值,然后用y=np.sin(x)计算y的值
绘图时确定点
matplotlib模块
matplotlib是绘图库。matplotlib模块绘制函数图像。调用matplotlib.pyplot在直角平面内轻松地将(x,y)坐标点对连接成平滑曲线。
绘图时连线
例:用numpy与matplotlib绘制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() #将绘制的函数图像窗口显示出来
例:用numpy与matplotlib绘制sin(x)图像
完成书本p95-96页题目
书本p95-96页题目答案
import numpy as np
x=np.arange(0,2*np.pi,0.01)
y1=sin(x)
y3=sin(2x)/2
plt.plot(x,y2)
plt.plot(x,y3)
迭代法
又称辗转法,计算机解决问题的一种基本方法。
迭代指的是为了接近并达到所需的目标