等额本息贷款月付款额的推导公式

因为最近准备买房,就对贷款还款方式进行了了解。等额本金还款比较容易计算,用总贷款额A除以总期数m(单位为月)就可以算出每一个月应该还的本金,再加上当月应还利息就可以算出当月总还款额。但是对等额本息的还款的计算方式有些稀里糊涂,不知道银行是怎么算出来的,就在网上找到了如下的推导公式:

等额本息还款公式推导 设贷款总额为A,银行月利率为β,总期数为m(个月),月还款额设为X,
        则各个月所欠银行贷款为:
        第一个月A(1+β)-X
        第二个月[A(1+β)-X](1+β)-X = A(1+β)^2-X[1+(1+β)]
        第三个月{[A(1+β)-X](1+β)-X}(1+β)-X = A(1+β)^3-X[1+(1+β)+(1+β)^2]
        …
        由此可得第n个月后所欠银行贷款为:
        A(1+β)^n-X[1+(1+β)+(1+β)^2+…+(1+β)^(n-1)] = A(1+β)^n-X[(1+β)^n-1]/β
        由于还款总期数为m,也即第m月刚好还完银行所有贷款,因此有:
        A(1+β)^m-X[(1+β)^m-1]/β = 0
        由此求得:
        X = Aβ(1+β)^m/[(1+β)^m-1]
        注明:此公式出现的等比数列中,(1+β)可以看作是比差q,m是(1+β)的乘方数,但是如果引用等比数列求和公式Sn=a1(1-q^n)/(1-q)      

        等比数列求和公式推导:设该等比数列的首数为a,比差为q,等比数列的和为S。则有

          s= a +aq +aq^2 + ...+ aq^n   (式1)

        在式1的两端都乘上q,则有

          sq= aq +aq^2 + ...+ aq^(n+1) (式2)

        用式2减去式1,有

          sq –1 = aq^(n+1) – a (式3)

        继续推导有下式

           s = (aq^(n+1) – a)/(q-1)

 

java代码:

  int year = 20;//贷款年限
  int month = year*12;//贷款月数
  int A = 800000;//总贷款额
  double rateDouble = 4.5/(100*12);//月利率
  System.out.println(A*rateDouble*Math.pow(1+rateDouble, month)/(Math.pow(1+rateDouble, month)-1));

posted on 2013-01-14 15:02  孙振超  阅读(1585)  评论(0编辑  收藏  举报