Logistic curve fitting in epidemiology: Difference between revisions
Content added Content deleted
m (→{{header|Phix}}: added syntax colouring the hard way) |
Alextretyak (talk | contribs) (Added 11l) |
||
Line 73: | Line 73: | ||
:;*[[https://www.zoology.ubc.ca/~bio310/Blank%20Page%204_files/DL%20R%20and%20r.htm Calculating r and R0]] |
:;*[[https://www.zoology.ubc.ca/~bio310/Blank%20Page%204_files/DL%20R%20and%20r.htm Calculating r and R0]] |
||
<br><br> |
<br><br> |
||
=={{header|11l}}== |
|||
{{trans|C++}} |
|||
<lang 11l>-V K = 7.8e9 |
|||
-V n0 = 27 |
|||
-V actual = [ |
|||
27, 27, 27, 44, 44, 59, 59, 59, 59, 59, 59, 59, 59, 60, 60, |
|||
61, 61, 66, 83, 219, 239, 392, 534, 631, 897, 1350, 2023, 2820, |
|||
4587, 6067, 7823, 9826, 11946, 14554, 17372, 20615, 24522, 28273, |
|||
31491, 34933, 37552, 40540, 43105, 45177, 60328, 64543, 67103, |
|||
69265, 71332, 73327, 75191, 75723, 76719, 77804, 78812, 79339, |
|||
80132, 80995, 82101, 83365, 85203, 87024, 89068, 90664, 93077, |
|||
95316, 98172, 102133, 105824, 109695, 114232, 118610, 125497, |
|||
133852, 143227, 151367, 167418, 180096, 194836, 213150, 242364, |
|||
271106, 305117, 338133, 377918, 416845, 468049, 527767, 591704, |
|||
656866, 715353, 777796, 851308, 928436, 1000249, 1082054, 1174652 |
|||
] |
|||
F f(Float r) -> Float |
|||
V sq = 0.0 |
|||
L(act) :actual |
|||
V eri = exp(r * L.index) |
|||
V guess = (:n0 * eri) / (1 + :n0 * (eri - 1) / :K) |
|||
V diff = guess - act |
|||
sq += diff * diff |
|||
R sq |
|||
F solve(func, =guess = 0.5, epsilon = 0.0) |
|||
V delta = I guess != 0 {guess} E 1 |
|||
V f0 = func(guess) |
|||
V factor = 2.0 |
|||
L delta > epsilon & guess != guess - delta |
|||
V nf = func(guess - delta) |
|||
I nf < f0 |
|||
f0 = nf |
|||
guess -= delta |
|||
E |
|||
nf = func(guess + delta) |
|||
I nf < f0 |
|||
f0 = nf |
|||
guess += delta |
|||
E |
|||
factor = 0.5 |
|||
delta *= factor |
|||
R guess |
|||
V r = solve(f) |
|||
V R0 = exp(12 * r) |
|||
print(‘r = #.6, R0 = #.6’.format(r, R0))</lang> |
|||
{{out}} |
|||
<pre> |
|||
r = 0.112302, R0 = 3.848279 |
|||
</pre> |
|||
=={{header|Ada}}== |
=={{header|Ada}}== |