SEIRDV model parameter fitting,,
Afficher commentaires plus anciens
Hi, I am studying the Covid-19 model 'SEIRDV' in which the vaccine was introduced.
I want update new 'beta'and 'u' by using lsqcurvefit, but l can't.
Here is my code. Please review this and give me advice. I am so desperate....
<SEIRDV.m>
function dydt = SEIRDV(t,y)
global beta gamma alpha sigma epsilon N u d
%S=y(1), E=y(2), I=y(3), R=y(4), D=y(5), V=y(6)
dydt= zeros(6,1);
dydt(1) = -beta*y(1)*y(2)/N - alpha*u*y(1)/N;
dydt(2) = beta*y(1)*y(2)/N - sigma*y(2);
dydt(3) = sigma*y(2) - (1-epsilon)*gamma*y(3) - epsilon*d*y(3);
dydt(4) = (1-epsilon)*gamma*y(3);
dydt(5) = epsilon*d*y(3);
dydt(6) = alpha*u*y(1)/N;
<SEIRDV_ode.m>
% initial conditions : S0 = 51732328, E0 = 424, I0 = 7457, R0 = 79880, D0 = 1580, V0 = 0
global beta gamma alpha sigma epsilon N u d
N= 51821669;
alpha = 0.761;
u = 24452;
sigma = 1/5;
epsilon = 0.143;
gamma = 1/14;
d = 1/17.7;
beta = 0.2096
[t,y] = ode45(@SEIRDV,[0,365],[51732328 424 7457 79880 1580 0]);
p= lsqcurvefit(fun,[0;0],x,y);
beta = p(1);
u = p(2);
hold on
real= xlsread('Daily Confirmed Number.xlsx');
t=0:1:441;
y=real(:,2);
real= xlsread('Daily vaccination count.xlsx');
t=0:1:70;
y=real(:,2);
plot(t,y,'o')
hold off
If this is not the way to do it, please tell me how to complete the code.
1 commentaire
Réponses (0)
Catégories
En savoir plus sur Matrix Computations dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!