利用二分法求单调函数解---python

【利用二分法求单调函数解---python】一个简单的python二分法求解函数

# 二分法 from typing import Callabledef bisection(function:Callable[[float],float],a:float,b:float)->float: # Callable表示回调函数 # 找出令函数在[a,b]区间内是0的值 start:float=a end:float=b if function(a)==0: return a elif function(b)==0: return b elif( function(a)*function(b)>0 ): raise ValueError("找不到解") else: mid:float=start+(end-start)/2.0 while abs(start-mid)>10**-7:#这个循环就是不断二分的过程。最细精度控制在10的-7次 if function(mid)==0: return mid elif function(mid)*function(start)<0: end=mid else: start=mid mid=start+(end-start)/2.0 return middef f(x:float)->float: return x**3-2*x-5if __name__=="__main__": print(bisection(f,1,1000))import doctestdoctest.testmod()

    推荐阅读