课程设计
⑵.某人欲贷款50万元购房,他咨询了两家银行,第一家银行开出的条件是每月还款4500元,15汽车0首付年还清;第二家银行开出的条件是每年还45000元,20年还清。从利率方面看,哪家银行较优惠(简单假设年利率=月利率×12)?
先来解答第一问:
分析问题:列出表格如下
房屋总价 | 首付款 | 还款年限 | 月还款 |
20万 | 5万 | 15年 | 0.1万 |
由题建立的表格可知,小张夫妇向银行共借款15万元,15年之内共要还款0.1*12*15=18万。这个案例中贷款年利率是多少?
年利率=(18-15)/15/15=1.33%
以上分析显然有误,我们所求并不是15年利率,因为并不是等到15年后一次性还款。
设x(k)为第k个月的欠款数;a为月还款数,r为月利率,由此我们得到迭代关系式 x(k+1)=(1+r)﹡x(k)-a
则
x(k)=(1+r)x(k-1)-a
=(1+r)²x(k-2)-(1+r)a-a
=…=…
=(1+r)^kx(0)-a[(1+k)^k-1]/r
根据a=0.1 , x(0)=15 , x(180)=0 得到模型关于月利率r的高次代数方程如下:
15(1+r)^180-0.1[(1+k)^180-1]/r=0
我们另
f(r)= 15(1+r)^180-0.1[(1+k)^180-1]/r
则此问题就转化为非线性方程求根问题,令
f(r)=0
求出r
年利率R=12r 方程1
⑵.求解模型的数学方法
我们先用Newton函数求解。由上述可知迭代函数已求出,正是应用牛顿法。下述编写求解模型程序
⑶.编写求解模型程序
用MATLAB求解
考虑方程1,常识上r应比当时活期存款月利率略高。用活期存款月利率0.0198/2
作为迭代初值,用fzero求解
f=inline('15*r*(1+r)^180/((1+r)^180-1)-0.1');
r=fzero(f,0.5)
r =
0.0021
>> R=12*r
R =
0.0250
改变初始值,再次运行程序得:
f=inline('15*r*(1+r)^180/((1+r)^180-1)-0.1');
r=fzero(f,0.01)
r =
0.0021
>> R=12*r
R =
0.0250
如果增加精确度,则:
>> format long
>> f=inline('15*r*(1+r)^180/((1+r)^180-1)-0.1');
r=fzero(f,0.5)
r =
0.002081163889459
>> R=12*r
R =
.024*********
大家都知道,银行利率虽然数字偏差小,但纵使只是这偏差一点点,对于数目较大的贷款来说,其影响肯定都会很大。所以我们有必要再换个方法求解。
在此,我们换个角度拟出方案二:分期还贷可视为活期存款, 即, 15 万元欠
款在15 年后的价值等同于每月存入银行1000 元, 15 年后获得的总
价值。本金nA, 全部利息: 1/2n(n+1)Ap。这样, 代入数据A=0.1(万元),
n=180, 得到下面的等式
15×(1+180p)= 1/2×180×181×0.1p+0.1×180
用matlab 求解, 程序为:
>>f=inline('15*(1+180*x)- 0.1*180*(181/2*x+1)' );
>>re=fzero(f,0.5)
结果显示
re=
0.0028
远远大于0.0022!
因为事实上, 这种模型并没有考虑复利, 于是修正为:
15(1+i)180=0.1(1+i)179+0.1(1+i)178+.+0.1(1+i)+0.1
左式为15 万元欠款在15 年后的价值, 右式为从本月开始, 每月
存入银行1000 元, 15 年后获得的总价值, 两者相等。这个方程直接求
解是困难的, 经等比数列求和公式简化, 整理得:
15(1+i)180=0.1 (1+i)180- 1
仔细观察可知,该式与方案一当中的式子是一样的,也就是说它们的解是相同的。
⑷计算结论分析结果
通过计算我们可知,月利率约为0.0021。由于我们对初值的取法是:比活期存款月利率高,这种还款方式为等额本息还款, 把按揭贷款的本金总额与利息总额相加,然后平均分摊到还款期限的每个月中。作为还款人,每个月还给银行固定金额,但每月还款额中的本金比重逐月递增、利息比重逐月递减。
优点:每月还相同的数额,作为贷款人,操作相对简单。
缺点:由于利息不会随本金数额归还而减少,银行资金占用时间长,还款总利息比等额本金高。
适用人:收入处于稳定状态的家庭
再来看第二问:
分析问题可知,第二问的解答过程与第一问是相似的,我们只需把月利率改为求解年利率即可。
对于第一家银行,我们列出表格如下
房屋总价 | 首付款 | 还款年限 | 月还款 |
50万 | 0万 | 15年 | 0.45万 |
基本建模过程
设x(k)为第k个月的欠款数;a为月还款数,r为月利率,由此我们得到迭代关系式 x(k+1)=(1+r)﹡x(k)-a
则
x(k)=(1+r)x(k-1)-a
=(1+r)²x(k-2)-(1+r)a-a
=…=…
=(1+r)^kx(0)-a[(1+k)^k-1]/r
根据a=0.45 , x(0)=50 , x(180)=0 得到模型关于月利率r的高次代数方程如下:
50(1+r)^180-0.45[(1+k)^180-1]/r=0
f(r)=50(1+r)^180-0.45[(1+k)^180-1]/r
则此问题就转化为非线性方程求根问题,令
f(r)=0
求出r
年利率R=12*r 方程1
⑵.求解模型的数学方法
由上述可知迭代函数已求出,正是应用牛顿法。下述编写求解模型程序
⑶.编写求解模型程序
用MATLAB求解
考虑方程1,r应比当时活期存款月利率略高。用活期存款月利率0.0198/2
作为迭代初值,用fzero求解
>> f1=inline('50*r*(1+r)^180/((1+r)^180-1)-0.45');
r=fzero(f1,0.01)
r =
0.0059
>> R=12*r
R =
0.0702
或者为了剔除r=0这个没有意义的根,我们对f(r)稍作变形:
fun=inline('15*(1+x)^180/0.1-((1+x)^180-1)/r');
fun(r)= 15*(1+x)^180/0.1*((1+x)^180-1)/r;
dfun= inline('15*(1+x)^180/0.1-(180*(1+r)^179*r-((1+x)^180-1))/(r^2) ');
r=newton(fun,dfun,0.0198/2,le-4);
所求结果也是 月利率r=0.0059,年利率R=0.0702, 至此,第一家银行的利率已求得。
类似的,对于第二家银行,列出表格如下
房屋总价 | 首付款 | 还款年限 | 年还款 |
50万 | 0万 | 20年 | 4.5万 |
在此模型的建立可以照搬上一题的,然后
根据a=4.5 , x(0)=50 , x(20)=0 得到模型关于月利率r的高次代数方程如下:
20(1+r)^20-4.5[(1+k)^20-1]/r=0
年利率R= 12*r
编写求解模型程序
用MATLAB求解
考虑方程1,R应比当时活期存款月利率略高。用活期存款月利率0.0198/2
作为迭代初值,用fzero求解
f2=inline('50*R*(1+R)^20/((1+R)^20-1)-4.5');
R2=fzero(f2,0.01)
R2 =
0.0639
所以第二家银行的年利率为0.0639。
(4)分析结果
结果显示第一家银行的年利率为0.0702,第二家的为0.0639.通过数据比较,显然第二家银行利率小,较为优惠。
生活中我们会经常性遇到与利率有关的问题,通过该题的探讨,我们对生活中的经济数学有了更多的认识。不同银行往往采取不同的利率或者优惠方案吸引客户,作为学习过数学实验的客户,我们应理性分析不同方案下的利率问题,以使自身利益最大化。
发布评论