[Mathematical model] Matlab source code based on SEIRS infectious disease model

 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 The Lasalle invariant set principle and Routh Hurwitz criterion are used 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.

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

Complete code add QQ1575304183

 

 

Guess you like

Origin blog.csdn.net/qq_34763204/article/details/109900852