% LEP Coronavirus
%

tdata=[0;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24;25;26;27;28;29;30;31;32;33;34;35;36;37;38;39;40;41;42;43;44;45;46;47;48;49;50;51;52;53;54;55;56;57;58;59;60;61;62;63;64;65;66;67;68;69;70;71;72;73;74;75;76];
ydata_I=[554;771;1208;1870;2613;4349;5739;7417;9308;11289;13748;16369;19383;22942;26302;28985;31774;33738;35982;37626;38791;51591;55748;56873;57416;57934;58016;57805;56301;54921;53284;52093;49824;47765;45600;43258;39919;37414;35129;32616;30004;27423;25353;23784;22179;20533;19016;17721;16136;14831;13524;12088;10733;9893;8967;8056;7263;6569;6013;5353;5120;4735;4287;3947;3460;3128;2691;2691;2161;2004;1863;1727;1558;1376;1229;1242;1190];
ydata_D=[17;25;41;56;80;106;132;170;213;259;304;361;425;490;563;636;722;811;908;1016;1113;1259;1380;1523;1665;1770;1868;2004;2118;2236;2345;2442;2592;2663;2715;2744;2788;2835;2870;2912;2943;2981;3012;3042;3070;3097;3119;3136;3158;3169;3176;3189;3199;3213;3226;3237;3245;3248;3255;3261;3270;3277;3281;3287;3292;3295;3300;3300;3305;3312;3318;3322;3326;3329;3331;3331;3333];
ydata_H=[1386399429;1386399204;1386398751;1386398074;1386397307;1386395545;1386394129;1386392413;1386390479;1386388452;1386385948;1386383270;1386380192;1386376568;1386373135;1386370379;1386367504;1386365451;1386363110;1386361358;1386360096;1386347150;1386342872;1386341604;1386340919;1386340296;1386340116;1386340191;1386341581;1386342843;1386344371;1386345465;1386347584;1386349572;1386351685;1386353998;1386357293;1386359751;1386362001;1386364472;1386367053;1386369596;1386371635;1386373174;1386374751;1386376370;1386377865;1386379143;1386380706;1386382000;1386383300;1386384723;1386386068;1386386894;1386387807;1386388707;1386389492;1386390183;1386390732;1386391386;1386391610;1386391988;1386392432;1386392766;1386393248;1386393577;1386394009;1386394009;1386394534;1386394684;1386394819;1386394951;1386395116;1386395295;1386395440;1386395427;1386395477];
k1n=6;
k2n=10.58;
k3=14.5645;
k4n=2;
Io=770;
Son=1.3864;
tspan=[0; 76];
k1=k1n*10^-7;
k2=k2n*10^-9;
k4=k4n*10^-3;
So=Son*10^9;
y0=[So;Io;0;0];
[t y]=ode45(@(t,y)ODEfun(t,y,k1,k2,k3,k4),tspan,y0);
tiledlayout(2,2)
set (gcf,'Position',[0,0.1,800,500])
nexttile
scatter(tdata,ydata_I,12)
hold on
plot(t,y(:,2),'LineWidth',2);
ylabel('No of People');
xlabel('time (days)');
axis([0 76 0 100000])
title('Infected cases of China','fontsize',9)
leg=legend('Data','Model fit');
leg.ItemTokenSize=[10,10];
grid on
hold off
nexttile
scatter(tdata,ydata_D,12)
hold on
plot(t,y(:,4),'LineWidth',2);
ylabel('No of People');
xlabel('time (days)');
axis([0 76 0 6000])
title('Death cases of China')
leg=legend('Data','Model fit');
leg.ItemTokenSize=[10,10];
grid on
hold off
z=size(y);
for i=1:z(1,1)
    H(i)=y(i,1)+y(i,3);
end
nexttile
scatter(tdata,ydata_H,12)
hold on
plot(t,H(1:z(1,1)),'LineWidth',2);
ylabel('No of People');
xlabel('time (days)');
axis([0 76 1.38630*10^9 1.38645*10^9])
title('Healthy cases of China')
leg=legend('Data','Model fit');
leg.ItemTokenSize=[10,10];
grid on
hold off

%

function dYfuncvecdV = ODEfun(t,Yfuncvec,k1,k2,k3,k4); 
S = Yfuncvec(1);
I = Yfuncvec(2);
R = Yfuncvec(3);
D = Yfuncvec(4);
% Explicit equations
H=S+R;
% Differential equations
 dSdt =  -k1*S-k2*I*S;
 dIdt = k1*S+k2*I*S-k3*I-k4*I;
 dRdt=k3*I;
 dDdt=k4*I; 
dYfuncvecdV = [dSdt;dIdt;dRdt;dDdt]; 
end