莱斯利Leslie种群模型 python sympy

该博客介绍了如何用Python进行莱斯利Leslie种群模型的计算,涉及numpy和sympy库。通过创建矩阵并计算特征值、特征向量,实现了种群数量在不同阶段的变化预测,并展示了如何进行相似对角化和符号计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

莱斯利Leslie种群模型 python

sympy

# 莱斯利Leslie种群模型
import numpy as np
import sympy as sp

X0 = np.array([500, 1000, 500])
L = np.array([[0, 4, 3], [0.5, 0, 0], [0, 0.25, 0]])
X1 = L @ X0
X2 = L @ X1
X3 = L @ X2
Ls = sp.Matrix([[0, 4, 3], [sp.Rational(1, 2), 0, 0], [0, sp.Rational(1, 4), 0]])  # 符号矩阵
lamda = sp.var('lamda')
p = Ls.charpoly(lamda)  # 计算特征多项式  #re-A的行列式
# w11 = Ls.eigenvals()
# w22 = Ls.eigenvects()
w1 = sp.roots(p)  # 特征值
w2 = Ls.eigenvals()  # 直接计算特征值
v = Ls.eigenvects()
# print("特征值", w2)

# print(w1)
# print('特征向量', v)
P, D = Ls.diagonalize()  # 相似对角化
Pinv = P.inv()  # 求逆矩阵
Pinv = sp.simplify(Pinv)
cc = Pinv @ X0
# print(P)
# print(cc[0])
# print(w1)
# print(v)
k = sp.var('k', positive=True, integer=True)
xk = P @ (D ** k) @ Pinv @ sp.Matrix(X0)
# print(xk)
# print(xk[0])
s = sp.simplify(xk[0])
print(s.subs(k, 2).n())  # # 计算第k个时期的种群数量

本文建立了我国人口增长的预测模型,对各年份全国人口总量增长的中短期和长期趋势作出了预测,并对人口老龄化、人口抚养比等一系列评价指标进行了预测。最后提出了有关人口控制与管理的措施。模型Ⅰ:建立了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%;人口抚养呈现增加的趋势。 再次,讨论我国人口的控制,预测出将来我国育龄妇女人数与生育旺盛期育龄妇女人数,得到育龄妇女人数在短期内将达到高峰,随后又下降的趋势的结论。 最后,分别对模型Ⅰ与模型Ⅱ进行残差分析、优缺点评价与推广。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值