莱斯利种群算法 python应用

莱斯利种群算法

算法原理

依种群个体的生理特征,将其最大寿命年龄等距分成m个年龄组,然后讨论不同时间种群按年龄的分布,故时间也离散化为

t = 0 , 1 , 2 , . . . t=0,1,2,... t=0,1,2,...其间隔与年龄组的间隔时间相同. t = 0 t=0 t=0对应于初始时刻.设开始时 t = 0 t=0 t=0第i个年龄组内的个体数为

n i ( 0 ) , i = 1 , 2 , . . . , m n_i(0),i=1,2,...,m ni(0),i=1,2,...,m则向量 N   ( 0 ) = [ n 1 ( 0 ) , n 2 ( 0 ) , . . . n m ] N~(0)=[n_1(0),n_2(0),...n_m] N (0)=[n1(0),n2(0),...nm]称为初始年龄结构向量.第i年龄组的生殖率为 f i ( > 0 ) i = 1 , 2 , . . . , m f_i(>0)i=1,2,...,m fi(>0)i=1,2,...,m;生存率为 S i ( > 0 ) i = 1 , 2 , . . . , m − 1 S_i(>0)i=1,2,...,m-1 Si(>0)i=1,2,...,m1.则相临两个时段间,各年龄组个体数 n i n_i ni有如下的迭代关系:

在这里插入图片描述

注1 f i f_i fi中已扣除了在时段t内出生,但活不到 t + 1 t+1 t+1时段的新生个体.

注2 通常在[两性生殖]在这里插入图片描述

例题

有一块一定面积的草场放牧羊群, 管理者要 估计草场能放牧多少羊, 每年保留多少母羊羔,夏季要 储藏多少草供冬季之用。
为解决这些问题调查了如下的背景资料:
(1)本地环境下这一品种草的日生长率如表 3.5 所列。
表 3.5 各季节草的生长率

季 节
日生长率 / ( g / m 2 ) /\left(\mathrm{g} / \mathrm{m}^2\right) /(g/m2)0374

(2) 羊的繁殖率。通常母羊每年产 1 ∼ 3 1 \sim 3 13 只羊羔, 5 岁后被卖掉。为保持羊群的规模,可以买进羊羔, 或者保留一定数量的母羊。每只母羊的平均繁殖率如表 3.6 所列
表 3.6 母羊的平均繁殖率

年龄0∼11∼22∼33∼44∼5
产羊羔数 只01.82.42.01.8

(3)羊的存活率。不同年龄的母羊的自然存活率(指存活一年)如表3.7所列。

年龄1~22~33~4
存活率0.980.950.80

(4) 草的需求量。母羊和羊羔得在各个季节每天需要草的数量(kg)

季 节
母羊2.102.401.151.35
羊羔01.001.650

注:只关心羊的数量,而不管他们的重量,一般在春季产羊高,秋季将全部公羊和一部分母羊卖掉,保持羊群数量

面积为n.

解 用 x = [ x 1 , x 2 , x 3 , x 4 , x 5 ] T \boldsymbol{x}=\left[x_1, x_2, x_3, x_4, x_5\right]^{\mathrm{T}} x=[x1,x2,x3,x4,x5]T 表示母羊按年龄 0 ∼ 1 , 1 ∼ 2 , 2 ∼ 3 , 3 ∼ 4 , 4 ∼ 5 0 \sim 1,1 \sim 2,2 \sim 3,3 \sim 4,4 \sim 5 01,12,23,34,45 的概率分布 向量, 这里 x i ⩾ 0 , ∑ i = 1 5 x i = 1 x_i \geqslant 0, \sum_{i=1}^5 x_i=1 xi0,i=15xi=1, 由母羊的繁殖率和存活率可得种群数量的转移矩阵为
P = [ 0 1.8 2.4 2.0 1.8 q 0.98 0.95 0.80 ] , \boldsymbol{P}=\left[\begin{array}{ccccc} 0 & 1.8 & 2.4 & 2.0 & 1.8 \\ q & & & & \\ & 0.98 & & & \\ & & 0.95 & & \\ & & & 0.80 \end{array}\right], P= 0q1.80.982.40.952.00.801.8 ,
其中空白处为 0 , q 0, q 0,q 0 ∼ 1 0 \sim 1 01 岁 (即羊羔) 的存活率, 可以控制。为保持羊群数量 N N N 不变, 需 满足 x = P x x=P x x=Px, 由此可得

clc,clear,prob=eqnproblem; 
x=optimvar('x',5,'LowerBound',0); % chuan
q=optimvar('q','LowerBound',0);
p=diag([q,0.98,0.95,0.80],-1);
p(1,[2:end])=[1.8,2.4,2.0,1.8];
x0.q=rand;x0.x=rand(5,1);%初值
prob.Equations=[x==p*x;sum(x)==1];
[so1,fval,flag]=solve(prob,x0)
sq=so1.q,sx=so1.x %显示非线性方程组的解
from sympy import *

x = Symbol('x')
y = Symbol('y')
z = Symbol('z')
R = Symbol('R')
G = Symbol('G')
q = Symbol('q')
eq = [0, 1.8, 2.4, 2.0, 1.8], [q, 0, 0, 0, 0], [0, 0.98, 0, 0,0], [0, 0, 0.95, 0, 0], [0, 0, 0, 0.98, 0]
X = [x, y, z, R, G]
Zong = 0
for i in X:
    Zong += i
f1 = Zong - 1
k = []
for i in eq:
    a = 0
    for j in range(len(X)):
        a += i[j] * X[j]
    k.append(a)
