⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xulin.m

📁 生态平衡 使用matlab编写 供参考 程序不长 实验性质
💻 M
字号:
T = 300;                                     %仿真时间  
t=1:T+1;
f=zeros(1,T);                                %幼年狐狸数
F=zeros(1,T);                                %成年狐狸数
r=zeros(1,T);                                %幼年啮齿动物数
R=zeros(1,T);                                %成年啮齿动物数
fox=zeros(1,T);                              %狐狸总数                  
rody=zeros(1,T);                             %啮齿动物总数
f(1)=6;
F(1)=10;
r(1)=5800;
R(1)=10000;                                  %设定初值
rody(1)=r(1)+R(1);
r1=4;                                        %狐狸出生率
r2=1.2;                                      %啮齿动物出生率
g=0.2;

for i=1:T
   
  temp = 10*f(i)+60*F(i)-g*R(i);             %假定每月被吃的啮齿动物为其g倍
  if(temp>0)                                 %有饿死狐狸的情况
     f(i+1)=f(i)-temp/(10*f(i)+60*F(i))*f(i);%饿死的小狐狸数
       
    if(i<=120)                                         %猎人出现之前
     F(i+1)=F(i)-temp/(10*f(i)+60*F(i))*F(i);
     elseif (F(i)-temp/(10*f(i)+60*F(i))*F(i)-4)>=0    %猎人出现后
       F(i+1)=F(i)-temp/(10*f(i)+60*F(i))*F(i)-4;
       else F(i+1)=0;
     end
       eat=g*R(i);                            %被吃的成年啮齿动物
   else                                       %没有出现饿死的情况 
       f(i+1)=f(i);
       F(i+1) = F(i);
       eat=10*f(i)+60*F(i);
   end
   if(mod(i,8)==0)                            %幼年狐狸变成成年狐狸
       F(i+1)=F(i)+f(i);
       f(i+1)=r1*F(i);
      
   end
   if f(i+1)<=0
           f(i+1)=0;
   end
   
   R(i+1)=R(i)-eat;                           %成年啮齿动物
   r(i+1)=r(i)-eat/R(i)*r(i);                 %幼年啮齿动物
  
   if(mod(i,3)==0)                            %幼年长成成年
       r(i+1)=(R(i)-eat)*r2;
       R(i+1)=(R(i)-eat)+r(i)-eat/R(i)*r(i);
   end
   if (r(i)+R(i)>10^5)                         %数量达到十万
       R(i)=10^5-r(i);
       R(i+1)=10^5-r(i);
   end
    
end


fox=f+F;
figure(1)
plot(t,fox,'r');
title('fox');xlabel('Time/Month'),ylabel('Numbers')

hold on;
figure(2)
rody=R+r;
plot(t,rody,'b:');
title('rody');xlabel('Time/Month'),ylabel('Numbers')

ylim([0,120000]);
fox,rody

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -