等额本金和等额本息

如果你也如我一样是贷款买房,那你可能遇到过两种还款方式,等额本息(Average Capitital Plus Interest)或等额本金(Average Capital)。等额本金的方式还款,开始每月还款多,之后少。等额本息的方式还款,每个月还款一样多,但最后还的总的利息相对是多的。每个人会根据自己的情况来决定哪种还款方式。我当时选择的是等额本金的方式,因为我觉得等额本金的方式容易理解和计算。现在看这两个中文名字取得不好,如果参考英文叫平均本金或平均本息可能更好些。

下面说说这两种方式每月还款额的公式的推导。假设总贷款额度是t,计划的贷款期限是m个月,月利率是r,我们要求这两种方式下每月还款的数额p。

等额本金

等额本金的还款方式每月还的本金是一样多的,再加上当月的利息,就是当月应还款的数量。计算公式是 p(n)=tm+[t(n1)tm]r 。这里n代表第n个月。这个公式可以翻译成下面的计算机程序(Python)。

def p_average_capital(t, m, r, n):
    capital_per_month = t / m
    interest = (t - (n - 1) * capital_per_month) * r 
    return capital_per_month + interest

我们来试验一下这个程序。假设我贷款29万,贷款20年,年利率是4%,那我第一年每月的还款额度为:

[round (p_average_capital(290000, 20 * 12, 0.04/12, n),2) for n in range(1,13)]

结果为:

[2175.0,
 2170.97,
 2166.94,
 2162.92,
 2158.89,
 2154.86,
 2150.83,
 2146.81,
 2142.78,
 2138.75,
 2134.72,
 2130.69]

到最后一年,我每月的还款额度为:

[round (p_average_capital(290000, 20 * 12, 0.04/12, n),2) for n in range(19*12+1,20*12+1)]

结果为:

[1256.67,
 1252.64,
 1248.61,
 1244.58,
 1240.56,
 1236.53,
 1232.5,
 1228.47,
 1224.44,
 1220.42,
 1216.39,
 1212.36]

可以看到还款额度在递减。如果哪一天银行的利率变了,我仍然使用这个公式,只要改变下利率参数,就可以算出某月的应还款额。

等额本息

采用等额本息还款方式,利率不变的情况下,每月还款额度是一样的。下面我们就来推导这个额度。

在第一个月,我欠银行的钱是 t(1+r)p

在第二个月,我欠银行的钱是 (t(1+r)p)(1+r)p ,也即 t(1+r)2p[1+(1+r)]

在第三个月,我欠银行的钱是 ((t(1+r)p)(1+r)p)(1+r)p ,也即 t(1+r)3p[1+(1+r)+(1+r)2]

在第m个月,我欠银行的钱是 t(1+r)mp[1+(1+r)+...+(1+r)m1]

上式的第2项 p[1+(1+r)+...+(1+r)m1] 是等比数列,可以应用等比数列求和公式 S=a1(1qn)1q 来计算化简,这样在第m个月,我欠银行的钱是 t(1+r)mp((1+r)m1r)

因为要求在第m个月还清贷款,所以 t(1+r)mp((1+r)m1r)=0

可以求得每月还款额度公式为 p=t(1+r)mr(1+r)m1

这个公式可以翻译成下面的计算机程序(Python)。

def p_average_capital_interest(t, m, r):
    compound = (1+r) ** m
    return t * compound * r / (compound - 1)

我们来试验一下这个程序。还假设我贷款29万,贷款20年,年利率是4%,那我每月的还款额度为:

round (p_average_capital_interest(290000, 20*12, 0.04/12), 2)

结果为:

1757.34

到目前为止一切正常,除了推导公式复杂一些。如果银行的利率在还款期间变了呢?我需要先计算当前我欠银行多少钱,然后用新的利率和剩余还款期来计算每月的还款额度。总体而言等额本息的计算方式比等额本金复杂一些。但知道了原理也都一切在掌握之中。

等等

本文的目的介绍等额本金和等额本息已经达到了。下面说点题外话。通常银行贷款的利率都是年利率,而前面我们计算时需要用月利率,就简单地把年利率除以12。当然银行也是这样做的,但这样做合理吗?

我假设我借银行贷款10000块钱,年利率是100%。如果按年利率算一年后,我需要还银行的钱为 10000(1+100%)=20000 。如果按月利率算,因为利息也要产生利息即利滚利或复利,那么一年后,我需要还银行的钱为 10000(1+112)12

round (10000 * (1+1/12) ** 12 )

结果为:

26130

结果一年后我需要还银行的钱为26130元,比按年利率时多出了整整6000多元。我们假设银行再邪恶一些,按日算利息呢?

round (10000 * (1+1/365) ** 365 )

结果为:

27146

结果一年后我需要还银行的钱为27146元,还钱又增多了。我们假设银行尝到了甜头再再邪恶一些,按秒计息呢?

seconds_per_year = 365 * 24 * 60 * 60
round(10000 * (1+1/seconds_per_year) ** seconds_per_year )

结果为:

27183

看出点端倪吗?这个数字不会无限增大,27183除以10000为2.7183,接近自然常数e。实际自然常数e也正来源于此。

limx(1+1x)x=e

我不是搞金融的,请学金融的告诉一下把年利率直接除以12当作月利率合不合理,为了抵消复利影响,是否应该把月利率适当调小一点呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值