Search
 
 
  Engleski
 
 
 
Open in this window (click to change)
Forum@DeGiorgi: Početna
Forum za podršku nastavi na PMF-MO
Login Registracija FAQ Smajlići Članstvo Pretražnik Forum@DeGiorgi: Početna

Lotka-volterra (zadatak)

Moja sarma
 
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Ostalo - ozbiljno -> Čistilište
Prethodna tema :: Sljedeća tema  
Autor/ica Poruka
von_neumann
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 27. 05. 2008. (21:26:18)
Postovi: (3)16
Sarma = la pohva - posuda
= 0 - 0

PostPostano: 22:15 uto, 27. 5. 2008    Naslov: Lotka-volterra Citirajte i odgovorite

reba mi pomoc u vezi jednog zadatka s diferencijalnim jednadzbama, pa ako bi netko bio dovoljno dobar da mi makar ukratko skicira kako bi se to trebalo rijesiti, bio bi jako zahvalan.
Dakle, radi se o zadatku gdje treba nacrtat graf za lotka volterra prey-hunter model.
Sada umjesto onog standardnoga sustava gdje imamo y1' = ay1 - by1y2 (prey) i y2' = cy1y2 - dy2(hunter) sustava promatramo linearizirani sustav u kojem imamo dolje navedeno.

y1'= (-db/c)y2

y2'=(ac/b)* y1


Sada ako imamo a=3,1 d=2,2 i c i d proizvoljne uz uvjet da je y1(prey)=200 a y2(hunter)=100 na pocetku treba napraviti graf.
Sada ako bih ja to stavio u excel tablicu s gornjim koeficijentima i pokusao nacrtat graf dobijem neku besmislicu koja ide u beskonacnost. Postoji li neki drugi nacin rjesavanja toga?
Ne studiram na pmf-u, a na faksu nikad nismo radili diferencijalne jednadzbe, jedina literatura mi je gugl. tj skuzio sam kako to otprilike funkcionira, ali sve to ide u beskonacnost....
reba mi pomoc u vezi jednog zadatka s diferencijalnim jednadzbama, pa ako bi netko bio dovoljno dobar da mi makar ukratko skicira kako bi se to trebalo rijesiti, bio bi jako zahvalan.
Dakle, radi se o zadatku gdje treba nacrtat graf za lotka volterra prey-hunter model.
Sada umjesto onog standardnoga sustava gdje imamo y1' = ay1 - by1y2 (prey) i y2' = cy1y2 - dy2(hunter) sustava promatramo linearizirani sustav u kojem imamo dolje navedeno.

y1'= (-db/c)y2

y2'=(ac/b)* y1


Sada ako imamo a=3,1 d=2,2 i c i d proizvoljne uz uvjet da je y1(prey)=200 a y2(hunter)=100 na pocetku treba napraviti graf.
Sada ako bih ja to stavio u excel tablicu s gornjim koeficijentima i pokusao nacrtat graf dobijem neku besmislicu koja ide u beskonacnost. Postoji li neki drugi nacin rjesavanja toga?
Ne studiram na pmf-u, a na faksu nikad nismo radili diferencijalne jednadzbe, jedina literatura mi je gugl. tj skuzio sam kako to otprilike funkcionira, ali sve to ide u beskonacnost....


[Vrh]
Korisnički profil Pošaljite privatnu poruku
Luuka
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 13. 02. 2007. (20:34:54)
Postovi: (925)16
Spol: muško
Sarma = la pohva - posuda
188 = 301 - 113
Lokacija: Hakuna Matata

PostPostano: 22:44 uto, 27. 5. 2008    Naslov: Citirajte i odgovorite

