[Mathematical modeling] based on matlab SEIRS infectious disease model [including Matlab source code 033]

1. Introduction

Objective To study the dynamic properties of a nonlinear SEIRS epidemic propagation mathematical model with saturated contact rate and infection in both the incubation period and the infection period. Methods Using Lasalle invariant set principle and Routh Hurwitz criterion to explore the asymptotic behavior of the system. As a result, the threshold of extinction and persistence of the disease—the basic reproduction number was obtained, which proved the global asymptotic stability of the disease-free equilibrium point and the local asymptotic stability of the endemic equilibrium point, and revealed the influence of the incubation period. Conclusion There are infectious diseases in the incubation period. Not only should the patients in the infective period be controlled, but also the patients in the incubation period. Only in this way can the spread of diseases be effectively controlled.

Second, the source code

clear all; clc;
close all;
load('Infectious_data', 'T', 'X'); % load data generated by ODE45
load('prediction'); % Data from NN
X   = X';
 
% Generate training data
train_size  = 20; % size of trainning data
x_idx   = randperm(1000);
T_train = T(x_idx(1:train_size));
X_train = X(:,x_idx(1:train_size));
Y_train = X(:,x_idx(1:train_size)+1);
 
%% DMD Main 
% Dynamic mode decomposition: Classic
Ad      = Y_train * pinv(X_train);
[U,S,~] = svd(X_train,'econ');
eig_tru = sum(diag(S)>=0.01*max(diag(S))); % Truncate eigenvalues to reduce noise
U       = U(:,1:eig_tru); 
Ad_til  = U'*Ad*U;
[W,D]   = eig(Ad_til);
Omega   = diag(log(diag(D)));
Phi     = U*W;
c       = W \ U' * X(:,1);
 
X_DMD   = zeros(size(X,1),length(T));
for t = 0:length(T)-1
    X_DMD(:,t+1)    = Phi*expm(Omega*t)*c;
end
 
%% Koopman Main
% Define feature according to Brusselator
Psi = @(x) [x(1); x(2); x(3); x(4); x(5); x(6); x(7); x(1)*x(3); x(1)*x(4); x(1)*x(5)];
Psi_X   = [];
Psi_Y   = [];
for i = 1:train_size
    Psi_X   = [Psi_X,Psi(X_train(:,i))];
    Psi_Y   = [Psi_Y,Psi(Y_train(:,i))];
end

Three, running results

Insert picture description here
Insert picture description here
Insert picture description here
Insert picture description here

Four, remarks

Complete code or write on behalf of adding QQ2449341593

Guess you like

Origin blog.csdn.net/TIQCmatlab/article/details/113087306