Dziś będziemy zajmować się różniczkowaniem i całkowaniem numerycznym. Slajdy są tu: ONA11-calkowanie
Przydatny będzie nam przede wszystkim pakiet scipy.integrate ale będziemy też korzystać z nowych funkcji pakietu matplotlib, takich jak wykresy strzałkowe
0. Na początek proponuje obejrzeć sobie program opisujący model Lotki-Volterry ( lotka_volterra ) i spróbować wykonać go po kawałku ze zrozumieniem. Jeśli są pytania, to proszę pytać
1. Naszym właściwym zadaniem jest budowa podobnego modelu dla problemu inwazji Zombie (opisanego w artykule naukowym , kopia lokalna tu: Zombies). Mamy tu 3 zmienne: ludzi niezarażonych (S), zombie (Z) oraz ofiary konfliktu (R). System jest dynamiczny, a jego zmiany opisują równania różniczkowe:
- dS/dt = P – B*S*Z -D*S,
- dZ/dt = B*S*Z +G*R – A*S*Z,
- dR/dt = D*S + A*S*Z – G*R,
gdzie
- P oznacza przyrost naturalny ludzi,
- B – współczynnik z którym zombie spotykając niezarażonego może go zarazić,
- D – współczynnik śmiertelności ludzi z przyczyn naturalnych,
- G – prawdopodobieństwo, że zombie powstanie z martwej ofiary,
- A – szansa na to, że w pojedynku człowieka z zombie, to zombie zostanie pokonane
Interesują nas następujące pytania:
a) Jak wygląda ewolucja systemu w czasie (w zakresie 0..5000), jeśli na początku jest tylko 1000 ludzi niezarażonych (nie ma zombie, ani ciał) i mamy następujące prametry:
- P=0.0001
- D=0.0001
- B=0.0095
- G=0.0001
- A=0.0001
Rozwiązanie przedstaw na wykresie 3 zmiennych (S,Z i R) od czasu
b) Czy zagładę populacji można zatrzymać poprzez zwiększanie współczynnika urodzin P? Rozwiązanie uzasadnij. Który ze współczynników musiałby wynosić 0, żeby populacja mogła poradzić sobie z zombie?
c) Zaprezentuj pole wektorowe populacji zombie i ludzi względem parametrów A i B?
d*) Zaprezentuj pole wektorowe 3d dla zmiennych S,Z,R
1 thought on “ONA 11 – Różniczkowanie i całkowanie numeryczne”