Hallo Mathematica-Freunde !
Ich bin gerade an einem Populationsmodell dran und versuche, durch
eine Anzahl Wertepunkte (Jahr/Bevoelkerungszahl) eine logistische
Wachstumsfunktion zu legen. Dummerweise liefert mir Mathematica, egal
ob ich nur einem oder zwei Parameter fitten will, eine ziemlich bescheidene
Funktion:
pts = {{1801, 8.9}, {1811, 10.2}, {1821, 12.0}, {1831, 13.9}, {1841,
15.9}, {1851, 17.9}, {1861, 20.1}, {1871, 22.7}, {1881, 26.0}, {1891,
29.0}, {1901, 32.5}, {1911, 36.1}, {1921, 37.9}, {1931, 40.0}, {1951,
43.8}, {1961, 46.1}, {1971, 48.8}, {1981, 49.2}};
Needs["Statistics`NonlinearFit`"]
fn = a*8.9/(8.9 - (8.9 - a)*Exp[-a1*x])
(optional mit a1 = 0.0314 (aus Forderung, Kurve soll bei 1981 durch 49.2
gehen:
fn = a*8.9/(8.9 - (8.9 - a)*Exp[-0.0314*x]))
lsg = NonlinearFit[pts, fn, x, {a, a1}]
(lsg = NonlinearFit[pts, fn, x, {a}])
Show[ListPlot[pts], Plot[lsg, {x, 1800, 2000}]]
--
Mathematica liefert auf jeden Fall fuer a den Wert 28.38... gegen den
dann die Funktion auch munter konvergiert, aber offensichtlich sollte sie
ja schon auch durch die Werte bis wenigstens 49.2 gehen.
Irgendwelche Ideen ? Hab leider nicht so viel Ahnung...
Im 2. Schritt wird das Populationsmodell dann in einzelne Alterstrukturen
aufgegliedert (0-9, 10-19,...,70+). Hierfuer soll dann ein System von
DGLs aufgestellt werden (Stichwort Markov-Kette ?), um praezisere
Angaben machen zu koennen. Hat da irgendjemand eine Idee, wie das
mit (und ohne) Mathematica anzupacken ist ?
Wuerde mich sehr ueber ein wenig Hilfe & Anregung freuen
feste Gruesse
Heiko