我无法让程序的这一部分进入 while 循环。在插入、 和的值后poly,程序会计算一个值以使用正确工作的函数,并且在我的具体实例中给出了答案。我使用的 epsilon 值为. 既然实际上大于它为什么要跳过循环?x_0epsilonansevaluate_poly()-13.21190.0001abs(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