我无法让程序的这一部分进入 while 循环。在插入、 和的值后poly
,程序会计算一个值以使用正确工作的函数,并且在我的具体实例中给出了答案。我使用的 epsilon 值为. 既然实际上大于它为什么要跳过循环?x_0
epsilon
ans
evaluate_poly()
-13.2119
0.0001
abs(ans)
epsilon
我print ans
在该行的正下方放置了一条语句x_01 = 0
,以确保它在 while 循环之前正确计算,还添加了一条print epsilon
语句,以确保它epsilon
正确地获取了我的值(确实如此)。
def compute_root(poly, x_0, epsilon):
"""uses newton's method to find a root of a polynomial function"""
ans = evaluate_poly(poly, x_0)
x_01 = 0
while abs(ans) > epsilon:
Dpoly = compute_deriv(poly)
Fprime = evaluate_poly(Dpoly, x_01)
return ans
x_01 = x_0 - (ans/Fprime)
print x_01
return x_01
print ans