24美赛A题食物链捕食者<-七鳃鳗<-食物,有性别调节和无性别调节比较(详细解读,有参考文献(真有用)和代码)

# 注:能力不是很多,网上东西确实看不懂,尽自己最大的理解来写了,真是论文翻烂了都,唯一用上的就草-羊-狼这个简单模型,不多说了,这个点还在敲,只能先把自己理解的敲完了,搞一个模型出来,后面啥生态系统分析就GG

1

2

3

4

5结果

代码


%食物链是 捕食者<-七鳃鳗<-食物
%食物资源是 食物数量/其最大环境容量
%R是雄性的概率
%雄性占比和食物资源的关系
% R(x) x 食物资源 R雄性占比
R = @(x) (55.09 + 24.72 / (1 + exp(x*10 - 6.638)))/100 % x = 食物数量/其环境容纳量(最大量)


%雄性占比和七鳃鳗种群增长率的关系
%性别比例是雄个数/雌个数

r0 = 0.5;
% 出生人口性别比例 放在下面欧拉差分方程求解里在
% p = R(x)/(1-R(x));
% r = r0/p;
% r = 0.5*(1-R(x))/(R(x));
%最后得到r与x的关系
%食物资源和种群增长速率的模型
%注:食物资源影响雄性比例,雄性比例影响性别比例,性别比例影响种群增长速率


clc
clear
close all
% 差分动态模型
dt = 0.1;    % 时间步长
T = 10;      % 总模拟时间
n = T / dt;  % 总步数,迭代100代
% sigma1 = 0.6;sigma2 = 5;sigma3 = 0.5;sigma4 = 2;
% r1 = 1;r2 = 0.5;r3 = 0.6;
% N1 = 1000;N2 = 300;N3 = 40;
% f = [r1*x(1)*(1-x(1)/N1-sigma1*x(2)/N2);
%      r2*x(2)*(-1-x(2)/N2+sigma2*x(1)/N1-sigma3*x(3)/N3);
%      r3*x(3)*(-1-x(3)/N3+sigma4*x(2)/N2)];
% 食物
k1 = 1000;
r1 = 1;
a1 = 0.6;
% 七鳃鳗
k2 = 300;

R = @(x) (55.09 + 24.72 / (1 + exp(x*10 - 6.638)))/100;
r2 = 0.5;
% r2 = R

a2 = 5;
a3 = 0.5;
% 捕食者
k3 = 40;
r3 = 0.6;
a4 = 2;

for j = 1:2 % 无调节和有调节比较

    % 初始化种群个数
    N1 = zeros(1,n);N1(1) = 1000;
    N2 = zeros(1,n);N2(1) = 200;
    N3 = zeros(1,n);N3(1) = 20;

    for i = 1:n-1
        N1(i+1) = N1(i) + r1*N1(i)*( 1-N1(i)/k1-a1*N2(i)/k2 )*dt;

        if j==1
        N2(i+1) = N2(i) + r2*N2(i)*( -1-N2(i)/k2+a2*N1(i)/k1-a3*N3(i)/k3 )*dt;
        end
        if j==2
        N2(i+1) = N2(i) + 0.5*(1-R(N1(i)/k1))/(R(N1(i)/k1))*N2(i)*( -1-N2(i)/k2+a2*N1(i)/k1-a3*N3(i)/k3 )*dt;
        end
       
        N3(i+1) = N3(i) + r3*N3(i)*( -1-N3(i)/k3+a4*N2(i)/k2 )*dt;
    end
    figure;
    hold on
    box on
    if j==1
        title('无调节')
    else
        title('有调节')
    end
    plot(1:n,N1(1,:),'g',1:n,N2(1,:),'b',1:n,N3(1,:),'r')
    legend("食物","七鳃鳗","捕食者")
    xlabel("时间")
    ylabel("种群数量")
    hold off
end


%% R = @(x) (55.09 + 24.72 / (1 + exp(x*10 - 6.638)))/100 从这来的
% 使用fit和fittype函数
% doc fittype
clc
clear
close all
% 创建原始数据
% x0 = [4 5 8 10]
% y0 = [78 76 60 56]
x0 = [4 5 8 10]
y0 = [78 76 60 56]
hold on
plot(x0,y0,'r*','LineWidth',3)

% fo = fitoptions('Method','NonlinearLeastSquares',...
%                'Lower',[1,0.56],...
%                'Upper',[0.4,0.78],...
%                'StartPoint',[1,0.56]);
ft = fittype('a + b/(1+exp(x + c))','independent','x');

% 原始数据绘图
% Ftype = fittype('a+b*log(x)+c*y','independent',{'x','y'},'dependent',{'z'})
[f,fitStruct]= fit(x0',y0',ft);
%plot(f,[x0',y0'],z0');
 

xlabel('x');
ylim([56,78])
disp('残差平方和');
fitStruct.sse
% 直接可以使用f(x,y)
f(0.4)
f(0.5)
x1 = 4:0.1:10;
plot(x1,f(x1))
hold off

 参考资料分享(真对自己有用的)

1.Lotka-Volterra 猎食者-猎物模型 - 知乎 (zhihu.com)

 2.https://max.book118.com/html/2017/0716/122502653.shtm

3.基于出生性别比例的逻辑斯谛人口模型的混沌性质 (ctbu.edu.cn) 

注:至于后面,没想好怎么去解读自己得的结果,只能从平稳解和变化趋势上瞎扯一点,网上的那些参考答案,唉(尤其是建模老哥)

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值