百姓购房问题数学建模.docx

上传人:b****3 文档编号:3884947 上传时间:2022-11-26 格式:DOCX 页数:28 大小:1.25MB
下载 相关 举报
百姓购房问题数学建模.docx_第1页
第1页 / 共28页
百姓购房问题数学建模.docx_第2页
第2页 / 共28页
百姓购房问题数学建模.docx_第3页
第3页 / 共28页
百姓购房问题数学建模.docx_第4页
第4页 / 共28页
百姓购房问题数学建模.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

百姓购房问题数学建模.docx

《百姓购房问题数学建模.docx》由会员分享,可在线阅读,更多相关《百姓购房问题数学建模.docx(28页珍藏版)》请在冰豆网上搜索。

百姓购房问题数学建模.docx

百姓购房问题数学建模

百姓购房的抉择

摘要:

为了解决普通百姓对租房和购房问题的合理选择。

因此,对此类问题进行了调研和分析。

一方面,了解了当前的租房和购房的市场背景;另一方面,查询了银行当前的存贷款利率和公积金贷款利率。

从而,建立了数学模型,应用了资金时间价值的理论和计算公式,并通过C语言编程得以实现。

通过对模型和结果的分析,得出结论。

关键词:

购房问题、租房问题、数学建模、资金时间价值、C语言

一、背景材料

1、市场现状:

我们国家的城市住房商品化政策已经启动,这将给普通老百姓改善家庭住房,提高生活水平提供了一个好机会。

但是购房资金的来源困扰着一些家庭,绝大多数普通老百姓家庭一次性支付一大笔资金是困难的。

就目前的一些房地产开发商提出的分期付款购房和银行的购房贷款政策,对一些家庭来说好似雾里看花,搞得人们眼花缭乱。

对不同的家庭来说,根据不同的家庭情况采取什么样的购房决策,是每一个家庭关心大事。

2、案例:

你的家庭也面临这一问题。

你的家庭是一个三口之家,你父母有稳定的工作和月收入,平均月收入为5000元。

如果决定贷款购房,需要紧缩开支。

你父母经过计划,除必须开支和必要积蓄之外,每月可用于支付房款的资金(记为a)不能超过2000元。

另外你父母还有100000元的积蓄(记为b)。

假设你的家庭所在大城市的经济适用型住房的价格(记为c)为每平方米3000元,你父母认为你的家庭需要住房面积(记为d)在80平方米以上。

你是一个在读的大学生,应该为父母分担忧愁,为父母的正确决策提供数字依据。

你需要到银行去了解一下关于住房贷款的一些数据,比如,对不同的住房条件,首期支付房款数额(记为e),对不同的贷款总额(记为f)和贷款期限(记为g),每月的还款数量(或利息)(记为h)等问题做一些调查。

根据这些数据,你认为采取什么决策是最佳的,并且令你的父母感到满意。

如果你父亲(或母亲)可以在单位租赁到一套85平方米的公有住房,而每月每平方米的租金(记为i)为7元,或2004年的租金为2元/每月每平方米,今后租金将以每年10%的速度增加。

房屋的折旧率(记为j)为2%,即一套合格的新住房使用50年后价值为零。

从长期的价值观念来分析,你认为是租这套房屋还是另购新房。

另外,请你为其他不同经济条件的家庭作出决策。

家庭一:

a=6000,b=30000,d=80以上;

家庭二:

a=2000,b=100000,d=100以上;

家庭三:

a=3000,b=50000,d=?

以及其他你感兴趣的家庭类型给出决策。

二、收集的数据

1、人民银行发布的数据:

金融机构人民币存贷款基准利率调整表

单位:

%

调整后利率

城乡居民和单位存款

活期存款

0.50

整存整取定期存款

三个月

3.10

半年

3.30

一年

3.50

二年

4.40

三年

5.00

五年

5.50

各项贷款

六个月

6.10

一年

6.56

一至三年

6.65

三至五年

6.90

五年以上

7.05

个人住房公积金贷款

五年以下(含五年)

4.45

五年以上

4.90

注:

中国人民银行决定,从2012年2月24日起,下调存款类金融机构人民币存款准备金率0.5个百分点。

(完)

三、数学模型的建立

1、模型描述

通过对租房总费用现值和公积金贷款总费用现值的比较来确定方案的优劣。

为什么比较总费用现值,而不比较总费用?

主要是因为贷款的年限是不确定的,而租房的年限是确定的。

根据资金的价值理论:

不同时间发生的等额资金在价值上是有差别的。

所以在进行方案选择时,必须考虑资金的时间价值,这样作出的决策才是相对合理的。

本案例两个方案的资金流产生的时间长度不同,但起点相同,所以用现值去比较是相对合理的。

