Python - 二分法使整个应用程序崩溃
Python - bisection method crashes whole application
我的 window 应用程序有一个奇怪的问题。它的任务是用二分法或割线法计算n次多项式的根,这取决于用户的意愿。现在我的问题开始了,因为如果我将一定的时间间隔放入方法中,它有时会在第一次单击星形按钮后崩溃,但如果它第一次通过,则第二次如果我调整时间间隔 [a,b] 并放入 "a" first go的结果,它没有错误地崩溃了。我什至没有提到我的割线方法正在发疯,对于某些区间答案很好,对于某些区间答案只是随机的。
def secant(self,f, a, b, err):
fb=f(b)
while np.absolute(fb)>err:
midPoint=b-(b-a)*fb/(fb-f(a))
a=b
b=midPoint
fb=f(b)
return b
#--------------------------------------------------------------
def bisection(self,f,a,b,err):
while np.absolute(b-a)>err:
midPoint=(a+b)*0.5
if f(midPoint)*f(a)<0:
b=midPoint
midPoint=(a+b)*0.5
if f(midPoint)*f(b)<0:
a=midPoint
midPoint=(a+b)*0.5
return midPoint
def bisect(f, a, b, e):
""" Bisection Method
inputs:
f - a function.
a - Starting interval
b - Ending interval
e - Acceptable value for 0; (e.g. consider 0.001 == 0)
"""
iterations = 0
while True:
c = (a + b)/2
if b - c <= e:
print('Iterated:', iterations, 'times.')
return c
elif f(b)*f(c) <= 0:
a = c
else:
b = c
iterations += 1
查看更多 here。
我的 window 应用程序有一个奇怪的问题。它的任务是用二分法或割线法计算n次多项式的根,这取决于用户的意愿。现在我的问题开始了,因为如果我将一定的时间间隔放入方法中,它有时会在第一次单击星形按钮后崩溃,但如果它第一次通过,则第二次如果我调整时间间隔 [a,b] 并放入 "a" first go的结果,它没有错误地崩溃了。我什至没有提到我的割线方法正在发疯,对于某些区间答案很好,对于某些区间答案只是随机的。
def secant(self,f, a, b, err):
fb=f(b)
while np.absolute(fb)>err:
midPoint=b-(b-a)*fb/(fb-f(a))
a=b
b=midPoint
fb=f(b)
return b
#--------------------------------------------------------------
def bisection(self,f,a,b,err):
while np.absolute(b-a)>err:
midPoint=(a+b)*0.5
if f(midPoint)*f(a)<0:
b=midPoint
midPoint=(a+b)*0.5
if f(midPoint)*f(b)<0:
a=midPoint
midPoint=(a+b)*0.5
return midPoint
def bisect(f, a, b, e):
""" Bisection Method
inputs:
f - a function.
a - Starting interval
b - Ending interval
e - Acceptable value for 0; (e.g. consider 0.001 == 0)
"""
iterations = 0
while True:
c = (a + b)/2
if b - c <= e:
print('Iterated:', iterations, 'times.')
return c
elif f(b)*f(c) <= 0:
a = c
else:
b = c
iterations += 1
查看更多 here。