leslie模型的求解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用2010年数据预测未来5年,在matlab 中计算得到
由此可见,leslie 预测的误差相对比较小,准确度高。 附录 代码
g=[]; %输入标准化生育率预测值g k=[]; %输入出生人口性别比预测值 n=[]; %输入2010年年龄别女性人口数 m=[]; %输入2010年年龄别男性人口数 m0=m'; n0=n';
b=g*B; %计算年龄别生育率 d1=[]; %输入女性年龄别死亡率 d2=[]; %输入男性年龄别死亡率 s1=(1000-d1)./1000;
s2=(1000-d2)./1000;
20112011.520122012.520132013.520142014.520159
年份
人数
M1=eye(90); %90维单位矩阵
for i=1:90
M1(i,:)=M1(i,:)*s1(1,i);
end
h=zeros(91,1); %生成零矩阵
N1=[b;M1];
L1=[N1,h];
i=1;
X(:,i)=L1*n0;
X(1,i)=X(1,i)*100/(100+k(i));
for i=2:51
X(:,i)=L1*X(:,i-1);
X(1,i)=X(1,i)*100/(100+k(i));
end
%计算未来50年女性预测人口数,记为X M2=eye(90) %90维单位矩阵
for i=1:90
M2(i,:)=M2(i,:)*s2(1,i);
end
h0=zeros(1,90); %生成零矩阵
N2=[h0;M2];
L1=[N2,h];
i=1;
Y(:,i)=L2*m0;
X(1,i)=X(1,i)*k(i)/100;
for i=2:6
Y(:,i)=L2*Y(:,i-1);
Y(1,i)=X(1,i)*k(i)/100;
end
%计算未来50年男性预测人口数,记为Y Z=X+Y; %总人数
T=sum(Z);
g1=2011:2061;
plot(g1,T,'r')