epsilon設置爲0.1,但它給我的結果,直到1.2。我不知道是什麼原因造成的。誰能幫忙?python epsilon錯誤的計算
def evaluate_poly(poly, x):
total = 0.0
for i in range(len(poly)):
total += poly[i] * (x ** i)
return total
def compute_deriv(poly):
deriv = []
if len(poly) < 2:
return [0.0]
else:
for i in range(1, len(poly)):
deriv.append(float(poly[i] * i))
return deriv
def compute_root(poly, x_0, epsilon):
num = 0
root = x_0
while abs(evaluate_poly(poly, root)) >= epsilon:
root = root - evaluate_poly(poly, root)/evaluate_poly(compute_deriv(poly), root)
num += 1
return [root, num]
print(compute_root((1.0,-2.0,1.0), 14, 0.1))
請首先確定您的問題:什麼是epsilon,你想要計算什麼,... –
「epsilon設置爲1.1」 - 你的代碼似乎使用0.1。 「但它給我的結果,直到1.2。」 - 那有什麼意思?如果你想說服任何人,你所看到的不僅僅是浮點四捨五入錯誤,你需要提供更多細節。 –
@SergeBallesta我明白(雖然看起來更像牛頓的方法),但他們的代碼使用epsilon = 0.1,而在問題中他們說他們已經將epsilon設置爲1.1。 –