我的程序使用牛顿算法找到根。如果没有足够的迭代来找到要打印的根,那么我在最后一部分遇到了麻烦。
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 是初始猜测