KMA/MM Lotka-Volterra Model Predátor Kořist Kamila Matoušková V Plzni, 2009 1
Obsah 1 Lotka-Voltera model... 3 2 Vznik modelu... 3 3 Formulace modelu... 3 4 Koeficienty modelu... 4 4.1 Stanovení koeficientů... 5 5 Řešení diferenciálních rovnic... 5 5.1 Analytické řešení... 5 5.2 Numerické řešení... 7 5.3 Porovnání získaných výsledků... 8 5.4 Populační graf... 9 5.5 Populační křivky... 10 5.6 Rovnovážný stav... 11 5.7 Simulink... 11 5.8 Změny parametrů modelu... 12 5.8.1 Parametr a... 12 5.8.2 Parametr b... 13 5.8.3 Parametr c... 14 6 Použití na reálných datech... 15 7 Zdroje... 16 8 Přílohy... 17 8.1 Matlab... 17 2
1 Lotka-Voltera model Lotka-Volterra model, který bývá označován jako model predátor-kořist, je jedním z nejjednodušších modelů popisujících interakci dravec x kořist. Jedná se o model populační dynamiky popisující vývoj počtu dravců v závislosti na počtu jejich kořisti. Je jedním z prvních pokusů o matematické vysvětlení mechanismů zabezpečujících druhovou koexistenci. 2 Vznik modelu Model je pojmenován po svých autorech, kterými byli Alfred J. Lotka (1880-1949) a Vito Volterra (1860-1940). Tento model vytvořili nezávisle na sobě v letech 1925 a 1926. Vito Volterra byl známý italský matematik, který ukončil svou kariéru v čisté matematice na začátku 20tých let. Jeho zeť, Humberto D'Ancona, byl biologem a zabýval se studií populace ryb v Jaderském moři. V roce 1926 D'Ancona shromáždil údaje o počtu všech prodaných ryb na rybích trzích v Rijece, Terstu a Benátkách a o procentním zastoupení predátorů (žralok, rejnok, atd) z let 1914 až 1923 a došel k následujícím závěrům - Během první světové války, kdy byl rybolov drasticky omezen, došlo k prudkému nárůstu predátorů. Byla nastolena přirozená rovnováha mezi predátory a kořistí - Po ukončení války, kdy byl rybolov obnoven, byla tato rovnováha porušena a došlo k úbytku predátorů Protože neexistovalo žádné ekologické vysvětlení tohoto jevu, požádal D'Ancona Volterru, aby vytvořil matematický model, který bude tento jev popisovat. Volterra vymyslel několik modelů popisujících interakci dvou a více druhů. Model predátor kořist byl prvním a nejjednodušším modelem. Alfred J. Lotka byl americky matematik a biolog, který formuloval mnoho podobných modelů jako Volterra. Jev predátor-kořist zkoumal na vztahu býložravců a jejich potravy. 3 Formulace modelu Model má následující předpoklady: Predátoři jsou plně závislí na své kořisti ve smyslu jediného zdroje potravy. Kořist má neomezené množství své potravy a je ohrožována pouze predátory. Kdyby neexistovali predátoři, druhý předpoklad by znamenal, že počet kořisti by rostl exponenciálně, neboli když x = x(t) je velikost populace kořisti v čase t, potom 3
Pokud predátory do modelu zahneme, lze předpokládat, že omezí růst populace kořisti. Míru jako budou predátoři lovit svou kořist, je označen jako koeficient predace. Velikost populace predátorů v čase t označíme y = y(t). K sestavení modelu ne nutné doplnit nezbytné podmínky: Míra střetu predátorů a kořisti je úměrná počtu jedinců v obou populacích Pevný poměr těchto střetů vede ke smrti kořisti Tyto podmínky vedou k závěru, že negativní složka růstu populace kořisti je úměrná produktu xy velikosti populace Nyní se zaměříme na populaci predátorů. Kdyby nebyla žádná potrava, populace by vymírala úměrně s počtem svých členů: (Nezapomeňme, že přirozená rychlost růstu populace je složena z míry porodnosti a úmrtnosti). V případě nedostatku potravy, chybí prostředky na podporu porodnosti. Ale pokud potrava je, potom míra porodnosti predátorů je úměrná úmrtnosti kořisti a platí: Shrneme-li uvedené podmínky, získáme Lotka-Volterra Predátor-Kořist Model: Kde a, b, c, a p jsou kladné konstanty 4 Koeficienty modelu Model má dvě proměnné x a y a několik parametrů: x = hustota populace kořisti y = hustota populace predátorů a = faktor množení kořisti b = koeficient predace c = faktor úhynu predátorů p = reprodukční míra predátorů na jednu kořist 4
4.1 Stanovení koeficientů 1. Stanovení hodnoty faktoru množení kořisti vychází z předpokladu absence predátorů 2. Odhad úmrtnosti kořisti se stanoví pomocí hodnoty k, která se rovná skutečné míře úmrtnosti dělené časem pozorování. Hodnota koeficientu predace se rovná hodnotě k opět dělené časem pozorování. Například: Berušky zabijí 60 mšic ze 100 ve dvou dnech. Potom: k = -ln(1-60/100) = 0.92, potom b = 0.92/2 = 0.46. 3. Odhad parametrů p a c: Parametry p a c se stanoví pomocí lineární regrese. Na osu x se vynáší počet kořisti a na osu y odhad míry růstu populace predátorů živících se touto kořistí. Po proložení přímky těmito body je získán vztah r p = px c a stanoveny hodnoty koeficientů. 5 Řešení diferenciálních rovnic Existují dva možné postupy řešení: analytické a numerické. Nejprve je zmíněno analytické řešení, ale pouze ilustrativně, protože pro výpočty bylo použito řešení numerické. Výpočtu byly vytvořeny v MS office excel a v softwaru MATLAB, kde byl vytvořen i simulink. 5.1 Analytické řešení Nejprve několik úprav: Integrace: 5
I. II. III. Maximum I. II. III. Maximum Ze vztahu [1], potom a) neexistuje řešení b) existuje právě jedno řešení x=x 0, y=y 0 c) K = λ M 1 Tedy má právě dvě řešení x m a x M, nemá řešení pro x < x m,, x > x M, právě jedno řešení pro pro x=x m,, x=x M,a právě dvě řešení pro x v intervalu (x m,,x M ), řešení jsou periodická. Průměrná hodnota x a y za dobu cyklu. x a y jsou periodická řešení soustavy predátor kořist s periodou T > 0 Důkaz: 6
5.2 Numerické řešení Numerická řešení diferenciálních rovnic bývají jednodušší a více univerzální (někdy problémy s konvergencí). 1) EXCEL - V tomto případě bylo použito Eulerovi metody. Jedná se o jednokrokovou metodu, která je nejjednodušší, ale i nejméně přesná. Využívá první stupeň Taylorova rozvoje extrapolace přímkou) Uvažujme následující diferenciální rovnici: Nejprve musí být stanoveny počáteční podmínky. Přepokládejme, že v čase to je hodnota funkce rovna x(to). Pak můžeme odhadovat hodnotu x v pozdějším (předcházejícím) časovém okamžiku, použitím rovnice: Eulerova metoda je velmi jednoduchá, ale k dosažení určité přesnosti musíme volit velmi malé intervaly. Hlavní zdrojem chyby Eulerově metody je odhad derivace na začátku období. Řešení se během sledovaného období mohou velmi měnit a numericky vypočtená hodnota může být od skutečného řešení velice vzdálena. Eulerova metoda může být zpřesňována, pokud je derivace odhadována ve středu intervalu. Nejprve je třeba odhadnout hodnotu funkce ve středu intervalu pomocí Eulerovi metody a následně je možné odhadnou derivaci ve středu intervalu. Kde k je hodnota funkce v centru intervalu 1 funkce na konci intervalu.. Nakonec je možné odhadnout hodnotu Tento postup je také označen jako dvoukroková Runge-Kuttova metoda. Na základě vypočtených hodnot jsou vykresleny grafy - populační graf a populační křivka. 7
2) MATLAB diferenciální rovnice Lotka-Voterova modelu jsou v matlabu vypočítány pomocí funkce ODE23. Hodnoty parametrů lze měnit v souboru params.m. Počáteční podmínky, popisující počet kořisti a predátorů na začátku pozorovaného období se mění přímo v souboru lotka_volterra.m (vektor z 0 ). Výpočet je volán příkazem lotka_volterra. Součástí výpočtu je stanovaní rovnovážného bodu a vykreslení populačního grafu Zdrojový kód je k dispozici v příloze. 5.3 Porovnání získaných výsledků Jak již bylo zmíněno, výstupy z jednotlivých programů tvoří populační grafy. Tyto grafy popisují vývoj populací kořisti a predátorů v čase. Jedná se o periodicky opakující se cyklus. Jeho fáze jsou zaznamenány na následujícím obrázku (A): B A Druhý graf se nazývá populační křivka. Jak již bylo zmíněno počet dravců a kořisti s časem osciluje, což se projeví v uzavřenosti křivky. Fáze této křivky jsou zobrazeny v předcházejícím obrázku na kružnici (B). Za hodnoty parametrů byly zvoleny následující hodnoty a zaznamenány následující výsledky: a=1, b=0,03, c=0,4, p=0,01 a hodnoty x 0 =15, y 0 =15 8
5.4 Populační graf EXCEL 160 Populační graf 140 120 100 80 60 Kořist Predátor 40 20 0 1 19 37 55 73 91 109 127 145 163 181 MATLAB Kořist Predátor Obě metody dávají přibližně stejné výsledky, ale řešení získaná pomocí Matlabu jsou přesnější (jsou periodická). 9
5.5 Populační křivky EXCEL Populační křivka získaná z excelu se postupně ustaluje, ale nelze přesně určit její polohu a tvar. 100 80 60 40 20 Populační křivka 0 0 50 100 150 MATLAB Matlab, který využívá funkce ode23 podává poměrně přesný výsledek. Pomocí matlabu lze vykreslit více populačních křivek najednou, přičemž různé křivky představují různé počáteční stavy počtu kořisti a dravců při zachování parametrů soustavy rovnic Na grafu jsou vykresleny populační křivky pro počáteční hodnoty populace kořisti a predátorů: [15;15], [25;25], [35;35], I v tomto případě lze jednoznačně konstatovat, že výsledky získané v Matlabu jsou přesnější. 10
5.6 Rovnovážný stav Výstupem Matlabu je i stanovení rovnovážného stavu, který má souřadnice Při zachování stávajících parametrů nastane rovnovážný bod v [40;100/3]. 5.7 Simulink Model byl vytvořen i pomocí simulinku. Parametry byly zachovány a za počáteční hodnoty bylo zvoleno [25,25], protože v tomto případě lze volit pouze jednu počáteční hodnotu. Výstupem je populační křivka: 11
Model vytvořený v simulinku má následující schéma: 5.8 Změny parametrů modelu 5.8.1 Parametr a 12
Faktor množení kořisti je postupně zvyšován z hodnoty 1 na 1,2 a 1,4. Tyto změny mají za následek: Roste populace kořisti Současně s růstem populace kořisti roste i populace predátorů Zkracuje se perioda jednotlivých cyklů 5.8.2 Parametr b Koeficient predace se postupně zvyšuje na hodnoty 0,03, 0,05 a 0,06, neboli zvyšuje se úmrtnost kořisti predátory. Tyto změny mají za následek: Je-li málo kořisti, predátoři téměř vymírají, následně jich je málo a tak dojde k přemnožení kořisti. Čím více kořisti mají predátoři potřebu ulovit, tím více se pak kořist přemnoží Prodlužuje se doba mezi jednotlivými cykly 13
5.8.3 Parametr c Faktor úhynu predátorů se postupně zvyšuje na hodnoty 0,4, 0,6 a 0,8. Tyto změny mají za následek: Dochází k růstu obou populací stejně jako v případě změny faktoru množení kořisti Prodlužuje se doba mezi jednotlivými cykly 14
5.8.3.1 Parametr p Reprodukční míra predátorů na jednu kořist se postupně zvyšuje na hodnoty 0,01, 0,03 a 0,05. Tyto změny mají za následek: Počet predátorů překročí počet kořisti Prodlužuje se interval mezi jednotlivými cykly 6 Použití na reálných datech Model predátor-kořist je nejčastěji spojován s vývojem populace rysů a sněžných zajíců v Kanadě. Na následujícím grafu je zobrazen vývoj počtu rusů a sněžných zajíců v letech 1985-1925. 15
Z grafu lze vyčíst několik zajímavých jevů: Pravidelnost mezi růstem a poklesem populací Růst populace zajíců je následována růstem populace rysů, po každém extrému v populaci zajíců následuje tentýž extrém v populaci rysů. Po zjištění a dosažení potřebných parametrů by model Lotka Volterra mohl vztah zajíců a rysů velmi dobře popisovat. Chtěla jsem model Lotka-Volterra použít v podmínkách České republiky. Nejlépe by podmínky modelu mohl splňovat vztah lišky obecné a zajíce polního. Bohužel se mi nepodařilo najít potřebná data. Český statistický úřad eviduje a zveřejňuje počet zajíců až od roku 1995 a počet lišek od roku 2003. Získaná data nejsou periodická. Na základě nedostatku hodnot bohužel nelze model se skutečností porovnat. (počet zajíců zeleně, počet lišek červeně). 7 Zdroje HTTP://HOME.COMCAST.NET/~SHAROV/POPECOL/LEC10/FULLMOD.HTML HTTP://WWW.CDS.CALTECH.EDU/~HINKE/COURSES/CDS280/PREDPREY.HTML HTTP://WWW.HIG.SE/~AJJ/LABMFI/CCP/MATERIALS/DIFFCALC/PREDPREY/PRED1.HTML HTTP://MATEMATIKA.CUNI.CZ/DL/ANALYZA/ANIMACE/K0043/DRAVEC/DRAVEC.HTML WWW.TULANE.EDU/~GGENTRY/ECOL/LEX/ECO04LECT15.PPT 16
8 Přílohy 8.1 Matlab params.m % parameters for diff eq a=1; b=0.03; c=0.4; p=0.01; %param=[a b c p]; lotka_volterra.m % lotka_volterra.m % Matlab file for the Preditor-Prey Models clear; params; xmin=0; xmax=160; ymin=0; ymax=100; hold on; z0=[15,15]'; [t,z]=ode23('de_rhs',[0,10],z0); x=z(:,1); y=z(:,2); plot(x,y,'r'); z0=[20,20]'; [t,z]=ode23('de_rhs',[0,10],z0); x=z(:,1); y=z(:,2); plot(x,y,'g') z0=[25,25]'; [t,z]=ode23('de_rhs',[0,10],z0); x=z(:,1); y=z(:,2); plot(x,y,'b') z0=[30,30]'; [t,z]=ode23('de_rhs',[0,20],z0); x=z(:,1); y=z(:,2); plot(x,y,'m') figure; plot(x,'g') hold on plot(y,'r') xs = c/p ys = a/b 17