1
我想在Python 2.7中實現一個二分法函數。我非常難以理解爲什麼我的代碼沒有返回包含在我的測試中的根。函數不返回值(Python 2.7)
當我在代碼中打印語句時,很明顯算法找到了根,但是我一定在實際語法中遺漏了一些基本的東西(我是python的一個完整的newby)。
代碼是在這裏:
def bisection(a,b,fun,tol):
c = (a+b)/2.0
if (b-a)/2.0 <= tol:
#Debugging print statement 1:
#print 'SOL1: c = ', c
return c
if fun(c) == 0:
#Debugging print statement 2:
#print 'SOL2: c = ', c
return c
elif fun(a)*fun(c) < 0:
b = c
else:
a = c
print 'a =', a
print 'b =', b
bisection(a, b, fun, tol)
def tstr(x):
return 2*(x**2) - 3*x + 1
sol = bisection(0, 0.9, tstr, 0.01)
唉唉,精彩紛呈。謝啦。 – Aidenhjj