Identyfikacja i modelowanie struktur i procesów biologicznych Laboratorium 1: Modele ciągłe. Model Lotki-Volterry. mgr inż. Urszula Smyczyńska AGH Akademia Górniczo-Hutnicza 1. Ćwiczenie 1: Rozwiązanie równania różniczkowego Pierwsze, wstępne ćwiczenie polega na rozwiązaniu w 'u jednego z prostych równań różniczkowych oraz porównanie uzyskanego wyniku ze znanym rozwiązaniem analitycznym. W każdej grupie zbudowany zostanie jeden z poniżej opisanych modeli. 1.1. Prawo Malthus'a Prawo Malthus'a (1798) jest wyidealizowanym modelem demograficznym rozwoju populacji ludzkiej, sformułowanym jako następujące równanie: x liczebność populacji t - czas dx dt =rx r współczynnik wzrostu populacji w przeliczeniu na osobę. Można przyjąć r=b d, przy czym b będzie współczynnikiem urodzeń, a d współczynnikiem umieralności. 1.2. Rozwój populacji przy ograniczonej pojemności środowiska Bardziej realistyczny niż w poprzednim przykładzie model rozwoju populacji zakłada ograniczoną pojemność środowiska i jest sformułowany następująco: K pojemność środowiska dx dt =r x ( 1 x K ) Pozostałe oznaczenia - jak w przykładzie 1. 1
1.3. Prawo rozpadu promieniotwórczego Dobrze znane prawo opisuje zmiany (spadek) ilości substancji promieniotwórczej w czasie. W formie równania różniczkowego wygląda ono następująco: N ilość substancji promieniotwórczej t - czas λ stała rozpadu dn dt = λ N 1.4. Model stężenia leku w krwiobiegu pacjenta (wg Błąd: Nie znaleziono źródła odwołania) Model opisuje stężenie leku w osoczu krwi w następujący sposób: C stężenie leku w krwiobiegu t - czas dc dt = kc +C z(t) k współczynnik naturalnego zanikania leku C z (t) ilość leku podawanego na jednostkę czasu Wersja A: Stałe tempo dostarczania leku Przyjmujemy, że lek jest dostarczany ze stałą szybkością, czyli: Równanie przyjmuje zatem postać: C z (t)=i dc = kc +I dt Wersja B: Szybkość podawania leku maleje liniowo Przyjmujemy, że lek podawany jest początkowo z szybkością I 0, która z czasem maleje liniowo, czyli: C z (t)=i 0 v t 2
Całe równanie ma wtedy postać: dc dt = kc +I 0 v t Uwaga: Aby zachować sens fizyczny modelu, należy dopilnować, aby C z (t) nie przyjmowało wartości ujemnych, np. ograniczając czas symulacji. Można także założyć, że spadek szybkości podawania leku trwa do momentu jej wyzerowania lub osiągnięcia innej z góry zadanej wartości; natomiast sama symulacja może trwać dłużej. 1.5. Masa na sprężynie (oscylator harmoniczny) Położenie masy na sprężynie opisujemy następująco: m masa t - czas k współczynnik sprężystości m d2 x = kx (prawo Hooke'a F= kx ) 2 dt 3
2. Ćwiczenie 2: Model Lotki-Volterry Model Volterry, pierwotnie (1926) sformułowany jako wyjaśnienie wahań liczebności populacji ryb w Adriatyku, opisuje zależność wielkości dwóch populacji współistniejących na zasadzie drapieżnik-ofiara lub ewentualnie pasożyt-żywiciel. Jest to model ciągły, dynamiczny (opisuje zmiany w czasie), zbudowany jako układ 2 równań różniczkowych: { dx =Ax Bxy (1) dt dy = Cy+ Dxy (2) dt x liczebność ofiar y liczebność drapieżników A tempo rozmnażania populacji ofiar B tempo redukcji populacji ofiar przez drapieżniki C umieralność drapieżników D tempo przyrostu populacji drapieżników wskutek zjadania ofiar Równanie (1) charakteryzuje zmiany liczby ofiar, która wzrasta w tempie proporcjonalnym do ich aktualnej liczności (Ax), a maleje z szybkością zależną zarówno od liczby ofiar jak i drapieżników (-Bxy). Równanie (2) podobnie opisuje rozwój populacji drapieżników, która maleje, gdy zwierzęta umierają w tempie zależnym od ich aktualnej liczby (-Cy), natomiast zwiększa się z szybkością zależącą od ich aktualnej liczby oraz dostępności pożywienia ofiar (Dxy). 4
3. Rozwiązywanie równań różniczkowych w 'u Do rozwiązywania numerycznego równań różniczkowych lub ich układów można wykorzystać m.in. pakiet, będący częścią oprogramowania Matlab. Poniżej znajdują się podstawowe informacje o modelowaniu procesów w tym pakiecie, które mogą się przydać podczas zajęć. 3.1. Uruchamianie 'a W oknie głównym (Command Window) Matlab'a wpisujemy komendę simulink. 3.2. Nowy model File New Model lub Ctrl+N 3.3. Budowanie modelu jest środowiskiem graficznym, w którym modele konstruuje się przez wstawianie i łączenie odpowiednich elementów obliczeniowych bloczków. Umieszczona poniżej tabela zawiera opis bloczków, które mogą się przydać podczas wykonywania ćwiczenia. Sum Nazwa Schemat Opis Kategoria Suma 2 lub więcej wartości. Klikając dwukrotnie LPM 1 na bloczek można go modyfikować, np. zmienić znak + na oraz zmienić ilość sumowanych zmiennych. Subtract Różnica. Działa analogicznie do bloku Sum. Product Mnożenie 2 lub więcej liczb. Konfiguracja podobnie jak w bloczku Sum. Divide Dzielenie 1 LPM lewy przycisk myszy 5
Gain Nazwa Schemat Opis Kategoria Wzmocnienie. Mnożenie wartości wejściowej przez stałą. Wartość wzmocnienia ustalamy w parametrach bloku (po kliknięciu 2 razy LPM); opcjonalnie może to być zmienna z przestrzeni roboczej (Workspace) Matlab'a. Constant Stała. Wartość ustalamy w parametrach bloku lub pobieramy zmienną z Workspace Matlab'a. Sources Integrator Obliczanie całki funkcji (sygnału) podanej na wejściu. W ustawieniach bloku ustalamy warunek początkowy; opcjonalnie może on być drugim, oprócz funkcji podcałkowej wejściem bloku (klikamy na blok 2x LPM i w parametrach zmieniamy Initial condition source z internal na external) Continuous Derivative Różniczkowanie funkcji wejściowej. Continuous Scope Oscyloskop. Wyświetla wykres funkcji wejściowej. Sinks To Workspace Eksport wartości wejściowej blokczku do przestrzeni roboczej Matlab'a. Sinks XY Graph Wykres zależności y od x. Sinks Mux Łączenie wielu sygnałów w jeden. Wykorzystujemy go np. gdy chcemy w jednym bloku Scope mieć kilka wykresów lub przesłać jednocześnie kilka zmiennych do Workspace Matlab'a. Signal Routing 6
Step Nazwa Schemat Opis Kategoria Funkcja progowa. W parametrach określamy wartości początkową i końcową oraz, kiedy ma nastąpić zmiana. Sources Ramp Funkcja o liniowo narastającej/malejącej wartości. W parametrach określamy m.in. wartość początkową i tempo jej zmian. Sources 3.4. Parametry symulacji Parametry symulacji ustawiamy w oknie modelu przez menu Simulation Configuration Parameters... lub skrótem Ctrl+E. Możemy ustawić m.in.: 1. Czas początku (Start time) i końca symulacji (Stop time). 2. Metodę całkowania numerycznego (Solver). 3. Parametry metody rozwiązywania: Typ (Type): ze stałym (Fixed-step) lub zmiennym (Variable-step) krokiem całkowania. Minimalny (Min step size) i maksymalny krok (Max step size). 3.5. Uruchomienie symulacji Symulację uruchamiamy z menu Simulation Start, skrótem Ctrl+T lub ikoną na pasku. 7
4. Literatura [1 3] 1. Tadeusiewicz, R., Jaworek, J., Kańtoch, E., Miller, J., Pięciak, T., Przybyło, J.: Wprowadzenie do modelowania systemów biologicznych oraz ich symulacji w środowisku MATLAB. UMCS, Lublin (2012). 2. Murray, J.D.: Mathematical Biology : I. An Introduction, Third Edition. Springer (2002). 3. Brauer, F., Castillo-Chavez, C.: Mathematical models in population biology and epidemiology. Springer (2012). 8