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

上传人:b****0 文档编号:12539708 上传时间:2023-04-20 格式:DOCX 页数:15 大小:515.99KB
下载 相关 举报
数学建模作业6指数增长模型和Logistic模型.docx_第1页
第1页 / 共15页
数学建模作业6指数增长模型和Logistic模型.docx_第2页
第2页 / 共15页
数学建模作业6指数增长模型和Logistic模型.docx_第3页
第3页 / 共15页
数学建模作业6指数增长模型和Logistic模型.docx_第4页
第4页 / 共15页
数学建模作业6指数增长模型和Logistic模型.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

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

《数学建模作业6指数增长模型和Logistic模型.docx》由会员分享,可在线阅读,更多相关《数学建模作业6指数增长模型和Logistic模型.docx(15页珍藏版)》请在冰豆网上搜索。

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

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

佛山科学技术学院

上机报告

课程名称数学建模

上机项目指数增长模型和Logistic模型

专业班级姓名学号________

一、问题提出

人口问题是当前世界上人们最关心的问题之一。

认识人口数量的变化规律,作出较准确的预报,是有效控制人口增长的前提。

要求:

分别建立并求解两个最基本的人口模型,即:

指数增长模型和Logistic模型,并利用表1给出的近两百年的人口统计数据,画出图形拟合数据,对模型做出检验,最后用它预报2000年的人口。

表1人口统计数据

年(公元)

人口(百万)

1790

3.9

1800

5.3

1810

7.2

1820

9.6

1830

12.9

1840

17.1

1850

23.2

年(公元)

人口(百万)

1860

31.4

1870

38.6

1880

50.2

1890

62.9

1900

76.0

1910

92.0

1920

106.5

年(公元)

人口(百万)

1930

123.2

1940

131.7

1950

150.7

1960

179.3

1970

204.0

1980

226.5

1990

251.4

 

模型一:

指数增长(Malthus)模型:

(1)模型假设

常用的计算公式:

今年人口x0,年增长率r,k年后人口为

假设:

人口增长率r是常数(或单位时间内人口的增长量与当时的人口成正比)。

符号说明:

~t=0时的人口数,

~时刻t的人口数

(2)模型建立

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

由于量大,

可看作连续、可微函数,

时间内人口的增量为

于是

满足微分方程

(1)

(3)模型求解

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

解微分方程

(1)得

(2)

时,

即随着时间增加,人口按指数规律无限增长。

(4)模型的参数估计

要用模型的结果

(2)式来预报人口,必须对常数r进行估计,可以用表1的数据通过拟合得到。

,通过

(2)式以及表中1790-1990的数据进行最小二乘法拟合得r=0.2169.程序如下:

模型求解:

取初始值x(0)=3.9

Matlab程序:

建立M文件volum.m,如下:

functiony=volum(beta,t)

y=3.9*exp(beta

(1)*t);

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

t=0:

1:

20;

x=[3.95.37.29.612.917.123.231.438.650.262.976.092.0106.5123.2131.7150.7179.3204.0226.5251.4];

beta0=[0.01];

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

beta

结果为beta=0.2169

(5)模型检验

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

functionx=renkou(beta,t)

x=3.9*exp(beta*t);

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

t=0:

1:

20;

