【数学模型】基于SEIRS传染病模型matlab源码

 目的 研究一类具有饱和接触率且潜伏期、染病期均传染的非线性SEIRS流行病传播数学模型动力学性质。方法 利用Lasalle不变集原理和Routh Hurwitz判据探讨系统的渐近性态。结果 得到了疾病绝灭与持续的阈值———基本再生数,证明了无病平衡点的全局渐近稳定性和地方病平衡点的局部渐近稳定性,揭示了潜伏期传染的影响。结论 潜伏期有传染的疾病,不但要注意控制染病期的病人,还要注意控制潜伏期的病人。只有这样,才能有效地控制疾病的蔓延。

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

完整代码添加QQ1575304183

猜你喜欢

转载自blog.csdn.net/qq_34763204/article/details/109900852