📄 xulin.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 + -