数学建模A题养老金计划养老金是指人们在年老失去工作能力后可以按期领取的补偿金,这里假定养老金计划从20岁开始至80岁结束,年利率为10℅。参加者的责任是,未退休时(60岁以前)每月初存入一定的金额,其中具体的存款方式为:20岁~29岁每月存入1X元,30岁~39岁每月存入2X元,40岁~49岁每月存入3X元,50岁~59岁每月存入4X元。参加者的权利是,从退休(60岁)开始,每月初领取退休金P,一直领取20年。试建立养老金计划的数学模型,并计算下列不同年龄的计划参加者的月退休金。1、从20岁开始参加养老金计划,假设1234200XXXX元;2、从35岁开始参加养老金计划,假设2200X元,3500X元,41000X元;3、从48岁开始参加养老金计划,假设31000X元,42000X元。论文题目:养老金计划姓名1:**(写作)专业:数学与应用数学姓名1:**(编程)专业:信息与计算科学姓名1:**(建模)专业:信息与计算科学2010年8月14日摘要:随着人口老龄化的到来,世界各国都在不断努力寻求解决老龄化社会问题的途径,已形成了各具特色的养老保险制度。但是我国养老金制度还存在层次单一,覆盖面狭窄和管理不协调的问题,因此本文就养老金计划问题进行讨论,旨在分析不同年龄阶段、投资不同金额的投保人在60岁后的20年里每月初所能领取养老金p。首先依据题设,投保人每月都按照自己所处年龄段存入相应的金额,可以将其按照月份不同分为12个不同的虚拟账户,并且假定将相应月份的投保金额存入相应的虚拟账户中。至每年末,各月份所对应虚拟账户的存款相同,且利息至次年对应月份才能获得。但是在60岁开始,且在以后的20年里,每月月初将会领到一定数额(P)的养老金,可认为所领取的养老金是从该月所对应的虚拟账户扣除。因此我们可以将每年中各月份的存款问题简化为只关注其中某一月份进行分析。其次,采用迭代方法建立不同情况下的四种数学模型,利用MATLAB编写对应模型的程序,并用二分法求解出符合问题条件下的P值。最终,运用所建立的数学模型最终求解出P1=10397.3511元,P2=5264.6136元,P3=4383.79385元。从结果可以看出,越早参加养老金计划,在60岁后的20年里每月初也能领取相当多的养老金。关键词:养老金月初虚拟账户目录一、问题的提出二、问题的分析三、建模的过程1.模型的假设2.模型的建立3.模型转换为MATLAB程序4.求解问题5.模型分析四、模型的评价与改进一、问题的提出:养老金是指人们在年老失去工作能力后可以按期领取的补偿金,这里假定养老金计划从20岁开始至80岁结束,年利率为10℅。参加者的责任是,未退休时(60岁以前)每月初存入一定的金额,其中具体的存款方式为:20岁—29岁每月存入X1元,30岁—39岁每月存入X2元,40岁—49岁每月存入X3元,50岁—59岁每月存入X4元。参加者的权利是,从退休(60岁)开始,每月初领取退休金P,一直领取20年。求按不同的年龄段不同的投资额,在60岁(退休后)每月月初所取的养老金p是否一样,并计算P值。二、问题的分析:由问题意可知,参加养老金计划的人在60岁前(为退休时)存入一定的金额,在退休后(60岁)开始,每月初领取退休金一直领取20年。目的就是建立一种模型,解决计算不同年龄阶段参加者最终每月获取的退休金p值。三、建模过程:1.模型假设首先,假设此问题的外部因素不会发生改变;其次,银行必须在投资者80岁时,把投资者所投金额以及所有的利息全部返还给投资者;再次,参加计划的投资者在一开始投资后,到59岁末都必须每月按时、按额投资该月的资金,中间无间断和拖欠。2.模型建立由问题知,投保人每月都按照自己所处年龄段存入相应的金额,我们可以将其按照月份不同分为12个不同的虚拟账户,并且假定将相应月份的投保金额存入相应的虚拟账户中。至每年末,各月份所对应虚拟账户的存款相同,且利息至次年对应月份才能获得。因此我们可以将每年中各月份的存款问题简化为只关注其中某一月份进行分析。例:按一月份进行分析。如果在20岁的第一月存入X元的投保资金,则在第二年的第一个月对应虚拟账户上的累计户额为上一年一月利息加上本金,以及本年一月所存入的养老金额X。依次类推,在60岁的一月对应虚拟账户累计金额为40年来所有一月的本金和利息的总和。但是在60岁开始,且在以后的20年里,每月月初将会领到一定数额(P)的养老金,我们可以认为所领取的养老金是从该月所对应的虚拟账户扣除。因此对于一月而言,从60岁开始领取P金额后,所剩的资金还会在次年有10%的利息,依次类推到第二十年时,一月的虚拟帐户将会为零,即虚拟账户中所有累计金额全部返回给投保人,此时可以得到一个一次方程,P是未知量,所以方程的解就是P的值。用此方法可以计算出不同年龄阶段的投资者投资不同资金时,从60岁开始的后二十年内每月月初所领取的养老金P。因此针对上述问题可建立如下四个不同年龄阶段的数学模型,即(符号说明:20-80岁之前第n岁,一月份办理业务之后账户所剩余额;X1为20—29岁阶段每月存入的金额数量,X2为30—39岁阶段每月存入的金额数量;X3为40—49岁阶段每月存入的金额数量;X4为50—59岁阶段每月存入的金额数量;p为60岁开始每月领取的退休金)1.从20—29岁开始参加养老金计划的数学模型为:.79,,60%110;59,,50%110;49,,40%110;39,,30%110;29,,%110141312111npSnxSnxSnxSmnxSSnnnnnn2.从30—39岁开始参加养老金计划的数学模型为:.79,,60%110;59,,50%110;49,,40%110;39,,%1101413121npSnxSnxSmnxSSnnnnn3.从30—39岁开始参加养老金计划的数学模型为:.79,,60%110;59,,50%110;49,,%11014131npSnxSmnxSSnnnn4.从30—39岁开始参加养老金计划的数学模型为:.79,,60%110;59,,%110141npSmnxSSnnn3.模型转化的MATLAB程序:程序分为pension、pension_X、REM三个函数,其中pension为求解时输入参数的函数,REM为二分法求解线性方程的函数,REM求解时调用了pension_X函数,当p值满足pension_X(p)=0是,p为问题所求的解。函数pension:function[x,k,y]=pension(age,twenties,thirties,forties,fifties);%age为开始参加养老金计划的年龄;%twenties为20-29岁阶段每月所需缴纳的养老金;%thirties为30-29岁阶段每月所需缴纳的养老金;%forties为40-49岁阶段每月所需缴纳的养老金;%fifties为50-59岁阶段每月所需缴纳的养老金;%x为退休后每月所领取的退休金,即p值;%k为应用二分法求解p值时所迭代的次数;%y为退休金全部领取完后,账户所剩余额。formatlong;globalmx1x2x3x4;m=age;x1=twenties;x2=thirties;x3=forties;x4=fifties;if(m=20)&(m=59)a=1000;b=50000;f=@pension_X;delta=0.0001;[x,k,y]=REM(f,a,b,delta);else'此程序不解决这个年龄的问题'end函数pension_X:functions=pension_X(p);%p为每月领取退休金的金额数量%s为每次办理业务后的账户余额globalmx1x2x3x4s;if(m=20)&(m=29)s=x1;fork=m+1:1:29s=1.1*s+x1;endfork=30:1:39s=1.1*s+x2;endfork=40:1:49s=1.1*s+x3;endfork=50:1:59s=1.1*s+x4;endfork=60:1:79s=1.1*s-p;endelseif(m=30)&(m=39)s=x2;fork=m+1:1:39s=1.1*s+x2;endfork=40:1:49s=1.1*s+x3;endfork=50:1:59s=1.1*s+x4;endfork=60:1:79s=1.1*s-p;endelseif(m=40)&(m=49)s=x3;fork=m+1:1:49s=1.1*s+x3;endfork=50:1:59s=1.1*s+x4;endfork=60:1:79s=1.1*s-p;endelseif(m=50)&(m=59)s=x4;fork=m+1:1:59s=1.1*s+x4;endfork=60:1:79s=1.1*s-p;endend函数REM:function[x,k,y]=REM(f,a,b,delta);%f为引用了pension_x的函数%a、b为分布在解两侧的估计值%delta为迭代求解时的精度%x为方程的解,即所需要求的p值%k为迭代次数%y为已经领取结束时,所有账户所剩的总余额ya=feval(f,a);yb=feval(f,b);ifya*yb0disp('Thisequationhasnosolution');endfork=1:1:100000c=(a+b)/2;yc=f(c);ifyc==0a=c;ya=yc;b=c;yb=yc;elseifya*yc0b=c;yb=yc;elsea=c;ya=yc;endif((b-a)delta)&(feval(f,(a+b)/2)0)break;endendx=(a+b)/2;y=12*feval(f,(a+b)/2);4.求解问题:①从20岁开始参加养老金计划,X1=X2=X3=X4=200元;将所给参数带入函数,即[x,k,y]=pension(20,200,200,200,200)在命令窗口运行得到:x=1.039735106285662e+004k=29y=0.02793443250266可知此人退休后没人可领取养老金10397.35元②从35岁开始参加养老金计划,X2=200,X3=500,X4=1000元;[x,k,y]=pension(35,0,200,500,1000)在命令窗口运行得到:x=5.264613660983741e+003k=29y=0.01393053673746可知此人退休后没人可领取养老金5264.61元③从48岁开始参加养老金计划,X3=1000,X4=2000元;[x,k,y]=pension(48,0,0,1000,2000)在命令窗口运行得到:x=4.383793860763035e+003k=38y=2.563500311225653e-005可知此人退休后没人可领取养老金4383.79元5.模型分析此模型的建立是依据利息按照年进行计算,每月的投资金到了次年的该月才会产生利息,且养老金又是按月来领取的,所以把每一个月单独地看成一个个体,用这个个体的情况来估计总体的趋势。五、模型的评价与改进该模型的假设在理论上是成立的,具有一定的合理性。1.现实存在诸多不确定的因素,例如,政府对每月缴纳养老金的金额数量或者年龄利率有所改变时,可能会影响假设的不成立或计算结果不合理。2.在运用数学软件MATLAB编程时,使用了二分法求解方程的根,由于计算程序的不完善性,可能会在在计算精度上有误差,因此与真实值之间会存在一定的偏差,但是可对程序中所涉及的精度进行改进,可使误差尽量减小。养老金是指人们在年老失去工作能力后可以按期领取的补偿金,这里假定养老金计划从20岁开始至80岁结束,年利率为10℅。参加者的责任是,未退休时(60岁以前)每月初存入一定的金额,其中具体的存款方