logistic模型matlab代码_种群竞争模型

3521d96beedc69417adb2720da6f162d.png 点击上方“蓝字”让我们一起玩耍啊~

在奥林匹斯山上统治著的上帝,乃是永恒的数。        ——雅可比

    前段时间小编和朋友聊2020数模美赛F题时,无意间发现了种群竞争模型,感觉还是比较有意思的。所以针对这个模型为大家做个小科普。

  注:文末有小白操作(保姆级步骤),就算不会matlab也可以运行算法哦!

种群竞争模型

fac2815d770525b4abcb42b8b4cc50cc.gif

1.

模型背景

    当两个种群为争夺同一食物来源和生存空间相互竞争时,经常出现的结果是,竞争力弱的灭绝,竞争力强的达到环境容许的最大容量。使用种群竞争模型可以描述两个种群相互竞争的过程,分析产生各种结局的条件。

    模型可以推广到多个方面,例如不同企业推出的类似产品间的竞争、物种迁移对迁入地物种的影响等。

2.

模型假设

    有甲乙两个种群,它们独自生存时数量变化均服从Logistic规律。

0ed9d01b63420a56234ae44cdac148bd.png

    两种群在一起生存时,乙对甲增长的阻滞作用与乙的数量成正比;甲对乙有同样作用。

f43face88b5dee6cff087f82475d946f.png

    其中x(t),y(t)分别为甲乙两种群的数量,r1 r2为它们的固有增长率,n1 n2为它们的最大容量。s1的含义是对于供养甲的资源来说,单位数量的乙(相对n2)的消耗为单位数量甲(相对n1)消耗的s1倍,s2同理。

3.

代码实现

(以物种共存状态为例、其余状态读者自行探索实现)

fun.m

function dx=fun(t,x,r1,r2,n1,n2,s1,s2)    r1=1;%接纳(固有增长率)    r2=1;%难民(固有增长率)    n1=100;%种群最大容量    n2=100;%种群最大容量    s1=0.8;%s1的含义是对于供养甲的资源来说,单位数量的乙(相对n2)的消耗为单位数量甲(相对n1)消耗的s1倍    s2=0.7;    dx=[r1*x(1)*(1-x(1)/n1-s1*x(2)/n2);r2*x(2)*(1-s2*x(1)/n1-x(2)/n2)];

main.m

clc;clear;h=0.1;%所取时间点间隔ts=[0:h:30];%时间区间x0=[10,10];%初始条件opt=odeset('reltol',1e-6,'abstol',1e-9);%相对误差1e-6,绝对误差1e-9[t,x]=ode45(@fun,ts,x0,opt);%使用5级4阶龙格—库塔公式计算plot(t,x(:,1),'r',t,x(:,2),'b','LineWidth',2),grid;figureplot(x(:,1),x(:,2),'LineWidth',2),grid  %作相轨线

按照以上代码运行后的结果:

Figure1:甲、乙物种数量随时间变化趋势。

Figure2:甲、乙物种数量之比随时间变化趋势。

83b4ccf02ce44cb455e0cddde94b2559.png

6de8feec45b83f3598700e839437cdf8.png

4.

小白操作

    源代码中的每个参数含义已经标出,可以换不同的值,来对应研究的初始条件。

    接下来一步步教你操作。

1.打开matlab,新建两个M文件,里面分别存入上面第三点的代码(分别取名main.m  fun.m)。

e7815c04a88bf127601622c3d6519209.png

2.把两个M文件放进文件夹(位置随意),但是一定要与地址栏相对应。

1da80e9c134a94a0c2d60f35ba695e82.png

3.按照自己的想法改变两个M文件中对应的数据,然后复制main.m中的代码,粘贴到命令行窗口。按下回车键,就可以看到结果过啦。

本文基于文章链接: https://blog.csdn.net/COCO56/article/details/99708485?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

ad0e7954f22ea496e758bd6e053b729b.png

欢迎关注转发。

END

e6d60f2a4181aec78b3ac29a9ca1a30d.png

排版:苏铭

图:苏铭

文:苏铭

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值