2024 MCM数学建模美赛2024年A题复盘,思路与经验分享:资源可用性与性别比例 | 性别比例变化是否对生态系统中的其他生物如寄生虫提供优势(五)

审题

第四问让我们探究性别比例变化是否对生态系统中的其他生物如寄生虫提供优势。这里我们可以把问题简化一下,只探究性别比例会不会对寄生虫提供优势。因为考虑太多生物,会使模型更复杂,我这个水平处理不了这么复杂的问题,是我太菜了。

既然已经把问题简化了,接下来就是研究寄生虫有什么特性,七鳃鳗和寄生虫是什么关系,进一步研究出性别比例能否为寄生虫提供优势。

这道题里我们认为寄生虫是寄生在七鳃鳗上的,七鳃鳗是寄生虫的宿主。

然后我们通过查论文发现,寄生虫比较喜欢寄生在雌性个体上,而且寄生虫对宿主的致死率不能太高,否则寄生虫自身的种群的数量也会降低。寄生虫的数量与宿主的数量是关联的,一个宿主身上不能寄生无限多的寄生虫。

搞明白了寄生虫和宿主的关系,接下来就是建立寄生虫的种群增长模型了,套路和之前的问题都一样。只是这里因为寄生虫的数量和宿主的数量是关联的,所以我们要联立七鳃鳗和寄生虫的之前增长模型。

建模

七鳃鳗种群增长模型,这一问的模型和之前的七鳃鳗模型有一点区别,因为考虑了七鳃鳗作为宿主的情况。

这里x1是七鳃鳗的种群数量,x2是寄生虫的种群数量,r1 是七鳃鳗的自然增长率,K是七鳃鳗的最大种群数量,alpha是雄性占比,d2是寄生虫的感染致死率。因为寄生虫会导致宿主死亡,并且我们要考虑性别比例对寄生虫数量的影响,这里有个 - alpha * d2 * x2。

寄生虫的种群增长模型

这里x1是七鳃鳗的种群数量,x2是寄生虫的种群数量。r2是寄生虫的自然增长率,d1是寄生虫的自然死亡率。k是一个宿主上能寄生多少寄生虫的数量。因为一个宿主身上不能寄生无限多的寄生虫,所以寄生虫的数量受到k * x1的约束。

联立方程

这里设初始x1为100,x2为10。带入方程进行计算。

建模结果

从结果可以看到,确实当雄性占比越少,雌性占比越多时,寄生虫的数量越多,符合我们之前找的资料。说明性别比例可以为寄生虫提供优势。当然这张图还有很多可以分析的点,我就是不写了,主要是我忘得也差不多了。

灵敏度分析

在这个模型中的参数都是我们自己定的。所以我们还要探究我们设定的参数是否对模型有影响,影响大不大。这时就需要灵敏度分析。也就是探究在参数不同时,结果有说明变化。

我们探究了r1,r2,d1,d2不同时,模型计算的结果如下。

可以看到r1对结果的影响比较小,其他参数对结果的影响比较大。这里也有很多细节的点可以分析,我懒得写了。

代码

fun.m

function dx=fun(t,x,r1,r2,n1,n2,s1,s2)r1=0.02;%增长率r2=0.03;%感染率n1=1000;%鳗鱼种群最大值d1 = 0.01;%死亡率d2 = 0.1;%感染致死率alpha = 0.50;%性别比例x1 = r1 * x(1) *(1-x(1)/n1 - alpha * d2 * x(2)) ;x2 = r2 * x(2) *(1-x(2)/(3 * x(1))) - d1 * x(2);dx=[x1;x2];
end

run.m

h=0.1;%所取时间点间隔
ts=[0:h:1000];%时间区间
x0=[100,10];%初始条件
opt=odeset('reltol',1e-6,'abstol',1e-9);%相对误差1e-6,绝对误差1e-9
[t,x]=ode45(@fun,ts,x0,opt);%使用5级4阶龙格—库塔公式计算
% subplot(2,1,1);
plot(t,x(:,1),'r',t,x(:,2),'b','LineWidth',2),grid;
legend('x1','x2');
xlabel('time');
ylabel('Population (N)')
title('r = 0.03')
text(t(end), x(end,1)+5, ['N1= ', num2str(x(end,1))], 'HorizontalAlignment', 'right');
text(t(end), x(end,2)+5, ['N2= ', num2str(x(end,2))], 'HorizontalAlignment', 'right');% subplot(2,1,2);
% plot(x(:,1),x(:,2),'LineWidth',2),grid %作相轨线

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/573304.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python爬虫入门:从网站爬取文章内容并保存到本地文件

