プログラムのこの部分を while ループに入れることができません。poly、x_0、およびの値を差し込んだ後epsilon、プログラムは正しくans機能する関数を使用して値を計算evaluate_poly()し、私の特定のインスタンスでは答えを出します-13.2119。使用される私のイプシロン値は です0.0001。は実際にはループをスキップするabs(ans)よりも大きいのはepsilonなぜですか?
while ループの前に正しく計算されていることを確認するステートメントと、値が正しく取り込まれていることを確認するステートメントを行print ansのすぐ下に配置しました(これは実行されます)。x_01 = 0print epsilonepsilon
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