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