Advertisement
Guest User

Untitled

a guest
Oct 17th, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.93 KB | None | 0 0
  1.  
  2. def VAN(tasa,flujos):
  3. VA=0
  4. for i in range(len(flujos)):
  5. VA+=flujos[i]/(1+tasa)**i
  6. return VA
  7.  
  8. def TIR(flujos):
  9. ka=-.5 #tasa de descuento inferior. Inicialmente -50%
  10. kc=10 #tasa de descuento superior. Inicialmente 1000%
  11. inf=VAN(ka,flujos) #VAN calculado con la tasa inferior
  12. sup=VAN(kc,flujos) #VAN calculado con la tasa superior
  13. if inf>=0 and sup<0:
  14. error=abs(inf-sup)
  15. while error>=1e-10:
  16. kb=(ka+kc)/2
  17. med=VAN(kb,flujos)
  18. if med<=0:
  19. kc=kb
  20. elif med>0:
  21. ka=kb
  22. inf=VAN(ka,flujos)
  23. sup=VAN(kc,flujos)
  24. error=inf-sup
  25. return kb
  26. else:
  27. return "sin TIR"
  28.  
  29. #------------EJEMPLO---------------
  30. tasa = 0.07
  31. inicial = 3500
  32. flujos = [-inicial,900,925,950,975,1000,1025]
  33. van = VAN(tasa, flujos)
  34. bc = (van+inicial)/inicial
  35. print('VAN=',van)
  36. print('TIR=',str(TIR(flujos)*100)+'%')
  37. print('B/C=',bc)
  38. #print('TIR=',str(round(TIR(flujos)*100,2))+'%')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement