私のプログラムは、ニュートンのアルゴリズムを使用して根を見つけます。ルートが見つからないことを印刷するルートを見つけるのに十分な反復がない場合、最後の部分に問題があります。
for i in range(N):
f= evaluate(p,deg,x0)
s=evaluate(d,deg-1,x0)
if s==0:
print "Can't divide by 0"
return -1
x1=x0 - f/s
print ("Iteration %d" %(i+1))
print "%f" %x0
if abs(x1-x0)<tol:
print "Found a root %f" %x1
return 0
else:
x0=x1
if abs(x1-x0)>tol:
print "root not found"
どういうわけか、最後のifステートメントをスキップして何も出力しないようです。別の場所に配置しようとしました。前のifステートメントの前に配置すると、x0 = x1部分がスキップされます。何が悪いのか混乱しています。
N は反復回数、x0 は初期推定値です。