2. Alapfeltevések és a logisztikus egyenlet

Hasonló dokumentumok
Dinamikai rendszerek, populációdinamika

Populációdinamika. Számítógépes szimulációk szamszimf17la

Inga. Szőke Kálmán Benjamin SZKRADT.ELTE május 18. A jegyzőkönyv célja a matematikai és fizikai inga szimulációja volt.

Bolygómozgás. Számítógépes szimulációk 1n4i11/1. Csabai István tavasz. ELTE Komplex Rendszerek Fizikája Tanszék csabaiθcomplex.elte.

Differenciálegyenletek numerikus megoldása

BIOMATEMATIKA ELŐADÁS

Feladatok Differenciálegyenletek II. témakörhöz. 1. Határozzuk meg a következő elsőrendű lineáris differenciálegyenletek általános megoldását!

Bevezetés a programozásba. 8. Előadás: Függvények 2.

Populációdinamika és modellezés. A populációk változása populációdinamika. A populáció meghatározása. Modellezés

Bevezetés a programozásba. 11. Előadás: Esettanulmány

Differenciálegyenletek numerikus integrálása április 9.

Bevezetés a kaotikus rendszerekbe

Fajok közötti kapcsolatok

Programozás II. 2. Dr. Iványi Péter

Predáció populációdinamikai hatása

Differenciálegyenletek. Vajda István március 4.

1. Alapok. Programozás II

Modellezés. Fogalmi modell. Modellezés. Modellezés. Modellezés. Mi a modell? Mit várunk tőle? Fogalmi modell: tómodell Numerikus modell: N t+1.

Annak a function-nak a neve, amiben letároltuk az egyenletünket.

(kidolgozta: Dr. Nagy Zoltán egyetemi adjunktus)

3D számítógépes geometria 2

y + a y + b y = r(x),

3. Fékezett ingamozgás

Közönséges differenciál egyenletek megoldása numerikus módszerekkel: egylépéses numerikus eljárások

Sorozatok határértéke SOROZAT FOGALMA, MEGADÁSA, ÁBRÁZOLÁSA; KORLÁTOS ÉS MONOTON SOROZATOK

Lagrange egyenletek. Úgy a virtuális munka mint a D Alembert-elv gyakorlati alkalmazását

Sejtautomaták. Szőke Kálmán Benjamin - SZKRADT.ELTE május 17.

valós számot tartalmaz, mert az ilyen részhalmazon nem azonosság.

Populációdinamikai modellek stabilitásvizsgálata

Abszolútértékes és gyökös kifejezések Megoldások

Tartalom. 1. Állapotegyenletek megoldása 2. Állapot visszacsatolás (pólusallokáció)

Szokol Patricia szeptember 19.

Kutatói pályára felkészítı akadémiai ismeretek modul

Bevezetés a programozásba. 9. Előadás: Rekordok

Egyenletek, egyenletrendszerek, egyenlőtlenségek Megoldások

Programozási alapismeretek :: beadandó feladat. Felhasználói dokumentáció. Molnár Tamás MOTIABT.ELTE

differenciálegyenletek

a) A logaritmus értelmezése alapján: x 8 0 ( x 2 2 vagy x 2 2) (1 pont) Egy szorzat értéke pontosan akkor 0, ha valamelyik szorzótényező 0.

Géptermi zh-írás forgatókönyve

Rend, rendezetlenség, szimmetriák (rövidített változat)

DIFFERENCIÁLEGYENLETEK. BSc. Matematika II. BGRMA2HNND, BGRMA2HNNC

Ingák. Számítógépes szimulációk fn1n4i11/1. Csabai István, Stéger József

Maximum kiválasztás tömbben

Bevezetés a programozásba. 6. Előadás: C++ bevezető

BUDAPESTI MŐSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM

Folytonos rendszeregyenletek megoldása. 1. Folytonos idejű (FI) rendszeregyenlet általános alakja

INFORMATIKA tétel 2019

Hurokegyenlet alakja, ha az áram irányával megegyező feszültségeséseket tekintjük pozitívnak:

Bevezetés a programozásba I.

