谁会数学建模的题

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/03 04:29:57

谁会数学建模的题
谁会数学建模的题

谁会数学建模的题
我不知道你具体要什么 就先发个简单的给你吧~
人口预测问题建模
一. 摘要
本次建模是依照美国人口统计数据,对已找到的马尔萨斯人口模型、Logistic模型进行验证仿真,最后确定Logistic模型是一个较理想的人口模型,然后利用该模型依照中国人口普查数据对中国人口的增长进行预测,最后提出控制人口的策略.
二. 对已有模型的仿真验证
(1) 找到现有的描述人口增长,与控制人口增长的模型
现有的最基本的人口模型有两个:
. 指数增长模型(马尔萨斯人口模型)
. 阻滞增长模型(Logistic模型)
(2) 深入分析现有的数学模型,并通过计算机进行仿真验证
表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
. 指数增长模型(马尔萨斯人口模型)
此模型由最早研究人口问题的英国经济学家马尔萨斯(1766——1834),根据百余年的人口资料,于1798年发表的《人口论》中首先提出的人口增长模型
【1】 假设:人口增长率r是常数(即单位时间内人口的增长量与当时的人口成正比)
【2】 建立模型:记时刻t = 0时人口数为x0, 时刻t的人口为x(t),由于量大, x(t)可视为连续、可微函数.t到t+Δt时间段内人口的增量为:

x(t)满足微分方程:
——————————————(1)
【3】 模型求解上述微分方程,得:
——————————————(2)
【4】 模型的参数估计:
利用线性回归解得r = 0.0237(程序源代码及结果见附录)
【5】 仿真验证:
将x0 = 3.9,r = 0.0237代入公式(2),解出误差并做出图像(程序源代码及误差、图像见附录,图像中红线是普查数据,蓝线预测曲线,运行结果中的输出依次为年份、实际人口数、预测人口数、误差)
 模型分析
从上述图像和运行结果可以看出1790-1950年的预测人口数与实际人口数吻合较好,但1950年以后的误差越来越大.
根据公式(2)可以算出:
2x0=x0e
即 e =2
解之,即得T=50ln2≈34.6(年)
即每35年,世界人口就要增长一倍.
以1965年的世界人口33.4亿作为基数进行计算,可以得到:
2515年 200万亿
2625年 1800万亿
2660年 3600万亿
……
若按人均地球表面积(包括水面、船上)计算,2625年仅为0.09平方米
/人,也就是人挨着人才能挤得下,而35年后的2660年,人口又翻了一番,
那就将会是人的肩上再站着人了.
 原因
该模型的结果说明人口将以指数规律无限增长,而事实上,随着人口的增长,自然资源、环境条件等因素对人口增长的限制作用越来越显著.如果人口基数较少时人口的自然增长率可以看作常数的话,那么当人口增加到一定数量以后,这个增长率就要随着人口增加而减少,导致越往后误差越大.
. 阻滞增长模型(Logistic模型)
【1】 假设:
(a) 人口增长率r为人口x(t)的函数r(x)(减函数),最简单假定r(x) = r – sx, r,s>0(线性函数),r叫做固有增长率
(b) 考虑到自然资源和环境条件的限制,年容纳的最大人口容量为xm
【2】 建立模型:
当x = xm时,增长率应为0.即r(xm)= 0,于是s = r / xm.代入r(x) = r - sx得r(x) = r (1 – x / xm),将上式代入(1)式得:
————————————(3)
【3】 模型求
解方程(3),得
——————————(4)
【4】 模型的参数估计:
利用曲线拟合解得r=0.0280, xm = 311.9527(程序源代码及结果见附录)
【5】 仿真验证:
将x0 = 3.9, r=0.0280, xm = 311.9527代入公式(2),并解出误差、做出图像(程序源代码及误差、图像见附录,图像中红线是普查数据,蓝线预测曲线,运行结果中的输出依次为年份、实际人口数、预测人口数、误差)
 模型分析
由上述误差计算和图像可以看出,Logistic模型已经能够较好的预测未来人口的数量,是一个较精准的人口模型
三. 附录
1.马尔萨斯人口模型参数估计部分程序源代码及运行结果
 程序源代码:(源代码保存在dengchang.m中)