print(k)
F = []
for i in range(len(k)):
    F.append(k[i]-X[i])
F.append(f1)

print(solve(F, [x, y, z, R, G, q]))
'''[(0.666943213668971, 0.0871105635147510, 0.0853683522444559, 0.0810999346322331, 0.0794779359395885, 0.130611664875545)]'''

q = 0.1360 , x = [ 0.6694 , 0.0871 , 0.0854 , 0.0811 , 0.07948 ] T , q=0.1360, \quad x=[0.6694,0.0871,0.0854,0.0811,0.07948]^{\mathrm{T}}, q=0.1360,x=[0.6694,0.0871,0.0854,0.0811,0.07948]T,

可知当 N N N 不变时每年产羊羔数量为 0.6694 N 0.6694 N 0.6694N, 秋冬季存活的母羊数量为 0.3306 N 0.3306 N 0.3306N
设草场面积为 S (   m 2 ) S\left(\mathrm{~m}^2\right) S( m2), 根据各个季节草的需求量 ( k g ) (\mathrm{kg}) (kg) 和生长率, 应有
冬季草的需求量 2.1 × 0.3306 N = 0.7056 N 2.1 \times 0.3306 N=0.7056 N 2.1×0.3306N=0.7056N,
春季草的需求量 0.6694 N + 2.4 × 0.3306 N = 1.4758 N < 0.003 S 0.6694 N+2.4 \times 0.3306 N=1.4758 N<0.003 S 0.6694N+2.4×0.3306N=1.4758N<0.003S,
夏季草的需求量 1.65 × 0.6694 N + 1.15 × 0.3306 N = 1.4847 N < 0.007 S 1.65 \times 0.6694 N+1.15 \times 0.3306 N=1.4847 N<0.007 S 1.65×0.6694N+1.15×0.3306N=1.4847N<0.007S,
秋季草的需求量 1.35 × 0.3306 N = 0.4463 N < 0.004 S 1.35 \times 0.3306 N=0.4463 N<0.004 S 1.35×0.3306N=0.4463N<0.004S.
可以算出, 只要春季满足 N / S < 0.002 N / S<0.002 N/S<0.002 (每平方米草地羊的数量), 夏季和秋季都不成问 题。若夏季储存草 y   k g / m 2 y \mathrm{~kg} / \mathrm{m}^2 y kg/m2, 保存到冬季用, 则需有 1.4847 N / S < 0.007 − y 1.4847 N / S<0.007-y 1.4847N/S<0.007y, 其中 N / S N / S N/S 以春 季需满足的数值代人, 可得 y < 0.004   k g / m 2 y<0.004 \mathrm{~kg} / \mathrm{m}^2 y<0.004 kg/m2, 而冬季的粮食需求量是 0.004 S k g 0.004 S kg 0.004Skg, 故夏季的贮藏足够冬季之用。

N = 0.004 S / 0.7056 = 0.0057 S N=0.004 S / 0.7056 =0.0057S N=0.004S/0.7056=0.0057S

, 管理者要 估计草场能放牧 0.0057 S 0.0057S 0.0057S只羊, 每年保留 0.3306 × 0.0057 S = 0.0019 S 0.3306 \times 0.0057 S = 0.0019S 0.3306×0.0057S=0.0019S只母羊羔,夏季要 储藏 0.004 S k g 0.004 Skg 0.004Skg草供冬季之用。

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
本文建立了我国人口增长的预测模型,对各年份全国人口总量增长的中短期和长期趋势作出了预测,并对人口老龄化、人口抚养比等一系列评价指标进行了预测。最后提出了有关人口控制与管理的措施。模型Ⅰ:建立了Logistic人口阻滞增长模型,利用附件2中数据,结合网上查找补充的数据,分别根据从1954年、1963年、1980年到2005年三组总人口数据建立模型,进行预测,把预测结果与附件1《国家人口发展战略研究报告》中提供的预测值进行分析比较。得出运用1980年到2005年的总人口数建立模型预测效果好,拟合的曲线的可决系数为0.9987。运用1980年到2005年总人口数据预测得到2010年、2020年、2033年我国的总人口数分别为13.55357亿、14.18440亿、14.70172亿。 模型Ⅱ:考虑到人口年龄结构对人口增长的影响,建立了按年龄分布的女性模型Leslie模型): 以附件2中提供的2001年的有关数据,构造Leslie矩阵,建立相应 Leslie模型;然后,根据中外专家给出的人口更替率1.8,构造Leslie矩阵,建立相应的 Leslie模型。 首先,分别预测2002年到2050年我国总人口数、劳动年龄人口数、老年人口数(见附录8),然后再用预测求得的数据分别对全国总人口数、劳动年龄人口数的发展情况进行分析,得出:我国总人口在2010年达到14.2609亿人,在2020年达到14.9513亿人,在2023年达到峰值14.985亿人;预测我国在短期内劳动力不缺,但须加强劳动力结构方面的调整。 其次,对人口老龄化问题、人口抚养比进行分析。得到我国老龄化在加速,预计本世纪40年代中后期形成老龄人口高峰平台,60岁以上老年人口达4.45亿人,比重达33.277%;65岁以上老年人口达3.51亿人,比重达25.53%;人口抚养呈现增加的趋势。 再次,讨论我国人口的控制,预测出将来我国育龄妇女人数与生育旺盛期育龄妇女人数,得到育龄妇女人数在短期内将达到高峰,随后又下降的趋势的结论。 最后,分别对模型Ⅰ与模型Ⅱ进行残差分析、优缺点评价与推广。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值