• 2024 MCM数学建模美赛2024年A题复盘,思路与经验分享:资源可用性与性别比例 | 七鳃鳗的性别比例变化对生态系统稳定性的影响(四)


    审题

    第三问要我们评估七鳃鳗的性别比例变化对生态系统稳定性的影响。

    这里我们就要去查一下生态系统稳定性的定义。

    通过查资料我们知道,生态系统稳定性包括生态系统的抵抗力和恢复力。

    OK,到这里问题就变成了,七鳃鳗的性别比例对生态系统的抵抗力和恢复力的影响。

    那怎么去评估,生态系统的抵抗力和恢复力就是接下来的问题。

    通过查资料我们发现,评估生态系统的抵抗力和恢复力是没有一个统一的方法的。这就需要我们具体问题具体分析,但是我们也可以别人是怎么去评估生态系统的抵抗力和恢复力的。

    这里评估台风对生态系统的抵抗力和恢复力的文章:

    它这里提出的方法就是计算台风出现前后,植被的面积的变化率作为评价生态系统抵抗力的指标。

    回复力同理,也是计算植被面积的分辨率作为评价生态系统的恢复力。

    抓住重点,就是种群数量前后的变化率,是评价生态系统稳定性的关键。

    借鉴上面的方法,我们提出了我们这道题的生态系统稳定性评价方法

    生态系统抵抗力

    这里我们假设,生态系统中原本生存了700条湖鳟,生态系统稳定。这时生态系统中有100条七鳃鳗入侵,对生态系统造成了破坏,湖鳟数量开始下降。好了,这时我们就看七鳃鳗入侵一定时间后,比如700天,湖鳟鱼的数量下降了多少。通过计算入侵前后的湖鳟数量变化率来评价生态系统的抵抗力。

    注意,我们这里可以让100条七鳃鳗以不同性别比例入侵这个生态系统,这样湖鳟鱼的最后的变化率也是不同的。以此我们来评价不同性别比例对生态系统抵抗力的影响。

    这里计算湖鳟鱼的种群数量用到第一问的公式,变化率用如下公式:

    变化率 = (初始种群数 - 一段时间后的种群数)/ 初始种群数

    生态系统恢复力

    恢复力同理,700天后让100条七鳃鳗移除生态系统,这时湖鳟种群数量已经低于初始值。我们再计算多少天的时间,湖鳟鱼的数量可以恢复到初始值,以此评价生态系统的恢复力。

    同理,我们也是让100条七鳃鳗以不同性别比例入侵这个生态系统,让后再以此,这时生态系统的恢复力也是不同的。以此我们来评价不同性别比例对生态系统恢复力的影响。

    公式如上, 恢复率 = (初始种群数 - 一段时间后的种群数)/ 恢复天数

    计算结果

    性别比例对抵抗力的影响

    湖鳟鱼为700,七鳃鳗为100,在性别比例不同下,湖鳟鱼的变化曲线。

    去掉七鳃鳗后湖鳟鱼的数量

    计算抵抗力,并作性别比例和变化率的关系图。

    可以看到,雄性占比为0.5时,湖鳟鱼的变化率更大,意味着对生态系统的破坏更大,导致生态系统抵抗力下降。随着雄鱼占比增加,湖鳟鱼的变化率减小,意味着对生态系统破坏小。

    性别比例对恢复力的影响

    700天后,将七鳃鳗去除,湖鳟鱼在去除后的数量进行增长,看多少天能恢复到初始值。

    同样,做性别比例和恢复率的关系图

    同样,可以看到雄性占比在0.5时,恢复速度较快,意味着恢复力较强。随着雄性占比减少,恢复速度降低,恢复力减弱。

    代码

    1. % 参数定义
    2. r = 0.03; % 增长率
    3. K = 700; % 环境承载能力
    4. N0 = K; % 初始种群数量
    5. d = 0.01;%死亡率
    6. alpha = 0.5;
    7. alpha_lis = [alpha];
    8. N_l = 100;%七鳃鳗数量
    9. a = 0.023*alpha*N_l + 0.029 * (1-alpha) * N_l;%捕食量
    10. w = 4;
    11. W = a/w;
    12. % 时间跨度
    13. tspan = [0, 700]; % 从0到100个时间单位
    14. % 定义微分方程
    15. %odefun = @(t, N) r*N(1) * (1 - N(1)/K) - a - d*N;
    16. for i=1:6
    17. % 定义微分方程
    18. odefun = @(t, N) r*N(1) * (1 - N(1)/K) - a - d*N;
    19. % 使用ode45求解微分方程
    20. [t, N(:,i)] = ode45(odefun, tspan, N0);
    21. alpha = alpha + 0.07;
    22. alpha_lis = [alpha_lis,alpha];
    23. a = 0.023*alpha*N_l + 0.029 * (1-alpha) * N_l;
    24. W = a/w;
    25. end
    26. % 绘制结果
    27. figure
    28. plot(t, N);
    29. xlabel('Time');
    30. ylabel('Population N');
    31. title('Population Dynamics');
    32. %text('K=1000','FontSize','right');
    33. % 在曲线末尾的x值处添加文本
    34. text(t(end), N(end,1), ['N= ', num2str(N(end,1)),' ','K=',num2str(K)], 'HorizontalAlignment', 'right');
    35. yline(0,'r')
    36. % 设置图例位置
    37. legend(['alpha = ',num2str(alpha_lis(1))], ...
    38. ['alpha = ',num2str(alpha_lis(2))], ...
    39. ['alpha = ',num2str(alpha_lis(3))], ...
    40. ['alpha = ',num2str(alpha_lis(4))], ...
    41. ['alpha = ',num2str(alpha_lis(5))], ...
    42. ['alpha = ',num2str(alpha_lis(6))]);
    43. %grid on;
    44. figure
    45. plot(alpha_lis(:,1:6),(700-N(end,:))/700,'r-*');
    46. title('The rate of loss of the sex ratio to the ecosystem')
    47. ylabel('loss rate')
    48. xlabel('sex ratio')
    49. n = N(end,:);
    50. N = [];
    51. alpha = 0.5;
    52. alpha_lis = [];
    53. figure
    54. for i =1:6
    55. % 定义微分方程
    56. odefun = @(t, N) r*N(1) * (1 - N(1)/K) ;
    57. % 使用ode45求解微分方程
    58. [t, N] = ode45(odefun, tspan, n(i));
    59. subplot(2,3,i);
    60. plot(t, N, 'g', 'LineWidth', 2,'Color','r'); % 种群总数N(t)
    61. xlabel('Time');
    62. ylabel('Population (N)');
    63. title(['alpha=',num2str(alpha)]);
    64. yline(200,'b','LineWidth',2)
    65. alpha = alpha + 0.07;
    66. alpha_lis = [alpha_lis,alpha];
    67. end

     

  • 相关阅读:
    【git】取消git代理
    springboot利用redis过期事件处理过期订单
    [PYTHON-CSP-前缀和]20210402-邻域均值
    分布式ID性能评测:CosId VS 美团 Leaf
    与堆和堆排序相关的问题
    spring boot 2.X中如何加密配置中的敏感信息
    快速提高编码生产力——中国用户如何使用Jetbrains内置的AI助手
    无缝数据传输:StreamSet安装部署的最佳实践
    1 论文笔记:Efficient Trajectory Similarity Computation with ContrastiveLearning
    前沿重器[36] | ACL23-基于检索的大语言模型-报告阅读
  • 原文地址:https://blog.csdn.net/2302_80902795/article/details/136623711