Programozási nyelvek I. 5. előadás (Gregorics Tibor anyagának felhasználásával)

Runge-Kutta módszerek

DINAMIKAI VIZSGÁLAT ÁLLAPOTTÉRBEN Dr. Aradi Petra, Dr. Niedermayer Péter: Rendszertechnika segédlet 1

Programozás C++ -ban 2007/1

Összefoglalás és gyakorlás

Programozás II. 4. Dr. Iványi Péter

Populációdinamikai modellek

Kaotikus dinamika. Dióssy Miklós - WXPC5Q. Komplex Rendszerek Szimulációs Módszerei. A jegyzőkönyvet készítette: Jegyzőkönyv

Felvételi vizsga mintatételsor Informatika írásbeli vizsga

A MATEMATIKA NÉHÁNY KIHÍVÁSA

Bevezetés Kiíratás Beolvasás Formázás Fájlkezelés Gyakorló feladatok C++ I/O. Bevezetés. Izsó Tamás február 20. Izsó Tamás C++ I/O / 1

4. Laplace transzformáció és alkalmazása

Baran Ágnes, Burai Pál, Noszály Csaba. Gyakorlat Differenciálegyenletek numerikus megoldása

Reakciókinetika és katalízis

Matematika II képletek. 1 sin xdx =, cos 2 x dx = sh 2 x dx = 1 + x 2 dx = 1 x. cos xdx =,

3. előadás Stabilitás

Numerikus módszerek. 9. előadás

Konjugált gradiens módszer

Lotka Volterra-féle populációdinamikai modellek vizsgálata

Populáció A populációk szerkezete

Matematikai alapok. Dr. Iványi Péter

"Flat" rendszerek. definíciók, példák, alkalmazások

Meghatározás: Olyan egyenlet, amely a független változók mellett tartalmaz egy vagy több függvényt és azok deriváltjait.

Exponenciális és logaritmikus kifejezések Megoldások

Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1

Matematika III előadás

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

3. Lineáris differenciálegyenletek

