Berechnen Sie die niedrigste monatliche Zahlung mit der Bisektionssuche in python
Ich nehme derzeit am MITx-Kurs für edx teil und habe ein Problem mit einer Übung. Kannst du mir bitte sagen, warum ich mit diesem Code in einer Endlosschleife stecke? Ich denke, die halbierte Suchschleife funktioniert nicht richtig, aber ich weiß nicht wirklich warum. Hier ist der Code:
balance = 5000
annualInterestRate = 0.18
low = balance/12
high = (balance * (1 + annualInterestRate / 12) ** 12) / 12
guess = (low + high)/2
def getBal(guess, balance, annualInterestRate):
mon = 0
while mon < 12:
mon += 1
ub = balance - guess
balance = ub + (annualInterestRate/12) * ub
return balance
z = getBal(guess, balance, annualInterestRate)
while abs(round(z, 2)) > 0:
if round(z, 2) > 0:
low = guess
else:
high= guess
guess = (high+low)/2
print "Lowest Payment: " + str(round(guess,2))