%初始参数设置 N = 1;%人口总数 I = 0.01;%感染者 S= N-I;%易感者 R=0;%恢复者 b=0.5;%传染系数 d=0.03;%死亡系数 a=0.1;%康复系数 y=0.01048;%出生率 A=y; %新出生人数 T= 1:140; for idx = 1:length(T)-1 S(idx+1) = S(idx)+A-d*S(idx)-b*S(idx)*I(idx); I(idx+1) = I(idx)+b*S(idx)*I(idx)-d*I(idx)-a*I(idx); R(idx+1) = a*I(idx)-d*R(idx); end figure plot(T,S,T,I,T,R); grid on; xlabel('天');ylabel('人数') legend('易感者S','感染者I','恢复者R') title('康复率为0.1') 代码中的SIR加上levy噪声
时间: 2024-02-24 13:00:13 浏览: 16
以下是在SIR模型中加入levy噪声的代码,其中我们假设levy噪声的参数为(1.5,0.5):
```
%初始参数设置
N = 1;%人口总数
I = 0.01;%感染者
S= N-I;%易感者
R=0;%恢复者
b=0.5;%传染系数
d=0.03;%死亡系数
a=0.1;%康复系数
y=0.01048;%出生率
A=y; %新出生人数
T= 1:140;
alpha = 1.5; % levy分布参数1
beta = 0.5; % levy分布参数2
levy_noise = levy(alpha, beta, length(T)-1); % 生成levy噪声
for idx = 1:length(T)-1
S(idx+1) = S(idx)+A-d*S(idx)-b*S(idx)*I(idx) + levy_noise(idx); % 在每个时间步加上levy噪声
I(idx+1) = I(idx)+b*S(idx)*I(idx)-d*I(idx)-a*I(idx) + levy_noise(idx+1); % 在每个时间步加上levy噪声
R(idx+1) = a*I(idx)-d*R(idx) + levy_noise(idx+1); % 在每个时间步加上levy噪声
end
figure
plot(T,S,T,I,T,R);
grid on;
xlabel('天');ylabel('人数')
legend('易感者S','感染者I','恢复者R')
title('康复率为0.1,加入levy噪声')
```
运行代码后,你会看到每个时间步的S、I和R人数都受到levy噪声的影响,波动幅度比之前的结果更大。