財金程式設計588Python_Javascript網路執行_EXCEL_IRR二分法
pmt = [0,0,0,0] #賴嘉鎔程式設計586設定串列list
pmt[0]=float(input('躉繳金額: '))
for nper in range(1,4):
pmt[nper] = float(input('第'+str(nper)+'期回收: '))
def npv(rate):
y = - pmt[0]
for j in range(1,4):
y = y + pmt[j]/(1+rate)**j
return y
a, b, gap, f = 0.0, 1.0, 9.0, 9.0
maxerror = 0.000001
loopNumber = 1
while (gap > maxerror and abs(f) > maxerror and loopNumber < 100):
loopNumber+=1
c = (a+b)/2;
f = npv(c);
if ( abs(f) > maxerror and gap > maxerror):
if ( f>0 ):
a = c
else:
b = c
gap = b-a;
print('賴嘉鎔報酬率: ', c)
print('賴嘉鎔淨現值: ', f)
print('賴嘉鎔迴圈次數: ', loopNumber)
pmt = [0,0,0,0] #賴嘉鎔程式設計586設定串列listpmt[0]=float(input('躉繳金額: '))for nper in range(1,4):pmt[nper] = float(input('第'+str(nper)+'期回收: '))def npv(rate):y = - pmt[0]for j in range(1,4):y = y + pmt[j]/(1+rate)**jreturn ya, b, gap, f = 0.0, 1.0, 9.0, 9.0maxerror = 0.000001loopNumber = 1while (gap > maxerror and abs(f) > maxerror and loopNumber < 100):loopNumber+=1c = (a+b)/2;f = npv(c);if ( abs(f) > maxerror and gap > maxerror):if ( f>0 ):a = celse:b = cgap = b-a;print('賴嘉鎔報酬率: ', c)print('賴嘉鎔淨現值: ', f)print('賴嘉鎔迴圈次數: ', loopNumber)
留言
張貼留言