x=[3.95.37.29.612.917.123.231.438.650.262.976.092.0106.5123.2131.7150.7179.3204.0226.5251.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=

Columns1through8

3.90004.84446.01767.47489.284911.533414.326417.7957

Columns9through16

22.105127.458234.107542.367152.626865.371181.2015100.8655

Columns17through21

125.2914155.6324193.3208240.1359298.2879

 

error=

Columns1through8

00.45561.18242.12523.61515.56668.873613.6043

Columns9through16

16.494922.741828.792533.632939.373241.128941.998530.8345

Columns17through21

25.408623.667610.679213.635946.8879

图像如下:

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

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

(公元)

实际人口

(百万)

指数增长模型

预测人口(百万)

误差

1790

3.9

3.9000

0

1800

5.3

4.8447

0.4553

1810

7.2

6.0181

1.1819

1820

9.6

7.4758

2.1242

1830

12.9

9.2866

3.6134

1840

17.1

11.5360

5.5640

1850

23.2

14.3303

8.8697

1860

31.4

17.8014

13.5986

1870

38.6

22.1132

16.4868

1880

50.2

27.4695

22.7305

1890

62.9

34.1232

28.7768

1900

76.0

42.3885

33.6115

1910

92.0

52.6558

39.3442

1920

106.5

65.4101

41.0899

1930

123.2

81.2537

41.9463

1940

131.7

100.9350

30.7650

1950

150.7

125.3834

25.3166

1960

179.3

155.7538

23.5462

1970

204.0

193.4805

10.5195

1980

226.5

240.3453

13.8453

1990

251.4

298.5617

47.1617

分析原因,该模型的结果说明人口将以指数规律无限增长。

而事实上,随着人口的增加,自然资源、环境条件等因素对人口增长的限制作用越来越显著。

如果当人口较少时人口的自然增长率可以看作常数的话,那么当人口增加到一定数量以后,这个增长率就要随着人口增加而减少。

于是应该对指数增长模型关于人口净增长率是常数的假设进行修改。

下面的模型是修改后的阻滞增长模型。

模型二:

Logistic模型(阻滞增长模型)

(1)模型假设

假设1:

人口增长率r为人口

的函数

(减函数),即可假定

(线性函数),r叫做固有增长率。

假设2:

自然资源和环境条件能容纳的最大人口容量为

(2)模型建立

时,增长率应为0,即

,于是

,代入

,得:

(4)

将(3)式代入

(1)式得:

(5)

(3)模型求解

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

解(4)得

(6)

根据方程(4)作出

曲线图,如图1所示,由图1看出人口增长率随人口数的变化规律。

根据结果(5)式作出

的曲线图,如图2所示,由图2可看出人口数随时间的变化规律。

图1:

阻滞增长模型

曲线图

图2:

阻滞增长模型

曲线图

(4)模型的参数估计

通过表1中1790-1990年的数据对

进行拟合,得到

程序如下:

模型求解:

取初始值x(0)=3.9

Matlab程序:

建立M文件volum1.m,如下:

functiony1=volum1(beta,t)

y1=beta

(1)./(1+((beta

(1)./3.9)-1).*exp(-beta

(2)*t));

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

t=0:

1:

20;

x=[3.95.37.29.612.917.123.231.438.650.262.976.092.0106.5123.2131.7150.7179.3204.0226.5251.4];

beta0=[100.01]';

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

beta

结果为beta=

311.9555

0.2798

(5)模型检验

t=0:

1:

20;

x=[3.95.37.29.612.917.123.231.438.650.262.976.092.0106.5123.2131.7150.7179.3204.0226.5251.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=

Columns1through8

3.90005.13846.76158.882411.643215.218919.820425.6927

Columns9through16

33.107642.345953.665967.257183.1819101.3160121.3073142.5731

Columns17through21

164.3532185.8106206.1566224.7610241.2164

 

wucha=

Columns1through8

00.16160.43850.71761.25681.88113.37965.7073

Columns9through16

5.49247.85419.23418.74298.81815.18401.892710.8731

Columns17through21

13.65326.51062.15661.739010.1836

根据拟合出的数据和原来数据填写表格

表3实际人口与按logistic增长模型计算的人口比较

(公元)

实际人口

(百万)

logistic模型

预测人口(百万)

误差

1790

3.9

3.9000

0

1800

5.3

5.1384

0.1616

1810

7.2

6.7615

0.4385

1820

9.6

8.8824

0.7176

1830

12.9

11.6432

1.2568

1840

17.1

15.2189

1.8811

1850

23.2

19.8204

3.3796

1860

31.4

25.6927

5.7073

1870

38.6

33.1076

5.4924

1880

50.2

42.3459

7.8541

1890

62.9

53.6659

9.2341

1900

76.0

67.2571

8.7429

1910

92.0

83.1819

8.8181

1920

106.5

101.3160

5.1840

1930

123.2

121.3073

1.8927

1940

131.7

142.5731

10.8731

1950

150.7

164.3532

13.6532

1960

179.3

185.8106

6.5106

1970

204.0

206.1566

2.1566

1980

226.5

224.7610

1.7390

1990

251.4

241.2164

10.1836

根据对比可知,第二个模型更好,所以我们用第二个模型来预测。

用拟合得出的公式

可以预测

,即2000年的人口有306.4791百万人。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 药学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1