1、打开Python开发工具IDLE,新建‘search.py’。
2、F5运行程序,list1被正确排序,写这个的目的是说明二分法查找必须前提是一个有序的列表,如果一开始无序首先要排序,当数据量大的时候,快速排序是一个很好的选择,再进行二分法查找。
3、用递归的思想,递归就一定有结束条件。
4、if len(li)==1: #li长度等于1,只比较这个列表元素与要查找到值return li[0]==item。
5、if len(li)==0: #li长度等于0,全部查找结束还是没有这个值 return False。
6、为程序添加main方法。
7、F5运行程序,正确打印出二分法查找结果,False True。
一、二分法的优点:
1、计算简单,方法可靠;
2、对f (x) 要求不高(只要连续即可) ;
3、收敛性总能得到保证;
4、二分法计算过程简单, 对)(xf要求不高(只要连续即可),程序容易实现。
二、二分法的缺点:可在大范围内求根,该方法收敛较慢,且不能求重根和复根, 其收敛速度仅与一个以 1/2为比值的等比级数相同,通常用于求根的初始近似值,而后在使用其它的求根方法。
扩展资料:
二分法的求法:
1、确定区间[a,b],验证f(a)·f(b)0,给定精确度ξ。
2、求区间(a,b)的中点c。
3、计算f(c):
(1)若f(c)=0,则c就是函数的零点;
(2)若f(a)·f(c)0,则令b=c;
(3)若f(c)·f(b)0,则令a=c;
(4)判断是否达到精确度ξ:即若|a-b|ξ,则得到零点近似值a(或b),否则重复2-4。
参考资料来源:
百度百科-二分法
一般地,对于函数f(x),如果存在实数c,当x=c时f(c)=0,那么把x=c叫做函数f(x)的零点。
解方程即要求f(x)的所有零点。
先找到a、b,使f(a),f(b)异号,说明在区间(a,b)内一定有零点,然后求f[(a+b)/2],
现在假设f(a)0,f(b)0,a
a,从①开始继续使用
中点函数值判断。
如果f[(a+b)/2]0,则在区间(a,(a+b)/2)内有零点,(a+b)/2=b,从①开始继续使用
中点函数值判断。
这样就可以不断接近零点。
通过每次把f(x)的零点所在小区间收缩一半的方法,使区间的两个端点逐步迫近函数的零点,以求得零点的近似值,这种方法叫做二分法。
e.g.方程x^3+lgx=18的根x约等于多少?(结果精确到0.1)
x^3+lgx=18
x=2
8+0.30=8.318
x=3
27+0.41
18,
lgx的值,基本不影响x的值,后面就不讨论了,
x=2.5
x^3=15.62518
x=2.75
x^3=20.818
x=(2.5+2.75)/2=2.6
这就是用二分法,
实际,可以将17.65,或18,开3次方就可得:2.6
二分法求方程近似解保留两位小数的意思如下:
这句话的意思是:利用二分法则去计算方程的近似解的时候,其结果后面进行四舍五入,并保留两位小数。因为在通常的情况下,近似解都不是精确值,它仅仅是近似精确值,所以大部分题目都会要求保留一定的小数位置,方便计算和理解。
使用近似值:
使用近似数就有一个近似程度的问题,一个近似数四舍五入的位数,即这个近似数精确到哪一位。从左边第一个不是零的数字起,到精确到的那一位数止,所有的数字都叫做这个数值的“有效数字”。
在实际计算时,对精确的要求提法不同,一般是可以“精确到哪一位”或者要求“保留几位数”或“保留几个有效数字”。在没有特殊说明的情况下,要遵循四舍五入的原则。