!pip install numpy-financial # instalamos con pip la librería financiera import numpy_financial as npf pago = npf.pmt(0.06/12, 20 * 12, 350_000) # Here fv = 0 ; Also Default value of fv = 0 print(f"Pago mensual: {-pago:,.2f} €" ) import numpy_financial as npf import numpy as np import tabulate as tab import matplotlib.pyplot as plt # en primer lugar vamos a calcular la cuota constante C0 = 100000 n = 10 tasa = 0.05 pago = npf.pmt(rate=tasa, nper=n, pv=-C0, fv=0, when='end') print(pago) #Vamos a calcular el capital pendiente de cada periodo pendiente = npf.fv(rate=tasa, nper =range(n+1), pmt = pago, pv= -C0) print(pendiente) #Calculamos la amortización de cada año amortz = npf.ppmt(rate=tasa, per=range(n+1), nper=n, pv=-C0, fv=0, when='end') print(amortz) #Calculamos los intereses de cada periodo interes = npf.ipmt(rate=tasa, per=range(n+1), nper=n, pv=-C0, fv=0) print(interes) #Comprobamos comprob = np.array(amortz + interes) print(comprob) #Hacemos un cuadro de amortización para ver los datos con la librería tabulate datos =[] saldo = C0 saldo2 = 0 linea1 = [0,0,0,0,C0,0] datos.append(linea1) Anualidad = npf.pmt(rate=tasa, nper=n, pv=-C0, fv=0, when='end') for i in range(1, n+1): pago_capital = npf.ppmt(rate=tasa, per=i, nper=n, pv=-C0, fv=0, when='end') pago_int = Anualidad - pago_capital saldo -= pago_capital saldo2 += pago_capital linea = [i, format(Anualidad, '.0f'), format(pago_int, '.0f'), format(pago_capital, '.0f'), format(saldo, '.0f'), format(saldo2, '.0f')] datos.append(linea) print(tab.tabulate(datos, headers= ['Periodo', 'Anualidad', 'Intereses', 'Amortización','Capital Vivo','Capital Amortizado'], tablefmt = 'psql')) #Comprobemos como evoluciona nuestro prestamo en la siguiente gráfica plt.figure(figsize = (12, 8)) plt.bar(range(0, n + 1), pendiente) plt.title("Capital Pendiente", fontsize = 15) plt.xlabel("Periodos(años)", fontsize = 12) plt.ylabel("Balance del préstamo (euros)", fontsize = 12) plt.plot() plt.figure(figsize = (12, 8)) plt.bar(range(0, n + 1), amortz, label = 'amortizacion') plt.bar(range(0, n + 1), interes, bottom= amortz, label='intereses') plt.legend(fontsize = 20) plt.title("Pagos del Préstamo", fontsize = 15) plt.xlabel("Periodos en años", fontsize = 12) plt.ylabel("Pagos en euros", fontsize = 12) plt.plot()