Python - Matemáticas Financieras
#Matemáticas Financieras
#30 ejemplos de funciones sobre matemáticas financieras,
#interés simple, interés compuesto, etc. en Python:
#1. Función para calcular el interés simple:
def interes_simple(capital, tasa, tiempo):
return capital * tasa * tiempo
#2. Función para calcular el monto final en un interés simple:
def monto_final_simple(capital, tasa, tiempo):
return capital + interes_simple(capital, tasa, tiempo)
#3. Función para calcular el interés compuesto:
def interes_compuesto(capital, tasa, tiempo):
return capital * ((1 + tasa) ** tiempo - 1)
#4. Función para calcular el monto final en un interés compuesto:
def monto_final_compuesto(capital, tasa, tiempo):
return capital * (1 + tasa) ** tiempo
#5. Función para calcular la tasa de interés en un interés simple:
def tasa_interes_simple(capital, interes, tiempo):
return interes / (capital * tiempo)
#6. Función para calcular la tasa de interés en un interés compuesto:
def tasa_interes_compuesto(capital, monto_final, tiempo):
return ((monto_final / capital) ** (1 / tiempo)) - 1
#7. Función para calcular el tiempo en un interés simple:
def tiempo_interes_simple(capital, interes, tasa):
return interes / (capital * tasa)
#8. Función para calcular el tiempo en un interés compuesto:
def tiempo_interes_compuesto(capital, monto_final, tasa):
return math.log(monto_final / capital, 1 + tasa)
#9. Función para calcular el valor presente en un interés simple:
def valor_presente_simple(monto_final, tasa, tiempo):
return monto_final / (1 + tasa * tiempo)
#10. Función para calcular el valor presente en un interés compuesto:
def valor_presente_compuesto(monto_final, tasa, tiempo):
return monto_final / (1 + tasa) ** tiempo
#11. Función para calcular el valor futuro en un interés simple:
def valor_futuro_simple(valor_presente, tasa, tiempo):
return valor_presente * (1 + tasa * tiempo)
#12. Función para calcular el valor futuro en un interés compuesto:
def valor_futuro_compuesto(valor_presente, tasa, tiempo):
return valor_presente * (1 + tasa) ** tiempo
#13. Función para calcular el valor presente neto (VPN):
def vpn(flujos, tasa):
return sum([flujo / (1 + tasa) ** i for i, flujo in enumerate(flujos)])
#14. Función para calcular la tasa interna de retorno (TIR):
def tir(flujos):
f = lambda tasa: vpn(flujos, tasa)
return optimize.newton(f, 0.1)
#15. Función para calcular el período de recuperación de la inversión (PRI):
def pri(flujos, inversion):
acumulado = 0
for i, flujo in enumerate(flujos):
acumulado += flujo
if acumulado >= inversion:
return i + (inversion - (acumulado - flujo)) / flujo
return float('inf')
#16. Función para calcular el valor anual equivalente (VAE):
def vae(flujos, tasa):
n = len(flujos)
vpn = sum([flujo / (1 + tasa) ** i for i, flujo in enumerate(flujos)])
return vpn * ((1 + tasa) ** n - 1) / (tasa * (1 + tasa) ** n)
#17. Función para calcular el costo anual equivalente (CAE):
def cae(inversion, flujos, tasa):
vae_ = vae(flujos, tasa)
return vae_ / inversion
#18. Función para calcular el punto de equilibrio:
def punto_equilibrio(costos_fijos, costos_variables, precio):
return costos_fijos / (precio - costos_variables)
#19. Función para calcular el margen de contribución:
def margen_contribucion(precio, costos_variables):
return precio - costos_variables
#20. Función para calcular el margen de contribución por unidad:
def margen_contribucion_unidad(precio, costos_variables):
return margen_contribucion(precio, costos_variables) / precio
#21. Función para calcular el punto de equilibrio en unidades:
def punto_equilibrio_unidades(costos_fijos, margen_contribucion):
return costos_fijos / margen_contribucion
#22. Función para calcular el punto de equilibrio en dinero:
def punto_equilibrio_dinero(costos_fijos, margen_contribucion_unidad):
return costos_fijos / margen_contribucion_unidad
#23. Función para calcular el índice de rentabilidad:
def indice_rentabilidad(inversion, flujos):
vpn_ = vpn(flujos, 0.1)
return (vpn_ + inversion) / inversion
#24. Función para calcular el período de recuperación descontado (PRD):
def prd(inversion, flujos, tasa):
acumulado = 0
for i, flujo in enumerate(flujos):
acumulado += flujo / (1 + tasa) ** i
if acumulado >= inversion:
return i + (inversion - (acumulado - flujo / (1 + tasa) ** i)) / flujo
return float('inf')
#25. Función para calcular el valor presente ajustado (VPA):
def vpa(flujos, tasa, periodo):
return sum([flujo / (1 + tasa) ** (i - periodo) for i, flujo in enumerate(flujos) if i >= periodo])
#26. Función para calcular el valor presente ajustado neto (VPAN):
def vpan(inversion, flujos, tasa, periodo):
vpa_ = vpa(flujos, tasa, periodo)
return vpa_ - inversion
#27. Función para calcular el índice de rentabilidad ajustado (IRA):
def ira(inversion, flujos, tasa, periodo):
vpan_ = vpan(inversion, flujos, tasa, periodo)
return (vpan_ + inversion) / inversion
#28. Función para calcular el valor presente neto ajustado (VPNA):
def vpna(inversion, flujos, tasa, periodo):
vpn_ = vpn(flujos[periodo:], tasa)
return vpn_ - inversion
#29. Función para calcular el índice de rentabilidad neto ajustado (IRNA):
def irna(inversion, flujos, tasa, periodo):
vpna_ = vpna(inversion, flujos, tasa, periodo)
return (vpna_ + inversion) / inversion
#30. Función para calcular el valor presente neto incremental (VPNI):
def vpni(inversion, flujos1, flujos2, tasa):
vpn1_ = vpn(flujos1, tasa)
vpn2_ = vpn(flujos2, tasa)
return vpn2_ - vpn1_ - inversion