This work presents open-source computer simulation programs developed for simulating, tracking, and forecasting the COVID-19 outbreak. The programs are built in Simulink and MATLAB (two separate programs) and are aimed to be used for educational and research studies. It is not directed for any other reason such as medical or commercial purposes. The mathematical model used in this program is the SIR, SEIR, and SEIRD models represented by a set of differential-algebraic equations. It can be easily modified to develop new models for the problem. The package simulates all the outbreaks around the world in a generalized, easy, and efficient way. The infection and recovery rate functions are treated as constant, variable, or a combination of the two. In addition, an adaptive neuro-fuzzy inference system is employed and proposed to train the model and predict its output. As with any other open-source programs, this package comes without any guarantee. Please use it at your own risk.
A simple script was coded to extract the data for each country from the excel sheet provided by the website below and updated daily. you only need to enter the country name and run the model. You can easily edit the programs for your own uses. All worldwide countries are included.
SimCOVID consists of two separate programs:
Several MATLAB programs with different versions are available using various models including SIR and SEIR representation. The programs are used for:
(1) parameter estimation
(2) tracking existing data
(3) forecasting future spread
You can edit the codes, add new differential equations, define new functions for the inputs such as the infection and recovery rates, and build a GUI for your model and use.
The same basic models created in MATLAB are available in Simulink with a block diagram display. This was the first version of SimCOVID to be used for estimating the parameters in the model, simulating the model to track the virus spread and predict its path and size. In addition, an adaptive neuro-fuzzy inference system is created to replace the differential equations in the model and predict the future outbreak. The program is included in the Simulink version of SimCOVID. Further, several demonstrating videos were created and available below for educational purposes. For those who have different versions of Simulink, the same programs were saved in the following versions: R2018a, R2018b, R2019a, R2019b, and R2020a.
Ismael Abdulrahman (2020). SimCOVID5 (https://www.mathworks.com/matlabcentral/fileexchange/75025-simcovid5), MATLAB Central File Exchange. Retrieved .
The data source changed the population year from 2018 to 2019. If you download and use the new data, update a related line in the code from:
"popData2018" to "popData2019".
Make sure your excel sheet in the same folder where the code is and make sure of its name. That is what the error message tells you.
I get the following error when trying to run your code.
Error using readtable (line 216)
Unable to open file
Error in SEIR_Long_Term (line 6)
For estimation, start with a low value of "MaxNumChanges" (> 1), that is, 2, 3, 4, 5, and so on. You can increase it if you have enough data or the outbreak passed the peak. Typical values 3-5.
For estimating the future outbreak, just change the simulation time to a value greater than the last day of reported cases.
(see the comments in the file "Generalized_Method").
Some keynotes are also mentioned in the file as comments. For instance, select the number of sigmoid functions between 3-10. If you choose a high number of the sigmoid functions, you will let the last simulated value affect the prediction which is not preferred.
How to make future predictions using this model
Thanks Ismael for reply. Good work. Folder 'Newly_Added2' created with a newer version (R2020a) of Simulink. This folder is not compatible with older version of Matlab. Please create the above folder that is compatible with older version of matlab (2019, 2018...).
Please note that there are several updated folders in which different formulas are used for the beta function. The latest one uses (1) similar functions for the beta and gamma variables without an exponential power (2) constant gamma and variable beta without an exponential power. You can use one of these. In the paper, section 2, paragraph 3, it is mentioned that (A reasonable set of initial values were selected for the parameters positive values between 0-2 for the recovery gains and negative similar values for the exponential powers used for the infection function). I hope that helps.
Beta*e^u is not mentioned in your paper (Only mentioned Beta) but it is used in Simulink block. Why? What is the mathematical expression of Beta*e^u in terms of zeta1,2,3 and sigmoid function and Gamma in terms of gamma1,2,3 and sigmoid function.
For optimizing the parameters (beta and gamma), use the Simulink tools "Parameter Estimation" as explained in the following video:
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!