zoukankan      html  css  js  c++  java
  • 等额本息计算公式推导

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

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

      假设贷款总金额为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

  • 相关阅读:
    MutationObserver 简单应用场景
    call apply bind sleep
    js 继承,Object.setPrototypeOf | Object.getPrototypeOf | Object.create class
    JSON.stringify
    javascript 与node的 event-loop
    js 不常用面试题 数组对象深度取值
    Oracle单表备份
    mybatis批量写法
    mybatis批量更新
    Python中if __name__ == '__main__':理解
  • 原文地址:https://www.cnblogs.com/hanganglin/p/6777838.html
Copyright © 2011-2022 走看看