数学建模作业6指数增长模型和Logistic模型

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(2)模型建立

(显示模型函数的构造过程)

由于量大,()x t 可看作连续、可微函数,t 到t t +∆时间内人口的增量为

()()

()x t t x t rx t t

+∆-=∆

于是()x t 满足微分方程

(0)dx

rx dt

x x ⎧=⎪

⎨⎪=⎩ (1) (3)模型求解

(显示模型的求解方法、步骤及运算程序、结果)

解微分方程(1)得

0()rt x t x e = (2)

当t →∞时,()(0)x t r →∞>,即随着时间增加,人口按指数规律无限增长。 (4)模型的参数估计

要用模型的结果(2)式来预报人口,必须对常数r 进行估计,可以用表1的数据通过拟合得到。取0 3.9x =,通过(2)式以及表中1790-1990的数据进行最小二乘法拟合得r=0.2169.程序如下: 模型求解:取初始值x(0)=3.9

Matlab 程序:

建立M 文件volum.m,如下: function y=volum(beta,t) y=3.9*exp(beta(1)*t);

再建立r1.m程序,如下:

t=0:1:20;

x=[3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.9 76.0 92.0 106.5 123.2 131.7 150.7 179.3 204.0 226.5 251.4];

beta0=[0.01];

[beta,r,J]=nlinfit(t',x','volum',beta0);

beta

结果为beta =0.2169

(5)模型检验

先建立M文件renkou.m,如下:

function x=renkou(beta,t)

x=3.9*exp(beta*t);

再建立程序zhishu.m,如下:

t=0:1:20;

x=[3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.9 76.0 92.0 106.5 123.2 131.7 150.7 179.3 204.0 226.5 251.4];

beta0=0.01;

beta=nlinfit(t',x','renkou',beta0)

y=3.9*exp(beta*t);

y

plot(t,x,'*',t,y)

error=abs(y-x)

结果为:

beta =

0.2169

y =

Columns 1 through 8

3.9000

4.8444 6.0176 7.4748 9.2849 11.5334 14.3264 17.7957

Columns 9 through 16

22.1051 27.4582 34.1075 42.3671 52.6268 65.3711 81.2015 100.8655

Columns 17 through 21

125.2914 155.6324 193.3208 240.1359 298.2879

error =

Columns 1 through 8

0 0.4556 1.1824 2.1252 3.6151 5.5666 8.8736 13.6043

Columns 9 through 16

16.4949 22.7418 28.7925 33.6329 39.3732 41.1289 41.9985 30.8345

Columns 17 through 21

25.4086 23.6676 10.6792 13.6359 46.8879

图像如下:

根据拟合出的数据和原来数据填写表格,如下:

表2 实际人口与按指数增长模型计算的人口比较

年(公元) 实际人口

(百万)

指数增长模型

预测人口(百万)误差

图2:阻滞增长模型~x t 曲线图

(4)模型的参数估计

通过表1中1790-1990年的数据对r 和m x 进行拟合,得到0.2798r =,

311.9555m x =。程序如下:

模型求解:取初始值x(0)=3.9 Matlab 程序:

建立M 文件volum1.m,如下: function y1=volum1(beta,t)

y1=beta(1)./(1+((beta(1)./3.9)-1).*exp(-beta(2)*t));

再建立程序rm.m ,如下:

t=0:1:20;

x=[3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.9 76.0 92.0 106.5 123.2 131.7 150.7 179.3 204.0 226.5 251.4]; beta0=[10 0.01]';

[beta,r,J]=nlinfit(t',x','volum1',beta0); beta

t

x 0

x m x m /2 x 0

结果为beta =

311.9555

0.2798

(5)模型检验

t=0:1:20;

x=[3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.9 76.0 92.0 106.5 123.2 131.7 150.7 179.3 204.0 226.5 251.4];

y=(311.9555)./(1+((311.9555)./3.9-1).*exp(-0.2798*t));

y

plot(t,x,'*',t,y,'r');

wucha=abs(x-y)

y =

相关文档
最新文档