目录 前言 准备工作 简单爬虫实现 注意事项 爬虫伦理与合法性 总结 前言 在互联网时代,数据是宝贵的资源。然而,当需要从海量网站中抓取数据时,手动操作显然不切实际。这时,爬虫技术应运而生,成为我们获取数据的…

自然语言处理3(NLP)—— 机器学习

1. 自然语言处理在机器学习领域的主要任务 自然语言处理(NLP)在机器学习领域中扮演着至关重要的角色,旨在使计算机能够理解、解释和生成人类语言。以下是NLP在机器学习领域中的主要任务及其分类方法: 1.1 按照功能类型分类 1.1.…

ArrayList和LinkedList有什么区别?

ArrayList和LinkedList的区别 ArrayList 和 LinkedList 是 Java 中常用的两种集合类,它们都实现了 List 接口,但在内部实现和性能上有一些区别。 内部实现: ArrayList 使用数组实现,它的元素在内存中是连续存储的,每…

6_相机坐标系_相机4个坐标系详述

相机系列文章是用来记录使用opencv3来完成单目相机和6轴机械臂手眼标定。本人吃饭的主职是linux下6轴机械臂相关应用开发。但对于机械臂运动学、相机应用等都非常感兴趣,所以对一些线性代数基础薄弱又想深入了解机械臂内部运算的同志比较有体会。由于是探索性学习&a…

Trello国内替代工具有哪些?分享5款

盘点5款类似Trello的本地部署项目管理工具:1.PingCode;2.Worktile;3.Teambition;4.redmine;5.TAIga.io。 Trello是一款杰出的协作与工作管理应用,专为追踪团队项目、凸显当前活动任务、分配责任人&#xff…

imx6ull使用【QT+V4l2】驱动USB摄像头

仓库:https://gitee.com/wangyoujie11/imx6ull-camera“”记得给的star哦“” “”正文开始" 一、配置内核,使其支持UVC(USB Video Class) 在Linux系统中,UVC驱动的支持在Linux Kernel 2.4之后被增加到内核中。 找到自己的linux源码文件…

【LeetCode热题100】105. 从前序与中序遍历序列构造二叉树(二叉树)

一.题目要求 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。 二.题目难度 中等 三.输入样例 示例 1: 输入: preorder [3,9,20,15,7], inorder…

政安晨:【Keras机器学习实践要点】(六)—— 使用内置方法进行训练和评估

政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: TensorFlow与Keras实战演绎机器学习 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正! 本文涵盖使用内置 API 进行训练和验证&#…

【leetcode】双“指针”

标题:【leetcode】双指针 水墨不写bug 我认为 讲清楚为什么要用双指针 比讲怎么用双指针更重要! (一)快乐数 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为: 对于一个正整数,每一次将该数…

JAVA面试大全之JVM和调优篇

目录 1、类加载机制 1.1、类加载的生命周期? 1.2、类加载器的层次? 1.3、Class.forName()和ClassLoader.loadClass()区别? 1.4、JVM有哪些类加载机制? 2、内存结构 2.1、说说JVM内存整体的结构?线程私有还是共享的? 2.2…

布隆过滤器详讲

本文旨在讲解布隆过滤器的原理以及实现方式,希望通过本文能使读者对布隆过滤器有一定的认识! 一、布隆过滤器的引入 在讲解布隆过滤器之前,我们还是先提及一下前面讲的位图行,位图可以处理大量的数据,广泛用于查找等…

【检索稳定|火爆征稿中】2024年企业管理与数字化经济国际学术会议(ICBMDE 2024)

【检索稳定|火爆征稿中】2024年企业管理与数字化经济国际学术会议(ICBMDE 2024) 2024 International Conference on Business Management and Digital Economy(ICBMDE 2024) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~…