A user, u/littobitovolivoal, posted his way of modelling Italy's COVID-19 cases on r/calculus.
>I was doing some modelling with covid-19 infection.
>
>\[His function: f'(x) / f'(x-1) = ax + b ([Image](https://i.redd.it/1x95etsrtlr41.jpg))\]
>
>f'(x) is rate of change of total confirmed cases, x being no. days since 1st infection confirmed. There is an epidemiological concept callled "growth factor"(abbr. GF), which is daily confirmed new cases devided by that of the previous day.
>
>I used covid 19 in italy as my data, I plotted the GF against x, and it turned out that the relationship between GF and x is almost linear. Hence the ax+b in the equation.
>
>By solving this differential equation, I can predict the number of COVID 19 cases in italy (if my sloppy and simplistic model is ever remotely accurate).
[Link to the post](https://www.reddit.com/r/calculus/comments/fx7fqk/can_anybody_solve_this_differential_equation/) ([reply to the first comment](https://www.reddit.com/r/calculus/comments/fx7fqk/can_anybody_solve_this_differential_equation/fmsp6pi?utm_source=share&utm_medium=web2x) for the text I have pasted above)
He also gave me a spreadsheet with the raw data he used to come to this equation. [Spreadsheet](https://drive.google.com/file/d/1CRFquOYfS5KpNHxQ-84oKBjC8Bageovi/view)
I just didn't know how to solve the differential equation, so I wrote a program to analyze the data and the accuracy of his model. Link to the code: [cpp.sh/5q7ba](https://cpp.sh/5q7ba).
To run it, just click on RUN and then enter a value close to 450 and press enter. You'll see the projected values there. I have pasted the output [here](https://textbin.net/jxlrA00Csf).
I noticed very interesting things while analyzing the data:
1. During the time when the value of GF is so small such that it is not enough to lessen the total number of cases. So the peak will be flat, **super flat indeed**.
Day | Previous Total | GF | New Cases | Total Cases on this day
68 | 150797 | 0.5613 | 0.255567 | 150797
69 | 150797 | 0.5494 | 0.140408 | 150797
70 | 150797 | 0.5375 | 0.0754695 | 150797
71 | 150797 | 0.5256 | 0.0396668 | 150797
....
413 | 150772 | -3.5442 | 65.2139 | 150706
414 | 150706 | -3.5561 | 231.907 | 150475
415 | 150475 | -3.568 | 827.445 | 149647
416 | 149647 | -3.5799 | 2962.17 | 146685
417 | 146685 | -3.5918 | 10639.5 | 136045
So, the flatness can remain for a year or so if this model is accurate, or even close.
2. I also noticed **a sudden drop in cases when they start to approach zero**:
Day | Previous Total | GF | New Cases | Total Cases on this day
416 | 149647 | -3.5799 | 2962.17 | 146685
417 | 146685 | -3.5918 | 10639.5 | 136045
418 | 136045 | -3.6037 | 38341.6 | 97703.8
419 | 0 | 0 | 0 | 0
**I don't know if the model is accurate enough to come to such conclusions. This is where I need your help.**
I tried to see if the model works for the first 41 days by changing a few constants in the code.
[Link to new Code](https://cpp.sh/6disc), [Result (ie Predicted numbers)](https://textbin.net/rEhf2SVbJE)
It does well initially, but it is too off actual numbers as we move to the end.
But even if the total number of cases isn't accurate with this model, will the change in cases be accurate? since we are using the growth factor to model this.