logistic人口模型,matlab人口模型源代码
题目1949年—1994年我国人口数据资料如下:
年xi 49 54 59 64 69 74 79 84 89 94
人口数yi5. 46.06.7.08.19.19.810.311.311.8
建模分析我国人口增长规律,预报1999年我国人口数量(亿)。
1 .在坐标系上绘制观测数据散点图
2 .根据散点分布的几何特征提出模型
3 .利用数据估计模型的参数
4 .计算拟合效果。
第一步绘制散点图的matlab代码如下:
x=[49 54 59 64 69 74 79 84 89 94]; y=[5. 46.06.7.08.19.19.810.311.311.8 ]; a=polyfit(x,y,1 ); 获得结果:
根据散点图的分布情况可以提出两种模型。
模型1 :假设人口随时间线性增长
y=a*x b
模型2 :指数增长模型
y=a*exp(b*x ) ) )
如下所示。
lny=lna b*x
步骤2使用2-MATLAB绘制两个模型的匹配函数代码,如下所示:
x=[ 1949195419591964196919741979198419891994 ]; y=[5. 46.06.7.08.19.19.810.311.311.8 ]; x1=1949:10:1994; a=polyfit(x,y,1 ); %散布图y1=a(2) a (1) *x1; %型号1b=polyfit(x,log ) y ),1 ); y2=exp(b )2) * exp (b )1) *x1 ); 用于%模型2的exp将ln分为plot(x,y,' * ' ) holdonplot (x1,y1,'--r ' ) holdonplot (x1,y2,'-k ' ) legend )、'原曲线
拟合函数如下
型号y=0.146 * x - 1.93
型号2:y=2.33*exp(0.0179*x ) ) )
(此时的x带入年的后两位) ) ) ) ) )。
步骤3使用拟合函数预测1999年的人口数量,并计算拟合精度的预测结果。
模型1预测1999年的人口为12.524亿
1999年人口预计为13.708亿
拟合精度计算公式:
平方和SST(totalsumofsquares ) :I=1n ) sIyI )2) sum_{I=1}^{n}(s_I-y_I ) ) I=1n ) sIyI ) 2
代码如下。
x=[49 54 59 64 69 74 79 84 89 94]; s=0.146*x-1.93; 要获得%拟合函数,函数值y=[5.4(6.0 )6.7.0) 8.1 ) 9.8 ) 10.3 ) 11.8]; a=s-y; %减去两者得到的各函数值的误差b=a.'; %将其置换后计算误差的平方和c=a*b; 通过%拟合函数的精度计算的拟合精度为0.3531