


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
标记重捕法的模拟北京大学附属中学肖然1.研究题目标记重捕法,在被调查种群的生存环境中,捕获一部分个体,将这些个体进行标志后再放回原来的环境,经过一段时间后进行重捕,根据重捕中标志个体占总捕获数的比例来估计该种群的数量。理论计算公式为:N=M×n/m。其中,N-估计种群数量,M-标记数量,n-重捕数量,m-重捕个体中被标记个体的数量。本文利用python编程工具,对标记重捕法进行了模拟仿真,验证了其正确性并进行了简单的误差分析。2.模拟分析为了科学地对标记重捕法进行模拟,我们将标记重捕的整个过程分解为以下几个过程:随机产生所有种群个体的位置;合理地捕获一些个体,并对捕获的个体进行标记;重新捕获一些个体;统计计算,根据标记重捕原理N=M×n/m估算种群总数量,并与准确值进行对比。3.研究过程3.1随机产生个体位置我们假设种群个体均匀分布在某个正方形的区域内,不妨认为此正方形的边长=2(否则可以根据真实值进行缩放)。令(x,y)表示个体位置,利用numpy库中的random.uniform(L,R)方法,将x,y设置为在[-1,1]范围内均匀分布的随机数:importnumpyx=numpy.random.uniform(-1,1)#x,y设置为[-1,+1]范围内的随机数y=numpy.random.uniform(-1,1)利用一个for循环,不断地产生总共N只个体,并将它们的(x,y)坐标记录在两个列表中。并利用matplotlib库能够将随机产生的(x,y)点画在二维坐标系中:importmatplotlib.pyplotaspltimportnumpyN=100xList=[]#定义2个空列表yList=[]foriinrange(N):x=numpy.random.uniform(-1,1)y=numpy.random.uniform(-1,1)xList.append(x)#将刚产生的x加入xListyList.append(y)#将刚产生的y加入yListplt.plot(xList,yList,'ro')plt.title('N=100')图1.图1.随机产生的N只个体坐标3.2捕获一些个体并进行标记做一个简单抽象,将“捕获”模拟为以一个特定概率(例如P=0.2)被选中,然后分两组列表{xList1,yList1}/{xList2,yList2},分别存放被/没被捕获的个体坐标。模拟以特定概率发生某事,可以用uniform函数产生1个[0,1]内随机数,然后判断其是否<P=0.2即可:foriinrange(N):x=numpy.random.uniform(-1,1)y=numpy.random.uniform(-1,1)isCap=numpy.random.uniform(0,1)<=0.2ifisCap:xList1.append(x)yList1.append(y)else:xList2.append(x)yList2.append(y)plt.plot(xList1,yList1,'ro')#标记的为红色plt.plot(xList2,yList2,'bo')#未标记的为蓝色图2.图2.捕获一些个体进行标记plt.show()此时可以根据存放被捕获个体坐标的xList的大小计算出标记数量M=len(xList1)。3.3重新捕获一些个体“重捕”也可以模拟为以一个特定概率(例如P=0.2)被选中,这时种群个体会分为3类:重捕中捕获的个体中被/没被标记过的,没在重捕中捕获的个体,我们分别用3组列表{xListA,yListA}/{xListB,yListB}/{xListC,yListC}存放以上3类个体的坐标。重捕中捕获的个体数量n=len(xListA)+len(xListB),其中被标记过的个体数量m=len(xListA)。图图3.重新捕获一些个体,统计计算3.4统计计算设置真实种群数量N0=100,执行python代码,模拟结果为:M=20,n=29,m=7;根据理论计算公式N=M×n/m,计算出种群数量的估计值N=82.86,相比较真实值误差较大;设置N0=10000,计算出种群数量的估计值N=9993.46,能够发现相对误差有所减小。尝试不同的N0值,得到以下结果:真实种群数量N010010001000050000100000种群数量估计值N82.86918.429993.4649820.29100084.04相对误差17.14%8.16%0.07%0.37%0.08%图5.多次模拟取平均值图图5.多次模拟取平均值图4.相对误差跟随N0的变化趋势通过上述模拟分析,能够发现选取N0=10000时,相对误差已经<0.1%,接着我们使用多次模拟取平均值的方法,进一步减小误差。importmatplotlib.pyplotaspltimportnumpyN=10000NMC=100#进行100次模拟,画出平均值的变化趋势ans=[]ansmean=[]forkinrange(NMC):M=0m=0n=0foriinrange(N):ifnumpy.random.uniform(0,1)<0.2:M+=1foriinrange(M):ifnumpy.random.uniform(0,1)<0.3:m+=1n+=1foriinrange(N-M):ifnumpy.random.uniform(0,1)<0.3:n+=1print(k,M,n,m,M*n/m)ans.append(M*n/m)ansmean.append(sum(ans)/(k+1))plt.plot(ansmean)plt.show()4.研究结论通过对标记重捕法在python中的模拟,验证了其正确性,并发现在种群数量较大时才会有可以接受的相对误差。在这个过程中,利用了1)numpy中的random.uniform函数产生均匀分布的随机数;2)列表List存放种群个体的坐标;3)matplotlib中的plot函数进行数据可视化。5.参考文献[
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 年递增工资合同范本
- 腔内放疗护理
- 2025年石油钻井工职业技能竞赛理论考试指导题库-上(单选题)
- 房建咨询合同范本
- 家庭火锅采购合同范本
- 2025至2030年中国摩托车随车工具数据监测研究报告
- 2025至2030年中国按扣式咬口机数据监测研究报告
- 空调用人合同范本
- 2025至2030年中国多彩花纹漆数据监测研究报告
- 2025至2030年中国圣檀挂件数据监测研究报告
- 家校共育之道
- DeepSeek入门宝典培训课件
- 西安2025年陕西西安音乐学院专职辅导员招聘2人笔试历年参考题库附带答案详解
- 《作文中间技巧》课件
- 广东省2025年中考物理仿真模拟卷(深圳)附答案
- 2025届八省联考 新高考适应性联考英语试题(原卷版)
- 新苏教版一年级下册数学第1单元第3课时《8、7加几》作业
- 2024年山东电力高等专科学校高职单招职业技能测验历年参考题库(频考版)含答案解析
- 人教鄂教版六年级下册科学全册知识点
- (正式版)HGT 22820-2024 化工安全仪表系统工程设计规范
- 双胎妊娠 PPT课件
评论
0/150
提交评论