SEIRDV model parameter fitting,,
Show older comments
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 Comment
Answers (0)
Categories
Find more on Matrix Computations in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!