25按揭贷款:等额本金还款

在上一篇文章中,我分享了等额本息偿还银行按揭贷款的计算过程及程序实现。本文我将继续和大家分享“等额本金”还款的有关实现方法。

建议您首先阅读我的前一篇文章:24按揭贷款:等额本息还款。

1.等额本金

顾名思义每期偿还的本金是相同的。在这篇文章中,我依然采用上一篇文章里使用的基本参数。

p:现值,即取得的银行贷款额。

n:还款期数。

i:计息期利率。

如果对货币时间价值、现值、终值、年金的基本概念不清楚,建议您查阅《财务成本管理》等相关书籍或者baidu。我们不妨把等额本金还款过程用下面的图形来表示。

25按揭贷款:等额本金还款

等额本金还款额计算如下表所示:

25按揭贷款:等额本金还款

2.计算机程序实现

有了上面的计算过程分析,下面我直接给出实现“等额本金”还款的程序。

# -*- coding: utf-8 -*-
"""
Created on Sat May 28 15:56:34 2022
@author: zgr
"""
import numpy as np
import pandas as pd
# 等额本金每月还款额=(贷款本金 还款月数)+(贷款本金-以归还本金累计金额) 月利率
#               =(贷款本金 还款月数)+贷款本金*[1-(还款月数-1)  还款月数] 月利率
#月初贷,每月末还贷

p = float(input("请输入贷款本金金额(元):"))
n_year = int(input("请选择贷款期限(5、10、15、20、25、30、40) 年 : "))
n = int(n_year*12)
i_year = float(input("请输入贷款利率(年利率,小数):"))
i = i_year/12
# 计算每月应还本金
month_p_pay = p/n
# 计算每月所付利息
month_interest = []
month_p = []
remain_p = []

for k in range(n):
    month_interest.append((p-k*month_p_pay)*i)
    remain_p.append(p-k*month_p_pay)
    month_p.append(month_p_pay)
month_p_interest = np.array(month_p) + np.array(month_interest)
# 剩余本金
remain_p.append(0)
# 累积还本付息
cumsum_p_pay = np.cumsum(month_p)
cumsum_interest_pay = np.cumsum(month_interest)
equality_corpus = list(zip(month_p,month_interest,remain_p[1:]))
equality_corpus_df = pd.DataFrame(data=equality_corpus,columns=('month_p','month_interest','remain_p'))
format="{0:.02f}".format
equality_corpus_df = equality_corpus_df.applymap(format)
print("
等额本金还款概要:=======================")
print("贷款总额(元):{:.2f}".format(p))
print("贷款期限(年):{}".format(n_year))
print("贷款利率(年利率):{:.2%}".format(i_year))
print("累计支付利息(元):{:.2f}".format(np.cumsum(month_interest)[-1]))
print("累计还款总额(元):{:.2f}".format(p+np.cumsum(month_interest)[-1]))
print("=========================================
")
schedule = '等额本金还款计划.csv'
print("等额本金还款计划表已保存:{}
".format(schedule))
equality_corpus_df.to_csv(schedule)

3.计算结果

25按揭贷款:等额本金还款

25按揭贷款:等额本金还款

25按揭贷款:等额本金还款

4.结果可视化呈现

(1)每月还本与每月付息关系图

import matplotlib.pyplot as plt
import numpy as np

# make data
x = range(n)
y1 = month_p
y2 = month_interest
# plot
fig, ax = plt.subplots()
ax.plot(x, y1, linewidth=2.0,label='month_p')
ax.plot(x, y2, linewidth=2.0,label='month_interest')
ax.set_xlabel('n')
ax.set_title('month_p VS month_interest')
legend = ax.legend(loc='best', shadow=True, fontsize='x-large')
plt.show()
25按揭贷款:等额本金还款

(2)累计还本与累计付息关系图

x = range(n)
y1 = cumsum_p_pay
y2 = cumsum_interest_pay
y3 = np.cumsum(month_p_interest)
# plot
fig, ax = plt.subplots()
ax.plot(x, y1, linewidth=2.0,label='cumsum_p_pay')
ax.plot(x, y2, linewidth=2.0,label='cumsum_interest_pay')
ax.plot(x, y3, linewidth=2.0,label='cumsum_month_p_interest')
legend = ax.legend(loc='best', shadow=True, fontsize='x-large')
plt.show()
25按揭贷款:等额本金还款

25按揭贷款:等额本金还款

5.结论

通过上面的结果和图形可知等,等额本金还款时:

(1)每月月供金额不相等,但“均匀递减付息”;

(2)在某一个时点之前,月供是“付息与还本金几乎相当”;在这个时点之后,月供是“少付息多还本”。

(3)累计付息持续单调递增,在到达某一个时点之后增速变缓。

(4)提前还款,越提早对个人越划算。即应该尽早还清。不存在“最划算”的点。


总之,经过第一篇“24按揭贷款:等额本息还款”与本篇“25按揭贷款:等额本金还款”的综合分析,最终基于本贷款的结论是:

(1)等额本金相比等额本息少付息。

(2)对个人而言,不存在提前还款的最划算时点,不论哪种还款法都应该尽早还款。


25按揭贷款:等额本金还款

展开阅读全文

页面更新:2024-05-12

标签:本金   月利率   现值   年利率   款额   本息   时点   金额   贷款   过程

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top