(1 + (y ) 2 = f(x). Határozzuk meg a rúd alakját, ha a nyomaték eloszlás. (y ) 2 + 2yy = 0,

Szerző. Varga Péter ETR azonosító: VAPQAAI.ELTE cím: Név: Kurzuskód:

Programozás C és C++ -ban

Bevezetés a programozásba I.

Determinisztikus folyamatok. Kun Ferenc

3. Fuzzy aritmetika. Gépi intelligencia I. Fodor János NIMGI1MIEM BMF NIK IMRI

MODELLEZÉS - SZIMULÁCIÓ

Bevezetés a programozásba I 10. gyakorlat. C++: alprogramok deklarációja és paraméterátadása

PÉLDÁK ERŐTÖRVÉNYEKRE

1. Példa. A gamma függvény és a Fubini-tétel.

Programozás C nyelven (3. ELŐADÁS) Sapientia EMTE

GAZDASÁGMATEMATIKA KÖZÉPHALADÓ SZINTEN

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI EMELT SZINT Abszolútértékes és Gyökös kifejezések

Differenciálegyenletek december 13.

Feladatok a Diffrenciálegyenletek IV témakörhöz. 1. Határozzuk meg következő differenciálegyenletek általános megoldását a próba függvény módszerrel.

Matematika III. harmadik előadás

Függvények int, long 1. Adott a mellékelt f alprogram.

6. Függvények. 1. Az alábbi függvények közül melyik szigorúan monoton növekvő a 0;1 intervallumban?

Számítógépvezérelt irányítás és szabályozás elmélete (Bevezetés a rendszer- és irányításelméletbe, Computer Controlled Systems) 7.

Programozás II gyakorlat. 8. Operátor túlterhelés

Kalkulus 2., Matematika BSc 1. Házi feladat

Márkus Zsolt Tulajdonságok, jelleggörbék, stb BMF -

Feladatok az 5. hétre. Eredményekkel és teljesen kidolgozott megoldásokkal az 1,2,3.(a),(b),(c), 6.(a) feladatokra

Átírás:

Populáció dinamika Szőke Kálmán Benjamin - SZKRADT.ELTE 22. május 2.. Bevezetés A populációdinamika az élőlények egyedszámának és népességviszonyainak térbeli és időbeli változásának menetét adja meg. Habár a leírás során használt differenciálegyenletek csak közelítését adják meg a valóságnak, mégis érdekes tapasztalatokat és motívumokat kaphatunk meg belőlük. A populációdinamika tekinthető egy általános keretrendszernek, melyben ragadozók, növényevők és ezek tápláléka szerepel, ám könnyen behelyettesíthetünk szinte ugyanazon egyenletekbe más-más paramétereket (koncentráció, katalizátor), és látszik, hogy a kialakuló dinamika hasonló mintázatokat fog követni. 2. Alapfeltevések és a logisztikus egyenlet Tekintsünk tehát egy populációt, mely n darab egyedből áll. Ennek változása a t idő függvényében, első ránézésre (ha más befolyásoló tényező nincs) a populáció létszámával arányos lesz. Legyen a az adott populációra jellemző szaporodási ráta, vagyis t idő alatt ennyi utód jön világra. n t + t = n t + an t Ha t időt elég rövid tartományra nézzük, akkor határesetben a fenti egyenlet a dn dt = an kifejezésbe megy át. A megoldás pedig a valóságban is tapasztalt exponenciális növekedést fogja megadni. n = exp at

Persze a valóságban egy populáció növekedése sokkal több tényezőtől függ, vizsgáljuk meg először, hogy hogyan változik az egyedszám a d halálozási ráta bevezetésével. dn = an dn dt Ebben az esetben megmarad az exponenciális görbe, azonban értékkészlete alapján ez csökkenő vagy növekedő lesz, ha konstans létszámú populáció kapunk, akkor az nem lesz stabil. Második közelítésként persze bevezethetjük az élelemforrás korlátosságát, ennek hatását a populáció egyedszámának változására egy szorzótényezővel szemléltethetjük. dn = rnf (n) dt Ha feltevésünk szerint a rendelkezésre álló élelemkészlet elegendő egy maximálisan k (kapacitás) létszámú populáció ellátásához, akkor F(k)=, tehát F() nem enged további szaporodást (kis populáció esetében F() nem módosítja az eredeti összefüggést F()=). Ezt a feltételt az F(n)=-n/k egyenlet elégíti ki. Behelyettesítve tehát az eredeti differenciálegyenlet az alábbi kifejezésre módosul. dn ( dt = rn n ) k Ezt nevezzük a populációdinamika logisztikus egyenletének, amely megfelelő skálázás mellett n/k=x a következő alakra hozható. dx = rx ( x) dt Ennek megoldása r-től és x kiindulási értékétől függően csökkenő vagy növekvő szigmoid jellegű görbe. x (t) = ( ) + x exp rt A logisztikus egyenlet tehát egy nemlineáris differenciálegyenlet, és ott vannak úgynevezett fixpontjai, ahol a dx/dt=. Jelen esetünkben ez x= és x= helyen van. Ezek a pontok lehetnek stabilak és instabilak is, hiszen ha a fixpontból kitérítjük visszatérhet oda vagy exponenciálisan eltávolodhat a megoldás. Látható tehát, hogy ezek vizsgálata perturbációkkal a legegyszerűbb. Legyen a differenciálegyenlet a dx dt = f (x) 2

alakú. Innen kis perturbációval kitérítve kapjuk a x (t) = x + ɛ (t) alakú lineáris közelítést. Ezt Taylor-sorba fejtve, majd a magasabb rendű tagok elhagyásával kapjuk a ɛ (t) = ɛ () exp f (x ) t alakú megoldást. Ez akkor lesz stabil, ha t esetben ɛ (t). 3. Két faj versengése Ha egy adott területen két faj küzd egyazon táplálékért, akkor ezek kölcsönhatásba lépnek egymással és a gyorsabban szaporodó, vagy valamely más tulajdonságát tekintve előnyben lévő faj akár ki is szoríthatja a másikat a területről teljesen. Legyen a két faj differenciálegyenlete: dn dt = r n dn 2 dt = r 2n 2 ( n k ( n 2 k 2 A versengés szerint, ha az egyik faj szaporodik, akkor mindkét faj számára kevesebb eleség jut, azaz az egyenlet jobb oldala negatív részében jelentkezik a csatolás: ) ) ( dn dt = r n n + αn 2 dn 2 dt = r 2n 2 k ( n 2 + βn k 2 Itt α és β dimenzió nélküli paraméterek, kifejezi az egyes fajok élelemfogyasztásának arányát. Az egyenletekben szereplő paraméterek más-más értékeinél vizsgáljuk a kialakuló rendszereket. ) ) 3

4. Eredmények 4.. Euler-módszer, Runge-Kutta módszer, Analitikus megoldás Első feladat a numerikus és analitikus megoldások különbségének ábrázolása volt, vagyis hogy az eljárások mennyire különböznek egymástól. Az Eulermódszert és az adaptív Runge-Kutta módszert hasonlítottam össze az analitikus megoldással. 4... Euler-módszer #include <cmath> #include <fstream> #include <iostream> #include <string> using namespace std; int main(){ cout << "Euler modszer populacio dinamika" << "Add meg r-t es y()-t: "; double r, y, tmax, dt, t; string FileName; cin >> r >> y; cout << "Add meg time t_max-t: "; cin >> tmax; cout << "Add meg a kimeneti fájl nevet: "; cin >> FileName; cout << " Add meg t_-t: "; cin >> t; cout << " Add meg dt-t: "; cin >> dt; ofstream datafile(filename.c_str()); y=dt*r*y*(-y); datafile << t << \t << y << \n ; while (t < tmax){ t+=dt; y+=dt*r*y*(-y); datafile << t << \t << y << \n ; datafile.close(); 4..2. Runge-Kutta módszer A Runge-Kutta módszerhez az inga szimulációja során is használt vector.hppt, és odeint.hpp-t használtam. #include <cmath> #include <cstdlib> #include <iostream> #include <fstream> #include <string> using namespace std; #include "vector.hpp" #include "odeint.hpp" 4

using namespace cpl; const double pi = 4 * atan(.); Vector f(const Vector& x) { double t = x[], y = x[], r=; Vector f(2); f[] = ; f[] = r*y*(-y); return f; int main() { string FileName; cout << "Add meg r-t es y()-t: "; double y, r, tmax; cin >> y >> r; cout << "Add meg t_max-t: "; cin >> tmax; cout << "Add meg a kimeneti fájl nevet: "; cin >> FileName; double dt =., accuracy = e-6, t=; ofstream datafile(filename.c_str()); Vector x(2); x[] = t; x[] = y; while (t < tmax) { adaptiverk4step(x, dt, accuracy, f); t = x[], y = x[]; datafile << t << \t << y << \n ; datafile.close();.9 Euler adapt rk4 Analítikus.8.7.6 x(t).5.4.3.2. 2 4 6 8 2. ábra. RK4, Euler, Analitikus 5

x 7 8 6 4 RK4 Analitikus 2 2 4 6 8 2 3 4 5 6 7 8 9 2. ábra. RK4 Analitikus.5.5 Euler Analitikus..5.2.25.3.35 2 3 4 5 6 7 8 9 3. ábra. Euler Analitikus 6

4..3. Csatolt logisztikus modell Az Euler-módszerrel az eredmények jól vissza adták a jegyeztben megtalálható logisztikus egyenlet megoldásait, különböző r értékekre..9.8.7.6 x(t).5.4.3.2. 2 3 4 5 6 7 8 9 4. ábra. r = 7

.9.8.7.6 x(t).5.4.3.2. 2 3 4 5 6 7 8 9 5. ábra. r =.9.8.7.6 x(t).5.4.3.2. 2 3 4 5 6 7 8 9 6. ábra. r = 8

.9.8.7.6 x(t).5.4.3.2. 2 3 4 5 6 7 8 9 7. ábra. r =.5.9.8.7.6 x(t).5.4.3.2. 2 3 4 5 6 7 8 9 8. ábra. r = 9

.9.8.7.6 x(t).5.4.3.2. 2 3 4 5 6 7 8 9 9. ábra. r =.5 4.2. Fajok erőforrásért való versengése A szimuláció során igazolódik a kompetitív kizárás törvénye, vagyis α = β = esetén nem létezhet stabilan két faj. A két faj együttélése csak αk 2 < k és βk < k 2 esetén valósúl meg. #include <cmath> #include <fstream> #include <iostream> #include <string> using namespace std; int main(){ cout << "Euler modszer populacio dinamika" << "Add meg r-t es y()-t: "; double r, y, tmax, dt, t, r, r2, y, y2; string FileName; cin >> r >> y; r=r; r2=r; y=y; y2=y; cout << "Add meg alfa es beta erteket: "; double alfa, beta; cin >> alfa >> beta; cout << "Add meg k es k2 erteket: "; double k, k2; cin >> k >> k2; cout << "Add meg time t_max-t: "; cin >> tmax;

cout << "Add meg a kimeneti fájl nevet: "; cin >> FileName; cout << " Add meg t_-t: "; cin >> t; cout << " Add meg dt-t: "; cin >> dt; ofstream datafile(filename.c_str()); y=y+r*y*dt*(-(y+alfa*y2)/k); y2=y2+r2*y2*dt*(-(y2+beta*y)/k2); datafile << t << \t << y << y2 << \n ; while (t < tmax){ t+=dt; y+=y+r*y*dt*(-(y+alfa*y2)/k); y2+=y2+r2*y2*dt*(-(y2+beta*y)/k2); datafile << t << \t << y << y2 << \n ; datafile.close(); 4 α =.2 β = 2 8 db 6 4 2 5 5 2 25 3. ábra. Stabil faj

2 8 α = β = 6 4 2 db 8 6 4 2 5 5 2 25 3. ábra. Instabil faj 4.3. Lotka-Volterra modell #include <cmath> #include <fstream> #include <iostream> #include <string> using namespace std; int main(){ cout << "Euler modszer populacio dinamika" << "Add meg R-t es F-t: "; double R, F, tmax, dt, t; string FileName; cin >> R >> F; cout << "Add meg a es b erteket: "; double a, b; cin >> alfa >> beta; cout << "Add meg c es d erteket: "; double c, d; cin >> c >> d; cout << "Add meg time t_max-t: "; cin >> tmax; cout << "Add meg a kimeneti fájl nevet: "; cin >> FileName; cout << " Add meg t_-t: "; cin >> t; cout << " Add meg dt-t: "; cin >> dt; ofstream datafile(filename.c_str()); R=R+a*R*dt-b*R*F*dt; F=F-d*F*dt+c*F*R*dt; datafile << t << \t << R << F << \n ; 2

while (t < tmax){ t+=dt; R+=R+a*R*dt-b*R*F*dt; F+=F-d*F*dt+c*F*R*dt; datafile << t << \t << R << F << \n ; datafile.close(); 4 Nyúl Róka 2 8 db 6 4 2 2 3 4 5 6 7 8 9 2. ábra. b =.4, c =.4 3

9 8 7 6 Róka 5 4 3 2 2 4 6 8 2 4 Nyúl 3. ábra. b =.4, c =.4 2 8 6 4 2 db 8 6 4 2 2 3 4 5 6 7 8 9 4. ábra. b =., c =. 4

2 8 Róka 6 4 2 2 4 6 8 2 4 6 8 2 Nyúl Tartalomjegyzék 5. ábra. b =., c =.. Bevezetés 2. Alapfeltevések és a logisztikus egyenlet 3. Két faj versengése 3 4. Eredmények 4 4.. Euler-módszer, Runge-Kutta módszer, Analitikus megoldás.. 4 4... Euler-módszer....................... 4 4..2. Runge-Kutta módszer.................. 4 4..3. Csatolt logisztikus modell................ 7 4.2. Fajok erőforrásért való versengése................ 4.3. Lotka-Volterra modell...................... 2 Hivatkozások [] Jegyzet http://complex.elte.hu/ csabai/szamszim/simlec6.pdf 5