差分方程模型习题+答案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 时,得到如下图像:

相关文档
最新文档