1.一老人60岁时将养老金10万元存入基金会,月利率0.4%,他每月取1000元作为生活费,建立差分方程计算他每岁末尚有多少钱?多少岁时将基金用完?如果想用到80岁,问60岁时应存入多少钱?分析:(1)假设k个月后尚有kA元,每月取款b元,月利率为r,根据题意,可每月取款,根据题意,建立如下的差分方程:1kkAaAb,其中a=1+r(1)每岁末尚有多少钱,即用差分方程给出kA的值。(2)多少岁时将基金用完,何时0kA由(1)可得:01kkkaAAabr若0nA,01nnAraba(3)若想用到80岁,即n=(80-60)*12=240时,2400A,24002401Araba利用MATLAB编程序分析计算该差分方程模型,源程序如下:clearallcloseallclcx0=100000;n=150;b=1000;r=0.004;k=(0:n)';y1=dai(x0,n,r,b);round([k,y1'])functionx=dai(x0,n,r,b)a=1+r;x=x0;fork=1:nx(k+1)=a*x(k)-b;end(2)用MATLAB计算:A0=250000*(1.004^240-1)/1.004^240思考与深入:(2)结论:128个月即70岁8个月时将基金用完(3)A0=1.5409e+005结论:若想用到80岁,60岁时应存入15.409万元。2.某人从银行贷款购房,若他今年初贷款10万元,月利率0.5%,他每月还1000元。建立差分方程计算他每年末欠银行多少钱,多少时间才能还清?如果要10年还清,每月需还多少?分析:记第k个月末他欠银行的钱为x(k),月利率为r,且a=1+r,b为每月还的钱。则第k+1个月末欠银行的钱为x(k+1)=a*x(k)+b,a=1+r,b=-1000,k=0,1,2…在r=0.005及x0=100000代入,用MATLAB计算得结果。编写M文件如下:functionx=exf11(x0,n,r,b)a=1+r;x=x0;fork=1:nx(k+1)=a*x(k)+b;endMATLAB计算并作图:k=(1:140)';y=exf11(100000,140,0.0005,-1000);所以如果每月还1000元,则需要11年7个月还清。如果要10年即n=120还清,则模型为:r*x0*(1+r)^n/[1-(1+r)^nb=-r*x0*(1+r)^n/[1-(1+r)^n]用MATLAB计算如下:x0=100000;r=0.005;n=120;b=-r*x0*(1+r)^n/[1-(1+r)^n]b=1.1102e+003所以如果要10年还清,则每年返还1110.2元。3.在某种环境下猫头鹰的主要食物是田鼠,设田鼠的年平均增长率为1r,猫头鹰的存在引起的田鼠增长率的减少与猫头鹰的数量成正比,比例系数为1a;猫头鹰的年平均减少率为2r;田鼠的存在引起的猫头鹰减少率的增加与田鼠的数量成正比,比例系数为2a。建立差分方程模型描述田鼠和猫头鹰共处时的数量变化规律,对以下情况作图给出50年的变化过程。(1)设12120.2,0.3,0.001,0.002,rraa开始时有100只田鼠和50只猫头鹰。(2)1212,,,rraa同上,开始时有100只田鼠和200只猫头鹰。(3)适当改变参数12,aa(初始值同上)(4)求差分方程的平衡点,它们稳定吗?分析:记第k代田鼠数量为kx,第k代猫头鹰数量为ky,则可列出下列方程:111122()()kkkkkkkkxxrayxyyraxy运用matlab计算,程序如下:functionz=disanti(x0,y0,a1,a2,r1,r2)x=x0;y=y0;fork=1:49x(k+1)=x(k)+(r1-y(k)*a1)*x(k);y(k+1)=y(k)+(-r2+x(k)*a2)*y(k);endz=[x',y'];(1)z=disanti(100,50,0.001,0.002,0.2,0.3)plot(1:50,z(:,1));holdon;plot(1:50,z(:,2),'r')(2)z=disanti(100,200,0.001,0.002,0.2,0.3)plot(1:50,z(:,1));holdon;plot(1:50,z(:,2),'r')(3)当a1,a2分别取0.002,0.002时,得到如下图像:05101520253035404550050100150200250300350400450可见,当a1,a2参数在一定范围内改变时,猫头鹰与田鼠数量在一定范围内震荡,且不灭绝。(4)令1kkxxx;1kkyyy解方程得到如下结果:x=150y=200经matlab验证如下:z=disanti(150,200,0.001,0.002,0.2,0.3)plot(1:50,z(:,1));holdon;plot(1:50,z(:,2),'r')由此可知:平衡点为:x=150y=2004.研究将鹿群放入草场后草和鹿两种群的相互作用。草的生长遵从Logistic规律,年固有增长率0.8,最大密度为3000(密度单位),在草最茂盛时每只鹿每年可吃掉1.6(密度单位)的草。若没有草,鹿群的年死亡率高达0.9,而草的存在可使鹿的死亡得以补偿,在草最茂盛时补偿率为1.5。作一些简化假设,用差分方程模型描述草和鹿两种群数量的变化过程,就以下情况进行讨论:(1)比较将100只鹿放入密度为1000和密度为3000的草场两种情况。(2)适当改变参数,观察变化趋势。模型假设:1.草独立生存,独立生存规律遵从Logistic规律;2.草场上除了鹿以外,没有其他以草为食的生物;3.鹿无法独立生存。没有草的情况下,鹿的年死亡率一定;4.假定草对鹿的补偿率是草场密度的线性函数;5.每只鹿每年的食草能力是草场密度的线性函数。记草的固有增长率为r,草的最大密度为N,鹿独立生存时的年死亡率为d,草最茂盛时鹿的食草能力为a,草对鹿的年补偿作用为b;第k+1年草的密度为1kx,鹿的数量为1ky,第k年草的密度为kx,鹿的数量为ky。草独立生存时,按照Logistic规律增长,则此时草的增长差分模型为1(1)kkkkxxxrxN,但是由于鹿对草的捕食作用,草的数量会减少,则满足如下方程:1(1),(0,1,2,)kkkkkkxaxyxxrxkNN(1)鹿离开草无法独立生存,因此鹿独立生存时的模型为1kkkyydy,但是草的存在会使得鹿的死亡率得到补偿,则满足如下差分方程:1(),(0,1,2,)kkkkbxyydykN(2)另外,记初始状态鹿的数量为0y,草场密度初值为0x,各个参数值为:,,,,利用MATLAB编程序分析计算该差分方程模型,源程序如下:%定义函数diwuti,实现diwuti-Logistic综合模型的计算,计算结果返回种群量functionB=disiti(x0,y0,r,N,b,a,d,n)%描述diwuti-Logistic综合模型的函数x(1)=x0;%草场密度赋初值y(1)=y0;%鹿群数量赋初值fork=1:n;x(k+1)=x(k)+r*(1-x(k)/N)*x(k)-a*x(k)*y(k)/N;y(k+1)=y(k)+(-d+b*x(k)/N)*y(k);endB=[x;y];%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%clearallC1=disiti(1000,100,0.8,3000,1.5,1.6,0.9,50);C2=disiti(3000,100,0.8,3000,1.5,1.6,0.9,50);k=0:50;plot(k,C1(1,:),'b',k,C1(2,:),'b',k,C2(1,:),'r',k,C2(2,:),'r')axis([05003000]);xlabel('时间/年')ylabel('种群量/草场:单位密度,鹿:头')title('图1.草和鹿两种群数量变化对比曲线')gtext('x0=1000')gtext('x0=3000')gtext('草场密度')gtext('鹿群数量')比较将100只鹿放入密度为1000和密度为3000的草场两种情况(绘制曲如图1所示):由图中可以看到,蓝色曲线代表草场密度的初始值为1000时,两种群变化情况;而红色曲线则代表草场密度的初始值为3000时,两种群的变化情况。观察两种情况下曲线的演变情况,可以发现大约40-50年左右时间后,两种群的数量将达到稳定。使用MatLab计算可以得到,当(,)(1800,600)kkkyy,即两种群数量的平衡点为(1800,600)。为进一步验证此结论,下面通过改变相关参数,研究两种群变化情况,找到影响平衡点的因素:(1)改变草场密度初始值;从图2中可以看到,改变草场的初始密度不会对两种群数量的平衡点造成影响。(2)改变鹿的数量初值由图2可以看到,鹿初始的数量的改变在理论上也不会改变最终种群数量的平衡值。但是,我们可以看到,y0=2000的那条曲线(紫色曲线),在5-15区间内降低到了非常小的值,这显然是不符合鹿的现实繁殖规律的,因为鹿的种群可持续繁殖的最小数量是存在域值的。当种群数量低于这个值时,在实际情况下,鹿的种群就要灭绝。同样道理,草场的密度也存在一个最小量的域值,低于这个阈值,草也将灭绝。综合上面分析,可以在此得出一个结论:最大密度一定的草场所能承载的鹿的数量存在上限。(3)改变草场的最大密度N,画图比较结果;如图4所示,如果草场密度的最大值N发生变化,则最终两种群数量的平衡点也会发生相应的变化。结论:N值越大,平衡点两种群的数量就越大;N越小,平衡点两种群的数量就越小。(4)改变鹿群独立生存时的死亡率实验中,改变了鹿单独生存的死亡率得到如图5.1和5.2两幅图,可以得出结论:鹿单独生存的死亡率越大,则两种群数量达到平衡点的时间越短;相反,鹿单独生存的死亡率越小,则两种群数量达到平衡点的时间越长(甚至有可能会出现分叉、混沌)。(5)草场密度对鹿数量的补偿作用变化(b变化)从图中可以看到,如果b增大,则达到稳定点的时间会加长,但如果b减小则会有一个域值,当b低于域值时,草-鹿种群数量的平衡时将不收敛于同一个平衡点,出现多值性。5.Leslie种群年龄结构的差分方程模型已知一种昆虫每两周产卵一次,六周以后死亡(给出了变化过程的基本规律)。孵化后的幼虫2周后成熟,平均产卵100个,四周龄的成虫平均产卵150个。假设每个卵发育成2周龄成虫的概率为0.09,(称为成活率),2周龄成虫发育成4周龄成虫的概率为0.2。假设开始时,0~2,2~4,4~6周龄的昆虫数目相同,计算2周、4周、6周后各种周龄的昆虫数目;讨论这种昆虫各种周龄的昆虫数目的演变趋势:各周龄的昆虫比例是否有一个稳定值?昆虫是无限地增长还是趋于灭亡?假设使用了除虫剂,已知使用了除虫剂后各周龄的成活率减半,问这种除虫剂是否有效?分析:将两周分成一个时段,设k时段2周后幼虫数量为:x1(k),2到4周虫的数量为:x2(K),4到6周虫数量为:x3(K)。据题意可列出下列差分方程:x1(k+1)=x2(k)*100+x3(k)*150x2(k+1)=x1(k)*0.09x3(k+1)=x2(k)*0.2运用matlab编写的程序如下:functionz=diwuti(a,r1,r2,n)x(1)=a;y(1)=a;w(1)=a;fork=1:nx(k+1)=y(k)*100+w(k)*150;y(k+1)=x(k)*r1;w(k+1)=y(k)*r2;endz=[x',y',w'];fork=1:n+1m=x(k)+y(k)+w(k)endplot(1:n+1,x);holdonplot(1:n+1,y,'r');