代码改变世界

等额本息计算公式推导

2017-04-27 23:17  hduhans  阅读(22199)  评论(3编辑  收藏  举报

  等额本息、等额本金是两种常见的还款方式,是常见的金融术语,我们购房贷款时也会遇到这两个还款方式的选择。等额本息的每期还款总金额(本金+利息)是固定的,那么这个数值是怎么计算出来的呢?近期业务开发中刚好遇到等额本息的相关需求,整理记录了一下计算公式与推导过程。

一、等额本息每期还款总金额计算公式

  假设贷款总金额为A,月利率为β,贷款期数为k,每期需还款总金额(本金+利息)为x,则:

  第一期还款后,欠款总金额 Q1 = A * (1 + β) - x

  第二期还款后,欠款总金额 Q2 = Q1 * (1 + β) - x = [A * (1 + β) - x] * (1 + β) - x = A * (1 + β) ^ 2 - [1 + (1 + β)] * x

  第三期还款后,欠款总金额 Q3 = Q2 * (1 + β) - x = {A * (1 + β) ^ 2 - [1 + (1 + β)] * x} * (1 + β) - x = A * (1 + β) ^ 3 - [(1 + β) ^ 2 + (1 + β) + 1] * x

  由此可得出,第k期还款后,欠款总金额 Qk = Qk-1 * (1 + β) - x = ... = A * (1 + β) ^ k - [(1 + β) ^ (k-1) + (1 + β) ^ (k-2) + ... + 1] * x。

  我们发现[]内是等比数列,等比数列求和公式是不是又忘记了?我们一起来推导下。设y=1 + β,则Sk = 1 + y + y ^2 + ... + y ^ (k-1),y * Sk = y + y ^2 + ... + y ^ (k-1) + y ^ k,两公式相差得 y * Sk - Sk = y ^ k - 1,从而得出Sk = (y ^ k - 1) / (y -1)。

  由此继续 Qk = A * (1 + β) ^ k - {[(1 + β) ^ k - 1] / β} * x,第k期还款后贷款结束,因此Qk = 0,即 A * (1 + β) ^ k - {[(1 + β) ^ k - 1] / β} * x = 0,得出等额本息每期还款本息总额 x = A * β * (1 + β) ^ k / [(1 + β) ^ k - 1],这便是每期需要还款的总金额。

二、等额本息每期还款本金计算公式

  等额本息每期还款总金额x公式已经有了,那么每期还款的本金是多少呢?假设第n期还款本金为Pn,则:

  第一期需还本金 P1 = x - A * β

  第二期需还本金 P2 = x - (A - P1) * β = x - {A - [x - A * β]} * β = x - A * β + (x - A * β) * β = P1 + P1 * β = P1 * (1 + β)

  第三期需还本金 P3 = x - (A - P1 - P2) * β = x - {A - P1 - P1 * (1 + β)} * β = x - A * β + P1 * β + P1 * (1 + β) * β = P1 * (1 + β) ^ 2

  则可以猜测第n期需还本金 Pn = P1 * (1 + β) ^ (n - 1)

  下面我们来论证这个公式,假设公式成立,则 P(n + 1) = x - [A - P1 - P2 - ... -Pn] * β = x - {A - P1 * [1 + (1 + β) + ... + (1 + β) ^ (n - 1)]} * β = x - {A - P1 * [(1 + β) ^ n - 1] / β} * β = x - A * β + P1 * [(1 + β) ^ n - 1] = p1 * (1 + β) ^ n

  由此可以得出,等额本息还款中每期还款本金 Pn = P1 * (1 + β) ^ (n - 1)

三、首期利息与末期本金

1、首期利息

  等额本息中,首期还款可能存在不足月的情况,这时候本金可以严格按照上述公式得出,但利息肯定不能按满月算了(每期还款利息是按期数-月为单位的),这时候首期利息得需要按实际使用天数进行特殊计算。

  假设第一期还款时实际使用天数为 t,则首期利息 L1 = A * β * t / 30  

  如何计算首期实际使用天数?

  首期实际使用天数计算实性的是“对月对日”,首先找到首期还款日t1对应上一期的还款日t0(若当月t0不存在,则往下延一天,即下月的首日),再比较起息日y和t0的天数差,综合,首期实际使用天数 t = 30 - (y - t0)

  范例:

  1) 起息日2018-02-15,首期还款日2018-03-10,则t0为2018-02-10,得出首期实际使用天数 t = 30- (2018-02-15 - 2018-02-10) = 25

  2) 起息日2018-03-02,首期还款日2018-03-31,则t0为2018-03-01(对应2018-02-31不存在,则顺延一天),得出首期实际使用天数 t = 30- (2018-03-02 - 2018-03-01) = 29

2、末期本金

  由于每期还款本金是公式计算后取四舍五入的值,存在精度丢失问题,因此末期还款本金金额为 Pk = A - P1 - P2 - ... - P(k-1)

四、总结

  假设贷款总金额为A,月利率为β,贷款期数为k,每期需还款总金额(本金+利息)为x,第n期需还款本金为Pn,第n期需还利息为Ln,则:

  第1至k-1期每期还款本金 Pn (1 <= n < k) = P1 * (1 + β) ^ (n - 1)

  第k期还款本金 Pk = A - P1 - P2 - ... - P(k-1)

  第1期还款利息 L1 = A * β * t / 30   

  第2期到k期还款利息 Ln = x - Pn

  第1期还款本息总额 w1 = P1 + L1

  第2期至k期还款本息总额 wn = x