Mein Programm findet die Wurzeln mit Hilfe des Newtonschen Algorithmus. Ich habe Probleme mit einem letzten Teil, wenn es nicht genug Iterationen gibt, um die Wurzel zu finden, um zu drucken, dass die Wurzel nicht gefunden wurde.
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"
irgendwie scheint es die letzte if-Anweisung zu überspringen und nichts zu drucken, ich habe versucht, es an verschiedenen Stellen zu platzieren. wenn ich es vor der vorherigen if-Anweisung platziert habe, dann überspringt es den x0=x1 Teil. Ich bin verwirrt von dem, was falsch mit ihm.
N ist die Anzahl der Iterationen, x0 ist die Anfangsschätzung