✅作者簡介:熱愛科研的Matlab仿真開發者,修心和技術同步精進。
🍎個人首頁:Matlab科研工作室
🍊個人信條:格物緻知。
更多Matlab仿真内容點選👇
智能優化算法 神經網絡預測 雷達通信 無線傳感器
信号處理 圖像處理 路徑規劃 元胞自動機 無人機
⛄ 内容介紹
衆所周知,病毒會給社會造成巨大危害.根據這次病毒潛伏期都有傳染性特點,在經典的SEIR模型上定義了潛伏者傳染機率b2和隔離率,并用MATLAB軟體實作了數值解.
⛄ 部分代碼
clear;clc
close all
%%
load china_data.mat;
load abroad_data.mat;
load C.mat;
%%
%中國
para=C(1,:);
%用fmincom函數優化
c0=[0.1 0.125];%beta和sigma的初始值
lb = [0.1 0.125];%下界
ub = [0.2 0.8]; %上界
true_data=china_data;
period_true=size(true_data,1);
period_pre=300;
[Y, fval]=fmincon(@(Y,fval)seir_Obj_fun(Y,para,true_data),c0,[],[],[],[],lb,ub);%優化求解
beta=Y(1);sigma=Y(2);
K=120000;
[~,p]=ode45(@(t,p) SEIR_fun(t,p,para,beta,sigma), [1:1:period_pre],[K,10000,0,0]);
figure(1);
x1=1:period_true;
y1=true_data(:,3);
x2=1:period_pre;
y2=p(:,3);
hold on
plot(x1,y1,'b*');
plot(x2,y2,'r+');
legend('實際值T-i','拟合值T-i');
true_data=[];
%%
%外國SIR
N=size(C,1)-1;%國家的數量
period_true_begin=[1,29,51,1,1,1,1,1,1,18,27,28];
period_true_end=[208,208,208,176,176,176,176,176,183,183,183];%有效資料段;
for i=1:N
period_true=period_true_end(i)-period_true_begin(i)+1;
para=C(i+1,:);
%用fmincom函數優化
true_data= abroad_data(period_true_begin(i):period_true_end(i),1+(i-1)*3:3+(i-1)*3);
[Y2, fval]=fmincon(@(Y2,fval)SIR_Obj_fun(Y2,para,true_data),c0,[],[],[],[],lb,ub);%優化求解
beta=Y2(1);
sigma=Y2(2);
[t,p]=ode45(@(t,p) SEIR_fun(t,p,para,beta,sigma), [1:1:period_pre],[true_data(1,1),50,0,0]);
%畫圖
figure(i+1);
subplot(1,2,1);
plot(t,p(:,3),'b*');
title('預測值T-I');
subplot(1,2,2);
plot(1:period_true_end(i)-period_true_begin(i)+1,true_data(:,2),'r+');
title('實際值T-I');
end
⛄ 運作結果