t = [1790 1800 1810 1820 1830 1840 1850 1860 1870 1880 1890 1900 1910 1920 1930 1940 1950 1960 1970 1980 1990];
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];
x0 = x(1);
t0 = t(1);
r = regress(log(x'/x0), t' – t0)
 运行结果:
>> dengchang
r =
0.0237
2.马尔萨斯人口模型仿真验证部分程序源代码及运行结果
 程序源代码:(源代码保存在dengchang.m中)
t = [1790 1800 1810 1820 1830 1840 1850 1860 1870 1880 1890 1900 1910 1920 1930 1940 1950 1960 1970 1980 1990];
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];
x0 = x(1);
r = 0.0237;
result = x0*exp(r*(t'-t0));
[t' x' result (x'-result)./result * 100]
plot(t, x,'r');
hold on;
plot(t, result,'b')
 运行结果
>> dengchang
ans =
1.0e+003 *
1.7900 0.0039 0.0039 0
1.8000 0.0053 0.0049 0.0072
1.8100 0.0072 0.0063 0.0149
1.8200 0.0096 0.0079 0.0209
1.8300 0.0129 0.0101 0.0282
1.8400 0.0171 0.0128 0.0341
1.8500 0.0232 0.0162 0.0435
1.8600 0.0314 0.0205 0.0532
1.8700 0.0386 0.0260 0.0486
1.8800 0.0502 0.0329 0.0525
1.8900 0.0629 0.0417 0.0508
1.9000 0.0760 0.0529 0.0437
1.9100 0.0920 0.0670 0.0373
1.9200 0.1065 0.0849 0.0254
1.9300 0.1232 0.1077 0.0144
1.9400 0.1317 0.1365 -0.0035
1.9500 0.1507 0.1729 -0.0129
1.9600 0.1793 0.2192 -0.0182
1.9700 0.2040 0.2778 -0.0266
1.9800 0.2265 0.3521 -0.0357
1.9900 0.2514 0.4463 -0.0437
 图像

3. Logistic模型参数估计部分程序源代码及运行结果
 定义函数(源代码保存在curvefun.m中)
function f = curvefun(x, tdata)
x0 = 3.0;
t0 = tdata(1);
f = x(1) ./ (1 + (x(1) ./ x0 - 1) * exp(-x(2) .* (tdata - t0)));
 程序源代码:(源代码保存在dengchang.m中)
tdata = [1790 1800 1810 1820 1830 1840 1850 1860 1870 1880 1890 1900 1910 1920 1930 1940 1950 1960 1970 1980 1990];
xdata = [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];
xs = [100, 0.5];
x = lsqcurvefit('curvefun', xs, tdata, xdata)
 运行结果:
>> dengchang
Optimization terminated: relative function value
changing by less than OPTIONS.TolFun.
x =
311.9527 0.0280
4. Logistic模型仿真验证部分程序源代码及运行结果
 程序源代码:(源代码保存在dengchang.m中)
t = [1790 1800 1810 1820 1830 1840 1850 1860 1870 1880 1890 1900 1910 1920 1930 1940 1950 1960 1970 1980 1990];
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];
x0 = x(1);
t0 = t(1);
r = 0.0280;
xm = 311.9527;
result = xm ./ (1 + (xm ./ x0 - 1) * exp(-r .* (t' - t0)));
[t' x' result (x'-result)./result * 100]
plot(t, x,'r');
hold on;
plot(t, result,'b')
 运行结果
>> dengchang
ans =
1.0e+003 *
1.7900 0.0039 0.0039 0
1.8000 0.0053 0.0051 0.0031
1.8100 0.0072 0.0068 0.0064
1.8200 0.0096 0.0089 0.0080
1.8300 0.0129 0.0117 0.0107
1.8400 0.0171 0.0152 0.0123
1.8500 0.0232 0.0198 0.0169
1.8600 0.0314 0.0257 0.0221
1.8700 0.0386 0.0332 0.0164
1.8800 0.0502 0.0424 0.0184
1.8900 0.0629 0.0538 0.0170
1.9000 0.0760 0.0674 0.0128
1.9100 0.0920 0.0833 0.0104
1.9200 0.1065 0.1015 0.0049
1.9300 0.1232 0.1215 0.0014
1.9400 0.1317 0.1428 -0.0078
1.9500 0.1507 0.1646 -0.0084
1.9600 0.1793 0.1861 -0.0036
1.9700 0.2040 0.2064 -0.0012
1.9800 0.2265 0.2250 0.0007
1.9900 0.2514 0.2414 0.0041
 图像

5.选用Logistic模型对中国人口的增长进行预测部分程序源代码及运行结果
 定义函数:(源代码保存在curvefun.m中)
function f = curvefun(x, tdata)
x0 = 3.0;
t0 = tdata(1);
f = x(1) ./ (1 + (x(1) ./ x0 - 1) * exp(-x(2) .* (tdata - t0)));
 程序源代码:(源代码保存在dengchang.m中)
tdata = [1908 1933 1953 1964 1982 1990 1995 2000];
xdata = [3.0 4.7 6.0 7.2 10.3 11.3 12.0 13.0];
xs = [13, 0.5];
x0 = xdata(1);
t0 = tdata(1);
x = lsqcurvefit('curvefun', xs, tdata, xdata);
for i = 2008 : 2027
result(i - 2007) = x(1) ./ (1 + (x(1) ./ x0 - 1) * exp(-x(2) .* (i - t0)));
end
time = 2008 : 2027;
[time' result']
 运行结果:
>> dengchang
Optimization terminated: relative function value
changing by less than OPTIONS.TolFun.
ans =
1.0e+003 *
2.0080 0.0148
2.0090 0.0150
2.0100 0.0152
2.0110 0.0154
2.0120 0.0157
2.0130 0.0159
2.0140 0.0161
2.0150 0.0164
2.0160 0.0166
2.0170 0.0169
2.0180 0.0171
2.0190 0.0174
2.0200 0.0176
2.0210 0.0179
2.0220 0.0181
2.0230 0.0184
2.0240 0.0187
2.0250 0.0190
2.0260 0.0192
2.0270 0.0195