0.56 0.57 0.56 0.54 0.65 0.59 0.47 0.49 0.46 0.46 0.55 0.52 0.46 0.47 0.47 0.46 0.55 0.51 0.42 0.43 0.43 0.42 0.49 0.47 0.39 0.4 0.42 0.41 0.49 0.46 0.36 0.38 0.38 0.36 0.46 0.41 0.34 0.35 0.35 0.34 0.42 0.39 0.34 0.36 0.34 0.34 0.4 0.37 0.35 0.36 0.35 0.32 0.41 0.36 0.34 0.37 0.34 0.35 0.41 0.38 0.3 0.32 0.27 0.27 0.33 0.3 0.33 0.35 0.31 0.3 0.37 0.33 0.32 0.32 0.3 0.29 0.35 0.32 0.31 0.32 0.27 0.29 0.33 0.32 0.3 0.32 0.28 0.29 0.34 0.33 0.27 0.28 0.24 0.25 0.28 0.29 0.28 0.28 0.25 0.26 0.3 0.3 0.23 0.24 0.21 0.22 0.25 0.26 0.21 0.2 0.18 0.19 0.22 0.24 0.21 0.21 0.19 0.2 0.23 0.25 0.16 0.17 0.15 0.17 0.17 0.2 0.16 0.17 0.14 0.17 0.17 0.2 0.13 0.15 0.12 0.15 0.15 0.18 0.11 0.12 0.1 0.12 0.12 0.15 0.1 0.12 0.1 0.13 0.12 0.16 0.08 0.1 0.08 0.1 0.1 0.13 0.07 0.09 0.07 0.09 0.08 0.11 0.06 0.08 0.05 0.08 0.07 0.1 0.05 0.07 0.05 0.07 0.05 0.08 0.04 0.06 0.03 0.06 0.04 0.07 0.03 0.04 0.02 0.05 0.03 0.05 0.02 0.03 0.02 0.04 0.02 0.04 0.02 0.03 0.01 0.03 0.02 0.03 0.01 0.02 0.01 0.02 0.01 0.03
0.03 0.07 0.03 0.07 0.03 0.08]/100; for y=2:50 %对时间(年)进行循环 for k=1:6 %对六类人口进行循环 for i=1:91 %对年龄进行循环
pnum(i,k)=s(y-1)*rat(k)*agerat(i,k); end %pnum
m=zeros(91,91); for i=1:91
m(1,i)=bir(i-1,y,k)*live(k)/1000000*nvb(k); end for i=1:91
m(i+1,i)=1-dea(i-1,k)/1000; end %m %agerat end
a=m*pnum; %每一类人各年龄的人口 sk=sum(a); for n=1:3 for v=1:91
agerat(v,n*2)=a(v,n*2)/(sk(2*n)+sk(2*n-1)); agerat(v,n*2-1)=a(v,n*2-1)/(sk(2*n)+sk(2*n-1)); end end
s(y)=sum(sum(a)); end s
婴儿存活率:
function y=live(k)
liverate=1000-[6.1160;6.3440;6.4000;10.9900;19.3100;23.9360];%婴儿存活率 y=liverate(k);
死亡率子函数:
function y=dea(r,k)%死亡函数
new=[6.1160;6.3440;6.4000;10.9900;19.3100;23.9360]; if r>90 r=90; end if r<=45
if k==1 y=0.8958;end if k==2 y=0.7194;end if k==3 y=1.0544;end if k==4 y=0.7062;end if k==5 y=1.6914;end if k==6 y=1.0360;end else
if k==1 y=0.0828*exp(0.1016*r);end if k==2 y=0.0014*exp(0.1487*r);end if k==3 y=0.0464*exp(0.09854*r);end if k==4 y=0.08033*exp(0.10422*r);end if k==5 y=0.02728*exp(0.097438*r);end if k==6 y=0.02333*exp(0.1020*r);end end
if r==0 y=new(k);end
出生率子函数:
function y=bir(r,t,k)%生育函数 if k==1 y=0;end
if k==2 y=115.0875*exp(-((r-25.76)/4.6358)^2); end if k==3 y=0; end
if k==4 y=(138.8+13.12/(t+4))*exp(-((r-24.71)/4.572)^2); end if k==5 y=0; end
if k==6 y=(156.5+28.43/(t+4))*exp(-((r-24.476)/5.19)^2); end if r>49 y=0;end if r<15 y=0;end