KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I am trying to create a simple simulation program of SIR-epidemics model in java. Basically, SIR is defined by a system of three differential equations: S'(t) = - l(t) * S(t) I'(t) = l(t) * S(t) - g(t) * I(t) R'(t) = g(t) * I(t) S - susceptible people, I - infected people, R - recovered people. l(t) = [c * x * I(t)] / N(T) c - number of contacts, x - infectiveness (probability to get sick after contact with sick person), N(t) - total population (which is constant). How can I solve such differential equations in Java? I don't think I know any useful way to do that, so my implementation produces rubbish. public class Main { public static void main(String[] args) { int tppl = 100; double sppl = 1; double hppl = 99; double rppl = 0; int numContacts = 50; double infectiveness = 0.5; double lamda = 0; double duration = 0.5; double gamma = 1 / duration; for (int i = 0; i < 40; i++) { lamda = (numContacts * infectiveness * sppl) / tppl; hppl = hppl - lamda * hppl; sppl = sppl + lamda * hppl - gamma * sppl; rppl = rppl + gamma * sppl; System.out.println (i + " " + tppl + " " + hppl + " " + sppl + " " + rppl); } } } I would greatly appreciate any help, many thanks in advance!
Tags (comma-separated)
Save Edits
Cancel