文档详情

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

发布:2018-01-22约5.38千字共13页下载文档
文本预览下载声明
佛山科学技术学院 上 机 报 告 课程名称 数学建模 上机项目 指数增长模型和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)模型: 模型假设 常用的计算公式:今年人口 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,如下: 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
显示全部
相似文档