Ponešto možeš naći na ovom [url=http://en.wikipedia.org/wiki/Lotka-Volterra_equation]linku[/url]

A probaj nacrtat nešto sa konkkretnim brojevima (a,b,c,d) pa vidi dal ti crta besmislice...

a bi ovdje bilo brzina rađanja plijena, b brzina kojom populacija plijena pada pod utjecajem grabežljivaca, c brzina kojom populacija grabežljivaca raste pod utjecajem plijena (kojeg jedu) i d brzina umiranja grabežljivaca. Laički rečeno :D
Ponešto možeš naći na ovom linku

A probaj nacrtat nešto sa konkkretnim brojevima (a,b,c,d) pa vidi dal ti crta besmislice...

a bi ovdje bilo brzina rađanja plijena, b brzina kojom populacija plijena pada pod utjecajem grabežljivaca, c brzina kojom populacija grabežljivaca raste pod utjecajem plijena (kojeg jedu) i d brzina umiranja grabežljivaca. Laički rečeno Very Happy



_________________
"Bolje bi prolazio na faxu da sam na drogama nego na netu" - by a friend of mine
"Poslije spavanja doma spavanje bilo di mi je najdraža stvar" - by the same guy Very Happy
[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail
goranm
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 12. 11. 2002. (20:09:12)
Postovi: (906)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
218 = 249 - 31

PostPostano: 1:10 sri, 28. 5. 2008    Naslov: Citirajte i odgovorite

Ovakav linearan sustav se može svesti na diferencijalne jednadžbe drugog reda.

[latex]y_1=\dfrac{b}{ac}y_2' \Rightarrow y_1'=\dfrac{b}{ac}y_2''[/latex]

i to uvrštavamo u preostalu jednadžbu i dobivamo

[latex]\dfrac{b}{ac}y_2''=-\dfrac{db}{c}y_2 \Rightarrow y_2''+day_2=0[/latex]

Karakteristična jednadžba gornje dif. jdn. drugog reda je

[latex]x^2+da=0,[/latex] to jest [latex]x=\pm i \sqrt{da}[/latex] pa je [latex]y_2[/latex] dan kao kombinacija trigonometrijskih funkcija sin i cos, to jest

[latex]y_2(t)=A \cdot \cos{(\sqrt{da} \cdot t)}+B \cdot \sin{(\sqrt{da} \cdot t)}[/latex]

To je periodična funkcija koja ne ide u beskonačnost i upravo tako (periodično) trebaju izgledati i y1 i y2 u lotka-volterra modelu. A i B se određuju iz početnih uvjeta, y2(0)=100 i [latex]y_2'(t)=\dfrac{ac}{b}y_1(t) \Rightarrow y_2'(0)=\dfrac{ac}{b}\cdot 200[/latex]

Analogno se dolazi do jednadžbe rješenja za y1, no ako se treba samo crtati, možda je lakše nacrtati u nekom programu koji je bolje prilagođen matematici nego što je Excel, npr. Mathematica ili Maple u kojima se direktno mogu rješavati sustavi, egzaktno ili numerički.

Rješenje sustava je

[latex]y_1(t)=C \cdot \cos{(\sqrt{da} \cdot t)}+D \cdot \sin{(\sqrt{da} \cdot t)}[/latex]
[latex]y_2(t)=A \cdot \cos{(\sqrt{da} \cdot t)}+B \cdot \sin{(\sqrt{da} \cdot t)}[/latex]

Konstante A,B,C i D se određuju iz početnih uvjeta, tj.

[latex]y_1(0)=200,~y_1'(0)=-\frac{db}{c}\cdot 100 \\
y_2(0)=100,~y_2'(0)=\frac{ac}{b}\cdot 200.
[/latex]

Sada, ovisno o izboru parametara a,b,c i d graf bi trebao izgledati kao dvije "sinusoide" jedna iznad druge.


Evo kako Mathematica rješava problem za a=3,b=c=1,d=2:

[img]http://degiorgi.math.hr/forum/files/lotvol_163.jpg[/img]
Ovakav linearan sustav se može svesti na diferencijalne jednadžbe drugog reda.



i to uvrštavamo u preostalu jednadžbu i dobivamo



Karakteristična jednadžba gornje dif. jdn. drugog reda je

to jest pa je dan kao kombinacija trigonometrijskih funkcija sin i cos, to jest



To je periodična funkcija koja ne ide u beskonačnost i upravo tako (periodično) trebaju izgledati i y1 i y2 u lotka-volterra modelu. A i B se određuju iz početnih uvjeta, y2(0)=100 i

Analogno se dolazi do jednadžbe rješenja za y1, no ako se treba samo crtati, možda je lakše nacrtati u nekom programu koji je bolje prilagođen matematici nego što je Excel, npr. Mathematica ili Maple u kojima se direktno mogu rješavati sustavi, egzaktno ili numerički.

Rješenje sustava je




Konstante A,B,C i D se određuju iz početnih uvjeta, tj.



Sada, ovisno o izboru parametara a,b,c i d graf bi trebao izgledati kao dvije "sinusoide" jedna iznad druge.


Evo kako Mathematica rješava problem za a=3,b=c=1,d=2:




_________________
The Dude Abides
[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail
von_neumann
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 27. 05. 2008. (21:26:18)
Postovi: (3)16
Sarma = la pohva - posuda
= 0 - 0

PostPostano: 20:23 sri, 28. 5. 2008    Naslov: Pokusaj 1 dielomicno uspio Citirajte i odgovorite

Bok, puno hvala na ovak iscrpnom i detaljnom odgovoru, ali
ne mogu nikak natjerat mathematicu da mi izracuna za
200 zeceva i 100 lisica (a = 3.1, d = 2.2), b=c=1

Natipkao sam

nase = DSolve[{y1'[t] == -2.2*y2[t], y2'[t] == 3.1*y1[t], y1[0] == 200, y1'[0] == -220, y2[0] == 100, y2'[0] == 620}, {y1[t],y2[t]}, t]

i dobijem odgovor

DSolve::bvnul: For some branches of the general solution, the given \
boundary conditions lead to an empty solution. >>

sto god to bilo

probao sam s a=d=2.2 i tu dobijem rjesenje, ali mi to ne pomaze bash jer je zadano 3.1 i 2.2.

Takodjer mi nije jasan tvoj graf ... ovo je populaciski model, nije mi jasno
kako u šumi može biti - 200 zeceva ili lisica, graf izgleda kao i svi primjeri koje sam vidio na netu samo sto tvoj sijece os x, a svi primjeri na netu daju pozitivne vrijednosti i za minimume i maksimume. Mozes to popravit ili razjasnit ?
Unaprijed hvala na pojasnjenju.
Bok, puno hvala na ovak iscrpnom i detaljnom odgovoru, ali
ne mogu nikak natjerat mathematicu da mi izracuna za
200 zeceva i 100 lisica (a = 3.1, d = 2.2), b=c=1

Natipkao sam

nase = DSolve[{y1'[t] == -2.2*y2[t], y2'[t] == 3.1*y1[t], y1[0] == 200, y1'[0] == -220, y2[0] == 100, y2'[0] == 620}, {y1[t],y2[t]}, t]

i dobijem odgovor

DSolve::bvnul: For some branches of the general solution, the given \
boundary conditions lead to an empty solution. >>

sto god to bilo

probao sam s a=d=2.2 i tu dobijem rjesenje, ali mi to ne pomaze bash jer je zadano 3.1 i 2.2.

Takodjer mi nije jasan tvoj graf ... ovo je populaciski model, nije mi jasno
kako u šumi može biti - 200 zeceva ili lisica, graf izgleda kao i svi primjeri koje sam vidio na netu samo sto tvoj sijece os x, a svi primjeri na netu daju pozitivne vrijednosti i za minimume i maksimume. Mozes to popravit ili razjasnit ?
Unaprijed hvala na pojasnjenju.


[Vrh]
Korisnički profil Pošaljite privatnu poruku
goranm
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 12. 11. 2002. (20:09:12)
Postovi: (906)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
218 = 249 - 31

PostPostano: 20:51 sri, 28. 5. 2008    Naslov: Re: Pokusaj 1 dielomicno uspio Citirajte i odgovorite

[quote="von_neumann"]Bok, puno hvala na ovak iscrpnom i detaljnom odgovoru, ali
ne mogu nikak natjerat mathematicu da mi izracuna za
200 zeceva i 100 lisica (a = 3.1, d = 2.2), b=c=1

Natipkao sam

nase = DSolve[{y1'[t] == -2.2*y2[t], y2'[t] == 3.1*y1[t], y1[0] == 200, y1'[0] == -220, y2[0] == 100, y2'[0] == 620}, {y1[t],y2[t]}, t]

i dobijem odgovor

DSolve::bvnul: For some branches of the general solution, the given \
boundary conditions lead to an empty solution. >>

sto god to bilo

probao sam s a=d=2.2 i tu dobijem rjesenje, ali mi to ne pomaze bash jer je zadano 3.1 i 2.2.[/quote]
Ako nije rješivo direktno, onda probaj numerčki sa funkcijom NDSolve, znači
[code:1]nase = NDSolve[{y1'[t] == -2.2*y2[t], y2'[t] == 3.1*y1[t], y1[0] == 200, y2[0] == 100}, {y1[t], y2[t]}, {t, 0, 10}]

Plot[{y1[t] /. nase, y2[t] /. nase}, {t, 0, 10}]
[/code:1]
(za numeričko računanje dovoljna su dva uvjeta). Ovaj put kao rezultat ispisuje interpolirajuće funkcije, no to nije pretjerano bitno kod crtanja grafa.
[quote]
Takodjer mi nije jasan tvoj graf ... ovo je populaciski model, nije mi jasno
kako u šumi može biti - 200 zeceva ili lisica, graf izgleda kao i svi primjeri koje sam vidio na netu samo sto tvoj sijece os x, a svi primjeri na netu daju pozitivne vrijednosti i za minimume i maksimume. Mozes to popravit ili razjasnit ?
Unaprijed hvala na pojasnjenju.[/quote]
Rezultat je takav jer sustav koji je zadan nije pravi Lotka-Volterra model - uklonjeni su nelinearni članovi koji spašavaju situaciju. Ako bi riješio pravi LV model i postavio početne uvjete i koeficijente koji odgovaraju situaciji u stvarnosti, dobio bi graf koji ne ide ispod x osi.

U pravom LV modelu niti jedan graf ne ide ispod x osi jer ako u nekom trenutku npr. lisice izumru, to jest ako graf za y2 prvi dotakne x-os, tada nema grabežljivaca koji love zečeve pa se zečevi razmnožavaju eksponencijalno. Prevedeno u jednadžbe, to znači da u jednadžbi za zečeve, [latex]y_1'(t)=\alpha y_1(t)-\beta y_1(t)y_2(t)[/latex] nelinearni član nestaje jer je y2 jednak nuli za svaki t poslije onog trenutka u kojemu su izumrle lisice, pa onda imamo diferencijalnu jednadžbu kojoj je rješenje eksponencijalna funkcija, a eksponencijalna funkcija je uvijek iznad x osi.

Ako zečevi prvi izumru, to jest ako graf za y1 prvi dotakne x-os, tada u drugoj jednadžbi nestaje nelinarni član [latex]y_1(t)y_2(t)[/latex] budući je y1(t) jednak nuli za svaki t poslije onog trenutka u kojem su nestali svi zečevi. Kako se lisice neće imati čime hraniti, njihov broj će eksponencijalno padati (opet zato jer nema tog nelinearnog člana) i čim se za neki t dogodi da je y2(t)=0, za svaki slijedeći t će prirast (odnosno smrtnost) lisica biti 0 pa graf za y2 neće ići ispod x osi.
von_neumann (napisa):
Bok, puno hvala na ovak iscrpnom i detaljnom odgovoru, ali
ne mogu nikak natjerat mathematicu da mi izracuna za
200 zeceva i 100 lisica (a = 3.1, d = 2.2), b=c=1

Natipkao sam

nase = DSolve[{y1'[t] == -2.2*y2[t], y2'[t] == 3.1*y1[t], y1[0] == 200, y1'[0] == -220, y2[0] == 100, y2'[0] == 620}, {y1[t],y2[t]}, t]

i dobijem odgovor

DSolve::bvnul: For some branches of the general solution, the given \
boundary conditions lead to an empty solution. >>

sto god to bilo

probao sam s a=d=2.2 i tu dobijem rjesenje, ali mi to ne pomaze bash jer je zadano 3.1 i 2.2.

Ako nije rješivo direktno, onda probaj numerčki sa funkcijom NDSolve, znači
Kod:
nase = NDSolve[{y1'[t] == -2.2*y2[t], y2'[t] == 3.1*y1[t], y1[0] == 200, y2[0] == 100}, {y1[t], y2[t]}, {t, 0, 10}]

Plot[{y1[t] /. nase, y2[t] /. nase}, {t, 0, 10}]

(za numeričko računanje dovoljna su dva uvjeta). Ovaj put kao rezultat ispisuje interpolirajuće funkcije, no to nije pretjerano bitno kod crtanja grafa.
Citat:

Takodjer mi nije jasan tvoj graf ... ovo je populaciski model, nije mi jasno
kako u šumi može biti - 200 zeceva ili lisica, graf izgleda kao i svi primjeri koje sam vidio na netu samo sto tvoj sijece os x, a svi primjeri na netu daju pozitivne vrijednosti i za minimume i maksimume. Mozes to popravit ili razjasnit ?
Unaprijed hvala na pojasnjenju.

Rezultat je takav jer sustav koji je zadan nije pravi Lotka-Volterra model - uklonjeni su nelinearni članovi koji spašavaju situaciju. Ako bi riješio pravi LV model i postavio početne uvjete i koeficijente koji odgovaraju situaciji u stvarnosti, dobio bi graf koji ne ide ispod x osi.

U pravom LV modelu niti jedan graf ne ide ispod x osi jer ako u nekom trenutku npr. lisice izumru, to jest ako graf za y2 prvi dotakne x-os, tada nema grabežljivaca koji love zečeve pa se zečevi razmnožavaju eksponencijalno. Prevedeno u jednadžbe, to znači da u jednadžbi za zečeve, nelinearni član nestaje jer je y2 jednak nuli za svaki t poslije onog trenutka u kojemu su izumrle lisice, pa onda imamo diferencijalnu jednadžbu kojoj je rješenje eksponencijalna funkcija, a eksponencijalna funkcija je uvijek iznad x osi.

Ako zečevi prvi izumru, to jest ako graf za y1 prvi dotakne x-os, tada u drugoj jednadžbi nestaje nelinarni član budući je y1(t) jednak nuli za svaki t poslije onog trenutka u kojem su nestali svi zečevi. Kako se lisice neće imati čime hraniti, njihov broj će eksponencijalno padati (opet zato jer nema tog nelinearnog člana) i čim se za neki t dogodi da je y2(t)=0, za svaki slijedeći t će prirast (odnosno smrtnost) lisica biti 0 pa graf za y2 neće ići ispod x osi.



_________________
The Dude Abides
[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail
von_neumann
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 27. 05. 2008. (21:26:18)
Postovi: (3)16
Sarma = la pohva - posuda
= 0 - 0

PostPostano: 13:23 pet, 13. 6. 2008    Naslov: Citirajte i odgovorite

Želim se zahvalit na pomoći, pogotovo goranu m
projekt je ocjenjen 8/10, a na kraju balade je
dvojka sjela u index.

Hvala!
Želim se zahvalit na pomoći, pogotovo goranu m
projekt je ocjenjen 8/10, a na kraju balade je
dvojka sjela u index.

Hvala!


[Vrh]
Korisnički profil Pošaljite privatnu poruku
protein
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 27. 05. 2011. (11:52:47)
Postovi: (1)16
Sarma = la pohva - posuda
= 0 - 0

PostPostano: 12:01 pet, 27. 5. 2011    Naslov: Citirajte i odgovorite

znam da dižem topic iz mrtvih al me zanima jel zna tko kako bi se to realiziralo u sageu?

koliko vidim ne postoji ništa slično ndsolve funkciji u sageu :(

edit: sredjeno u pythonu ;)
znam da dižem topic iz mrtvih al me zanima jel zna tko kako bi se to realiziralo u sageu?

koliko vidim ne postoji ništa slično ndsolve funkciji u sageu Sad

edit: sredjeno u pythonu Wink


[Vrh]
Korisnički profil Pošaljite privatnu poruku
Prethodni postovi:   
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Ostalo - ozbiljno -> Čistilište Vremenska zona: GMT + 01:00.
Stranica 1 / 1.

 
Forum(o)Bir:  
Ne možete otvarati nove teme.
Ne možete odgovarati na postove.
Ne možete uređivati Vaše postove.
Ne možete izbrisati Vaše postove.
Ne možete glasovati u anketama.
You can attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2002 phpBB Group
Theme created by Vjacheslav Trushkin
HR (Cro) by Ančica Sečan