差分方程模型习题+答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. 一老人 60 岁时将养老金 10 万元存入基金会,月利率 0.4%, 他每月取 1000 元作为生活
费,建立差分方程计算他每岁末尚有多少钱?多少岁时将基金用完?如果想用到
80 岁,问
60 岁时应存入多少钱?
分析: (1) 假设 k 个月后尚有 A k 元,每月取款 b 元,月利率为 r ,根据题意,可每月取款,
根据题意,建立如下的差分方程:
A
k 1
aA k b ,其中 a = 1 + r
每岁末尚有多少钱 ,即用差分方程给出
A k 的值。
(2) 多少岁时将基金用完,何时
A k 0 由( 1)可得:
A
A a k
b a k
1
k 0
r
n
若 A n
0 ,
b
A 0 ra
n
a1
(3) 若想用到 80 岁,即 n = (80-60)*12=240 时, A 240
0 ,
b
A 0 ra
240
(1)
240
利用 MATLAB 编程序分析计算该差分方程模型,源程序如下: clear all close all clc
x0=100000;n=150;b=1000;r=0.004; k=(0:n)';
y1=dai(x0,n,r,b); round([k,y1'])
function x=dai(x0,n,r,b) a=1+r; x=x0; for k=1:n
x(k+1)=a*x(k)-b; end
(2) 用 MATLAB 计算:
A0=250000*(1.004^240-1)/1.004^240
a
1
思考与深入:
(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文件如下:
function x=exf11(x0,n,r,b)
a=1+r;
x=x0;
for k=1:n
x(k+1)=a*x(k)+b;
end
MATLAB 计算并作图 :
k=(1:140)';
y=exf11(100000,140,0.0005,-1000);
所以如果每月还1000 元,则需要11 年 7 个月还清。
如果要 10 年即 n=120 还清,则模型为:
r*x0*(1+r)^n/[1-(1+r)^n b=-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. 在某种环境下猫头鹰的主要食物是田鼠,设田鼠的年平均增长率为r1,猫头鹰的存在引起的田鼠增长率的减少与猫头鹰的数量成正比,比例系数为a1;猫头鹰的年平均减少率为
r2;田鼠的存在引起的猫头鹰减少率的增加与田鼠的数量成正比,比例系数为 a 2。建立差
50 年的变化过分方程模型描述田鼠和猫头鹰共处时的数量变化规律,对以下情况作图给出
程。
0.002,开始时有100 只田鼠和50 只猫头
(1) 设r10.2, r 20.3, a10.001,
a2
鹰。
(2)r1 , r2, a1 , a2同上,开始时有100 只田鼠和200 只猫头鹰。
(3)适当改变参数a1, a2(初始值同上)
(4)求差分方程的平衡点,它们稳定吗?
分析:记第 k 代田鼠数量为x k,第k代猫头鹰数量为y k,则可列出下列方程:
x
k 1x k( r1a1 y k ) x k
y
k 1y k( r 2 a 2 x k ) y k
运用 matlab 计算,程序如下:
function z=disanti(x0,y0,a1,a2,r1,r2)
x=x0;y=y0;
for k=1:49
x(k+1)=x(k)+(r1-y(k)*a1)*x(k);
y(k+1)=y(k)+(-r2+x(k)*a2)*y(k);
end
z=[x',y'];
(1)
z=disanti(100,50,0.001,0.002,0.2,0.3)
plot(1:50,z(:,1));
hold on;
plot(1:50,z(:,2),'r')
(2)
z=disanti(100,200,0.001,0.002,0.2,0.3)
plot(1:50,z(:,1));
hold on;
plot(1:50,z(:,2),'r')
(3)
当 a1,a2 分别取 0.002,0.002 时,得到如下图像: