Está en la página 1de 7

Funciones de Acumulación y Monto Acumulado

March 16, 2021

1 Funciones de Acumulación
1.0.1 Interés Simple
Dada una tasa de interés. El interés simple queda caracterizado por la siguiente función de acu-
mulación:

a(t) = 1 + i · t

[1]: ## Keyword Arguments: Interes.


## Valor Por defecto (Default Value)
def interes_simple(tiempo, interes=0.05):
"""
Función que calcula el interés simple.
"""

return 1 + interes * tiempo

[2]: ### Si no le pasamos un interés va a tomar el valor por defecto.


interes_simple(10)

[2]: 1.5

1.0.2 Interés Compuesto


El interés compuesto tiene la siguiente función de acumulación:

a(t) = (1 + i)t = et·log(1+i)

[3]: def interes_compuesto(tiempo, interes=0.05):


"""
Función que calcula el interés compuesto.
"""

return (1 + interes) ** tiempo

[4]: interes_compuesto(10)

1
[4]: 1.628894626777442

[5]: interes_compuesto(10, interes=0.1)

[5]: 2.5937424601000023

[13]: import matplotlib.pyplot as plt


import numpy as np
## Estilo de las gráficas
## ggplot también existe en R
plt.style.use("ggplot")

[7]: ### Estilos disponibles en matplotlib


print(plt.style.available)

['Solarize_Light2', '_classic_test_patch', 'bmh', 'classic', 'dark_background',


'fast', 'fivethirtyeight', 'ggplot', 'grayscale', 'seaborn', 'seaborn-bright',
'seaborn-colorblind', 'seaborn-dark', 'seaborn-dark-palette', 'seaborn-
darkgrid', 'seaborn-deep', 'seaborn-muted', 'seaborn-notebook', 'seaborn-paper',
'seaborn-pastel', 'seaborn-poster', 'seaborn-talk', 'seaborn-ticks', 'seaborn-
white', 'seaborn-whitegrid', 'tableau-colorblind10']

[14]: ## List Comprehension.


dominio = [x for x in range(1, 100)]
imagen = [interes_simple(x) for x in dominio]

### Graficamos:
plt.scatter(dominio, imagen, color="darkred", label="Interés Simple")
plt.legend()
plt.title("Interés Simple")
plt.show()

2
[15]: ### List Comprehension.
dominio = [x for x in range(1, 100)]
imagen = [interes_compuesto(t) for t in dominio]

plt.scatter(dominio, imagen, color="darkblue", label="Interés Compuesto")


plt.legend()
plt.title("Interés Compuesto")
plt.show()

3
[24]: ## Otra manera de construir un dominio
dominio = list(np.linspace(0, 50, 1000))
### List Comprehension.
imagen_simple = [interes_simple(t) for t in dominio]
imagen_compuesto = [interes_compuesto(t) for t in dominio]

### Superposición de Gráficas.


plt.plot(dominio, imagen_simple, color="orange", label="Interés Simple")
plt.plot(dominio, imagen_compuesto, color="blue", label="Interés Compuesto")
### Sin legend() no se ven las etiqutas.
plt.legend()
plt.title("Interés simple vs Interés compuesto")
plt.xlabel("Tiempo")
plt.ylabel("Monto Acumulado")

plt.show()

4
1.0.3 Función de Monto Acumulado
A(t) = K ∗ a(t)

[17]: ### Función genérica.


### Las funciones pueden ser pasadas como argumentos.
### Las funciones son Objetos de primera Clase (First Class Object)
def acc_amount_func(tiempo, ac_function, capital_inicial, interes=0.05):
"""
Función Genérica de Monto Acumulado:
Recibe una función de acumulación y un capital inicial.
Hay que notar que ac_function debe recibir un tiempo y un interes.
Si no vamos a tener broncas.
"""

return capital_inicial * ac_function(tiempo, interes=interes)

[20]: acc_amount_func(0.5, interes_simple, 100)

[20]: 102.49999999999999

[21]: acc_amount_func(0.5, interes_compuesto, 100)


### Ejercicio moral: Graficar estas funciones de la misma forma que lo hicimos

5
[21]: 102.46950765959599

[28]: def acc_interest(tiempo, ac_function, capital_inicial, interes=0.05):


"""
Interés acumulado en el periodo n
"""

a_t = ac_function(tiempo, interes=interes)


a_t_1 = ac_function(tiempo - 1, interes=interes)

return capital_inicial * (a_t - a_t_1)

[27]: acc_interest(4, acc_amount_func, interes_simple, 200, interes=0.1)

[27]: 20.0

[ ]: acc_interest(4, interes_simple, 200, interes=0.1)

[40]: dominio = [n for n in range(1, 100)]


i_n_simple = [acc_interest(n, interes_simple, 100, interes=0.08) for n in␣
,→dominio]

i_n_compuesto = [acc_interest(n, interes_compuesto, 100, interes=0.08) for n in␣


,→dominio]

plt.plot(dominio, i_n_simple, label="Interés Simple")


plt.plot(dominio, i_n_compuesto, label="Interés Compuesto")
plt.legend()

plt.title("Interés Acumulado")
plt.xlabel("Tiempo")
plt.ylabel("Monto de interés")

plt.show()

6
[ ]:

[ ]:

También podría gustarte