课程设计
题目:(1 小张夫妇以按揭方式贷款买了1套价值20万元的房子,首付了5万元,每月还款1000元,15年还清;问贷款利率是多少?
⑵.某人欲贷款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+rx(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+rx(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求解
考虑方程1r应比当时活期存款月利率略高。用活期存款月利率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求解
考虑方程1R应比当时活期存款月利率略高。用活期存款月利率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.通过数据比较,显然第二家银行利率小,较为优惠。
生活中我们会经常性遇到与利率有关的问题,通过该题的探讨,我们对生活中的经济数学有了更多的认识。不同银行往往采取不同的利率或者优惠方案吸引客户,作为学习过数学实验的客户,我们应理性分析不同方案下的利率问题,以使自身利益最大化。