该案例中现值的含义是,当前流出资金的总量。

2、参考资金价值的公式:

一次支付终值公式

等额分付现值公式

等额分付偿债基金公式

年利率换算月利率公式

F:

表示终值;P:

表示现值;

A:

表示等年(或月)值;

i:

表示利率;n:

表示期限

3、程序源代码:

#include

#include

intn,choice;

doubleretxz,z,zjl;/*retxz租房费用现值;z购房费用现值;zjl折旧率*/

voidjisuan(double,double,double,double,double,double,double,double,

double,double);/*函数jisuan()用于计算租房总费用,贷款总费用*/

doubleyuelilv(double);/*用于将年利率换算成月利率*/

doubleret(double,double,double,double,double);

/*函数ret()计算租房总费用的函数*/

voiddebj(double,double,double,double,double,double,double,double,double);

/*函数debj()用于计算等额本金还贷总费用*/

voiddebx(double,double,double,double,double,double,double,double,double);

/*函数debx()用于计算等额本息还贷总费用*/

voidmain()

{

doubley,a,b,d,i,r,r1,r2,j,c;

printf("请输入平均月工资y(单位:

元):

");

scanf("%lf",&y);

printf("请输入每月最多可用于支付房贷(或租房)的资金a(单位:

元):

");

scanf("%lf",&a);

printf("请输入当前积蓄b(单位:

元):

");

scanf("%lf",&b);

printf("请输入每平方米房价c(单位:

元/平方米):

");

scanf("%lf",&c);

printf("请输入需要的租房面积(或购房面积)d(单位:

平方米):

");

scanf("%lf",&d);

printf("请输入每月每平方米的租金i(单位:

元):

");

scanf("%lf",&i);

printf("请输入租房年限n(单位:

年):

");

scanf("%d",&n);

printf("请输入租房折旧率zjl(以小数表示):

");

scanf("%lf",&zjl);

printf("请输入公积金贷款首付比例j(以小数表示):

");

scanf("%lf",&j);

printf("请输入存款年利率r(以小数表示):

");

scanf("%lf",&r);

printf("请输入公积金贷款利率年利率r1(五年以下、含五年;以小数表示):

");

scanf("%lf",&r1);

printf("请输入公积金贷款利率年利率r2(五年以上;以小数表示):

");

scanf("%lf",&r2);

printf("等额本金,请输入0\n");

printf("等额本息,请输入1\n");

printf("请输入还贷方式choice:

");

scanf("%d",&choice);

jisuan(y,a,b,d,i,r,r1,r2,j,c);

}

voidjisuan(doubley,doublea,doubleb,doubled,doublei,doubler,doubler1,doubler2,doublej,doublec)

{

doublew;

w=ret(a,b,d,i,r);

switch(choice){

/*还款方式的选择*/

case0:

debj(w,a,b,d,c,r1,r2,j,r);break;

case1:

debx(w,a,b,d,c,r1,r2,j,r);break;

}

}

doubleyuelilv(doublei)

{

doublex;

x=pow(1+i,1.0/12)-1;/*用于将年利率换算成月利率*/

returnx;

}

doubleret(doublea,doubleb,doubled,doublei,doubler)

{

doubley,l;

l=yuelilv(r);

y=b*l*pow(1+l,n*12)/(pow(1+l,n*12)-1);

if((d*i)>=(a+y)){

printf("您的家庭经济情况不适合租此类住房,请慎重考虑!

谢谢!

\n");

return0;

}

else{

if(d*i

retxz=d*i*(pow(1+l,n*12)-1)/(l*pow(1+l,12*n))-b;/*折现*/

returnd*i*n*12;

}

else{

retxz=d*i*(pow(1+l,n*12)-1)/(l*pow(1+l,12*n))-(b-(d*i-a)*(pow(1+l,n*12)-1)/(l*pow(1+l,12*n)));/*折现*/

returnd*i*n*12;

}

}

}

voiddebj(doublew,doublea,doubleb,doubled,doublec,doubler1,doubler2,doublej,doubler)

{

intg,k,m;

doublee,f,h1,h2,A,sum=0,q,s,B,x,y;

e=d*c*j;

h1=yuelilv(r1);

h2=yuelilv(r2);

printf("预计您租房%d年所需要的总资金为%.2lf元\n",n,w);

printf("预计您租房%d年所需要的总资金转化为现值为%.2lf元\n",n,retxz);

printf("您的贷款情况表:

\n");

printf("还贷期限g(月)还贷总额q(元)买房总费用s(元)购房总现值z(元)优选\n");

if(b>=e){

f=d*c-b;

for(g=1;g<=12*n;g++){

if(g<=12*5){

/*五年以下用以下算法*/

A=f/g;

B=A+f*h1;

if(B

sum=0;

for(k=0;k<=g;k++)

sum=sum+(f-k*A)*h1;

q=f+sum;

s=q+b;

z=q/pow(1+r,g*1.0/12)+b;/*折现*/

if(z

printf("%d%.2lf%.2lf%.2lf购房\n",g,q,s,z);

else

printf("%d%.2lf%.2lf%.2lf租房\n",g,q,s,z);

/*打出列表*/

}

}

else{

/*五年以以上用以下算法*/

A=f/g;

B=A+f*h2;

if(B

sum=0;

for(k=0;k<=g;k++)

sum=sum+(f-k*A)*h2;

q=f+sum;

s=q+b;

z=q/pow(1+r,g*1.0/12)+b;/*折现*/

if(z

printf("%d%.2lf%.2lf%.2lf购房\n",g,q,s,z);

else

printf("%d%.2lf%.2lf%.2lf租房\n",g,q,s,z);

/*打出列表*/

}

}

}

}

/*首付不够采用以下算法*/

else{

for(m=1;m<=n;m++){

x=b*pow(1+r,m);

y=a*(pow(1+yuelilv(r),m*12)-1)/yuelilv(r);

if(e<=(x+y))

break;

}

printf("您需要储蓄%d年后才能开始买房。

\n",m);

f=d*c-(x+y);

for(g=1;g<=12*n-12*m;g++){

if(g<=12*5){

/*五年以下用以下算法*/

A=f/g;

B=A+f*h1;

if(B

sum=0;

for(k=0;k<=g;k++)

sum=sum+(f-k*A)*h1;

q=f+sum;

s=q+x+y;

z=q/pow(1+r,g*1.0/12)+(x+y)/pow(1+r,m)-zjl*m*d*c/pow(1+r,n);/*折现*/

if(z

printf("%d%.2lf%.2lf%.2lf购房\n",g,q,s,z);

else

printf("%d%.2lf%.2lf%.2lf租房\n",g,q,s,z);

/*打出列表*/

}

}

else{

/*五年以以上用以下算法*/

A=f/g;

B=A+f*h2;

if(B

sum=0;

for(k=0;k<=g;k++)

sum=sum+(f-k*A)*h2;

q=f+sum;

s=q+x+y;

z=q/pow(1+r,g*1.0/12)+(x+y)/pow(1+r,m)-zjl*m*d*c/pow(1+r,n);/*折现*/

if(z

printf("%d%.2lf%.2lf%.2lf购房\n",g,q,s,z);

else

printf("%d%.2lf%.2lf%.2lf租房\n",g,q,s,z);

/*打出列表*/

}

}

}

}

}

voiddebx(doublew,doublea,doubleb,doubled,doublec,doubler1,doubler2,doublej,doubler)

{

intg,k,m;

doublee,f,h1,h2,A,sum=0,q,s,x,y;

e=d*c*j;

h1=yuelilv(r1);

h2=yuelilv(r2);

printf("预计您租房%d年所需要的总资金为%.2lf元\n",n,w);

printf("预计您租房%d年所需要的总资金转化为现值为%.2lf元\n",n,retxz);

printf("您的贷款情况表:

\n");

printf("还贷期限g(月)还贷总额q(元)买房总费用s(元)购房总现值z(元)优选\n");

if(b>=e){

f=d*c-b;

for(g=1;g<=12*n;g++){

if(g<=12*5){

/*五年以下用以下算法*/

A=f*h1*pow(1+h1,g)/(pow(1+h1,g)-1);

if(A

q=A*g;

s=q+b;

z=q/pow(1+r,g*1.0/12)+b;/*折现*/

if(z

printf("%d%.2lf%.2lf%.2lf购房\n",g,q,s,z);

else

printf("%d%.2lf%.2lf%.2lf租房\n",g,q,s,z);

/*打出列表*/

}

}

else{

/*五年以以上用以下算法*/

A=f*h2*pow(1+h2,g)/(pow(1+h2,g)-1);

if(A

q=A*g;

s=q+b;

z=q/pow(1+r,g*1.0/12)+b;/*折现*/

if(z

printf("%d%.2lf%.2lf%.2lf购房\n",g,q,s,z);

else

printf("%d%.2lf%.2lf%.2lf租房\n",g,q,s,z);

/*打出列表*/

}

}

}

}

/*首付不够采用以下算法*/

else{

for(m=1;m<=n;m++){

x=b*pow(1+r,m);

y=a*(pow(1+yuelilv(r),m*12)-1)/yuelilv(r);

if(e<=(x+y))

break;

}

printf("您需要储蓄%d年后才能开始买房。

\n",m);

f=d*c-(x+y);

for(g=1;g<=12*n-12*m;g++){

if(g<=12*5){

/*五年以下用以下算法*/

A=f*h1*pow(1+h1,g)/(pow(1+h1,g)-1);

if(A

q=A*g;

s=q+x+y;

z=q/pow(1+r,g*1.0/12)+(x+y)/pow(1+r,m)-zjl*m*d*c/pow(1+r,n);/*折现*/

if(z

printf("%d%.2lf%.2lf%.2lf购房\n",g,q,s,z);

else

printf("%d%.2lf%.2lf%.2lf租房\n",g,q,s,z);

/*打出列表*/

}

}

else{

/*五年以以上用以下算法*/

A=f*h2*pow(1+h2,g)/(pow(1+h2,g)-1);

if(A

q=A*g;

s=q+x+y;

z=q/pow(1+r,g*1.0/12)+(x+y)/pow(1+r,m)-zjl*m*d*c/pow(1+r,n);/*折现*/

if(z

printf("%d%.2lf%.2lf%.2lf购房\n",g,q,s,z);

else

printf("%d%.2lf%.2lf%.2lf租房\n",g,q,s,z);

/*打出列表*/

}

}

}

}

}

 

4、运行结果:

当a=2000,b=100000,d=85时

选择等额本金方式还贷结果

选择等额本息方式还贷结果

结果分析:

从表上可知,50年租房所需要的租金总额为357000.00元,折现后相当于当前流出资金86223.05元(租房条件下:

流出资金=租房的总费用折现后—100000元)。

而对于购房,在现在经济条件的约束下,如果采用等额本金方式还公积金贷款,则至少需要还贷10年,还款总额为192457.49元,所以买房总共需要花292457.49元,流出资金为243206.45元;如果采用等额本息方式还公积金贷款,则至少需要还贷8年,还款总额为186918.26元,所以买房总共需要花286918.26元,流出资金总额247555.28元(等额本息方式,10年期,还款总额为195407.81元,流出资金总额245401.56元)。

还贷时间越长,所需的还贷总额越多,但购房总现值越来越小;如果还贷年限相同,采用等额本金方式还贷比较合算,但是开始几期等额本金方式还贷需要资金要大于等额本息方式,所以根据不同家庭的收入不同,要进行实际选择。

用网络上所给的房贷计算器计算的结果为,等额本金方式,10年期,还款总额为193291.46元;等额本息方式,10年期,还款总额为196373.96元。

与该程序的计算结果有900元左右的误差。

造成误差的原因可能是,银行在计算过程中,保留小数时,不采取四舍五入的原则,而采取向上入的原则,使得其结果较实际偏大。

通过计算机分析,在该家庭的经济条件和需求下,租房是优选方案。

家庭一:

a=6000,b=30000,d=80以上;d取85

选择等额本金方式还贷结果

选择等额本息方式还贷结果

结果分析:

在该家庭的经济条件和需求下,经过分析,是租房比较合算。

家庭二:

a=2000,b=100000,d=100以上。

d取100。

选择等额本金方式还贷结果

选择等额本息方式还贷结果

结果分析:

在该家庭的经济条件和需求下,租房相对比较合算。

家庭三:

a=3000,b=50000。

当d>55时,就不够首付;根据普通老百姓的家庭情况,要求的住宅面积一般都会大于d>55。

所以假设d=100.

选择等额本金方式还贷结果

选择等额本息方式还贷结果

结果分析:

在该假设下,租房相对比较合算。

a=2000,b=30000,d=100,i=15

选择等额本金方式还贷结果

选择等额本息方式还贷结果

结果分析:

在每平方米月租金相对较高的情况下出现了,购房相对合算的情况。

a=2000,b=30000,d=100,i=9

选择等额本金方式还贷结果

选择等额本息方式还贷结果

结果分析:

在假设每平方米月租金为9元时,当采用等额本金方式还贷时,如果还贷年限少于20年,则租房较购房合算,否则购房合算;当采用等额本息方式还贷时,如果还贷年限少于30年,则租房较购房合算,否则购房合算。

如果在此家庭条件和需求下,每平方米月租金大于9元时,购房相对合算,否则租房合算。

四、总结:

该程序可以用于一般的公积金贷款计算,能对租房和购房问题做基本的分析,并且给出一个可供参考的方案。

对于租房和购房此类问题,该软件能够比较全面的完成分析。

该程序人机交互比较合理,适用于普遍人群,能够给普通百姓购房和租房问题的选择提供了分析数据,作为决策的参考。

 

参考文献:

[1]姜启源、叶俊、谢金星,数学模型(第三版),高等教育出版社。

[2]吴添祖、虞晓芬、龚建立,技术经济学概论(第三版),高等教育出版社。

[3]谭浩强,C语言程序设计(第三版),清华大学出版社。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 人力资源管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1