import sys bal = float(sys.argv[1]) # Initial balance to be paid. NQ = 60 # Number of Quarters: 60 quarters is 15 years. rate = 5.0 # percent per annum future = 0.0 # Future value of accumulated payments. # quarterly multiplier for annualized multiplier = (1.0 + rate/100.0) ** 0.25 print("Initial Balance: %.3f Rate: %.6f Quarterly Mult: %.6f" % (bal, rate, multiplier)) for i in range(NQ): bal *= multiplier quarters_remaining = (NQ - i) # compound first, because it happends "during" the quarter. payment = (1.0 / quarters_remaining) * bal # Make payment at EOQ. bal = bal - payment future *= multiplier future = future + payment print ("quarter %2d/%2d: 3.m.payments=%10.3f q.payment=%10.3f bal=%10.3f (future=%10.3f)" % (i+1, NQ, payment/3.0, payment, bal, future))