2 Stimmen

Probleme mit der Formatierung der if-else-Anweisung in Python

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X