1 背景
在实际生活中,我们可能会遇到一些借贷问题。比如,车贷、房贷、民间借贷,或者银行存储利率问题。我们可能是借方,也可能是被借方,这些都涉及到利率的计算。因此,研究简单的借贷模型,获得对应利率,方便我们作参考。
2 理论
2.1 约定
这里在介绍利率之前,这里取一年为365天,约定日利rd、月利rm、年利ry之间以复利的关系进行转换,即它们存在如下关系:
(2.1-1)
{rm=(1+rd)365/12−1ry=(1+rd)365−1ry=(1+rm)12−1rm=exp(112ln(1+ry))−1rd=exp(1365ln(1+ry))−1
注意,有些地方并没有使用复利进行转换。比如月息1%,不考虑复利时对应年息为12%, 而考虑复利时对应年息是12.682503013197%, 由于大部分场景考虑复利获利, 因此本文使用复利转换方式。
2.2 利率模型
借贷模型可以等价描述为: A向B借款s元, 借款月利为r, 借款期限为n个月, 每个月还款依次为a1、a2、a3……an−1、an,直到还完。
对于上面这个数学模型,可以看成A向B借了n份钱,每一份钱在同利率r情况下,单独签订对应月份数进行还款。因此,这里可以设每份借的钱分别为bi,其中第i份钱只借i个月。因此可以建立如下数学模型:
(2.2-1)
{s=∑ni=1biai=bi(1+r)i
这里设x=1+r,对(2.2-1)变形有
(2.2-2)
a1xn−1+a2xn−2+…+an−1x+an=sxn
很明显,(2.2-2)是一元n次多项式求解,这已经有成熟的算法,可以直接求得x,进而求得利率 r=x−1,以及第i份钱的本金bi,以及第i个月累计还的本金Si和累计还的利息Ii:
(2.2-3)
{bi=aixiSi=∑ij=1bjIi=∑ij=1(aj−bj)
注意:①这里描述的借贷按月进行处理,对于日或者年借贷模型一致;②大部分借贷都适用上面的2.2的数学模型,实际使用中可以使用这个模型等效探知借贷利率,以及每个期间本金与利息情况;③在实际使用时,可考虑将服务费等一并额外费用算在借贷金额里。
2.3 等额本息
等额本息,是每个月还款固定的一种还款方式。如果每个月固定还款为a元,因此只需要在2.2的模型里设置 a1=a2=…=an=a 即可求解,代入(2.2-2)可以等效求解如下方程
(2.3-1)
a1−xn1−x=sxn
2.4 等额本金
等额本金是指在还款期内把贷款数总额等分,每月偿还同等数额的本金和剩余贷款在该月所产生的利息,因此只需要在2.2的模型里设置 ai=sn+sn(n+1−i)r 即可求解,由于总额和每个月还款总数已知,这时(2.2-2)方程对任意值均成立,因此为了求解,使用如下方式求得利率
(2.4-1)
r=1n+1−i(nais−1)
3 例子
3.1 借贷案例1
A向B借款10万元,借期为3年。A向B承诺, 每个月固定给1000元利息给B, 3年期间总共会给利息3.6万元, 到期后向B返还本金10万。请问, A向B借款实际利率为多少?
这个案例中,套入2.2的模型可以得到如下参数
(3.1)
{s=100000a1=1000a2=1000…a35=1000a36=100000+1000
将(3.1)代入(2.2)可以得到月息 rm=1%, 年息为 ry=12.682503013197%。
3.2 借贷案例2
A向B借款10万元,借期为3年。A向B承诺, 按每个月1000元的利息计算, 利息在借款到期后一并结算, 3年期间总共产生利息3.6万元, 到期后向B返还本金10万以及支付3.6万利息。请问, A向B借款实际利率为多少?
这个案例中,套入2.2的模型可以得到如下参数
(3.2)
{s=100000a1=0a2=0…a35=0a36=100000+36000
将(3.2)代入(2.2)可以得到月息 rm=0.85778221376%, 年息为 ry=10.793165135089%。
从3.2可以发现,相同借款金额,利息提前还与否实际利率有一定差异。
3.3 借贷案例3
A向B借款10000元,借期为6个月。因为一些原因, A实际到手金额为9600元, A后续6个月每个月实际还款金额分别为2000元、2000元、2000元、2000元、1000元、1000元。
请问, A向B借款实际利率为多少?
这个案例中,套入2.2的模型可以得到如下参数
(3.3)
{s=9600a1=2000a2=2000a3=2000a4=2000a5=1000a6=1000
将(3.3)代入(2.2)可以得到月息 rm=1.332664497160%, 年息为 ry=17.217795276054%。
4 使用
对于上面的模型, 可以使用MathSword提供的LendingRate函数进行利率反算,也可以使用内置的贷款工具箱进行快速计算。