Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def VAN(tasa,flujos):
- VA=0
- for i in range(len(flujos)):
- VA+=flujos[i]/(1+tasa)**i
- return VA
- def TIR(flujos):
- ka=-.5 #tasa de descuento inferior. Inicialmente -50%
- kc=10 #tasa de descuento superior. Inicialmente 1000%
- inf=VAN(ka,flujos) #VAN calculado con la tasa inferior
- sup=VAN(kc,flujos) #VAN calculado con la tasa superior
- if inf>=0 and sup<0:
- error=abs(inf-sup)
- while error>=1e-10:
- kb=(ka+kc)/2
- med=VAN(kb,flujos)
- if med<=0:
- kc=kb
- elif med>0:
- ka=kb
- inf=VAN(ka,flujos)
- sup=VAN(kc,flujos)
- error=inf-sup
- return kb
- else:
- return "sin TIR"
- #------------EJEMPLO---------------
- tasa = 0.07
- inicial = 3500
- flujos = [-inicial,900,925,950,975,1000,1025]
- van = VAN(tasa, flujos)
- bc = (van+inicial)/inicial
- print('VAN=',van)
- print('TIR=',str(TIR(flujos)*100)+'%')
- print('B/C=',bc)
- #print('TIR=',str(round(TIR(flujos)*100,2))+'%')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement