Otok zajcev in lisic(2)

Prejšnji primer dopolnimo še s travo – upoštevajmo, da se količina trave na otoku veča tako, kot je značilno za  naravno rast, in manjša zato, ker jo zajci jedo. Upoštevajmo tudi, da lahko zajci umirajo, če jim zmanjka trave. Vse to nas vodi do naslednjih diferencialnih enačb:

\[dz=(az-bz\cdot l-g\frac{z}{x})dt,\]

\[dl=(cl-d\frac{l}{z})dt.\]

 \[dx=(ex-fz\cdot x)dt,\]

Dodatne konstante so e, f in g. Prva opisuje rast trave,  druga meri njeno manjšanje zaradi zajcev, tretja pa pogin zajcev zaradi lakote.  Koda programa v Pythonu je naslednja:

from Tkinter import *
from math import sin,pi
root = Tk()
("symbol",8)
root.title("Zajci in lisice -V. Petruna, januar 2010")
can = Canvas(root, width = 1010, height = 1000, background = "white")
can.create_line(10,500,1000,500, width = 1, fill = "black")
can.create_line(10,500,10,10, width = 1, fill = "black")
x=10
z=100
l=10
a=6.
b=1
c=4.
d=10
e=13
f=0.8
g=0.65
dt=0.001
for t in range(10000):
    x=x+(e*x-f*x*z)*dt
    z=z+(a*z-b*z*l-g*z/x)*dt
    l=l+(c*l-d*l/z)*dt
    can.create_line(10+t*dt*100,500-x,11+t*dt*100,500-x, width = 2, fill = "green")
    can.create_line(10+t*dt*100,500-z,11+t*dt*100,500-z, width = 2, fill = "red")
    can.create_line(10+t*dt*100,500-l*5,11+t*dt*100,500-l*5, width = 2, fill = "blue")
can.pack(side = BOTTOM)
root.mainloop()

S temi konstantami dobimo naslednji izid:

Opazimo, da je dogajanje na otoku kar burno. Količina trave (zelena črta) nekaj časa niha,  nato pa pride do neomejenega razmnoževanja.Za zajce in lisice je to ugodno, od tu naprej se njihovo število periodično spreminja.

Naloga. Poskusi spremeniti  konstante tako, da bodo vse tri količine periodično nihale.

Prav lahko se zgodi, da tisto, kar se nam zdi periodično, to v resnici ni. Primer je spodnji graf:

Če ga pogledamo v 10 krat daljšem času, vidimo

kar pomeni, da bo trave zmanjkalo, nato pa tudi zajcev in lisic. Vse je odvisno od majhnih sprememb konstante f v spodnjem programu. Ta govori o tem, koliko trave popase posamezen zajec.

 

from Tkinter import *
from math import sin,pi
root = Tk()
("symbol",8)
root.title("Zajci in lisice -V. Petruna, januar 2010")
can = Canvas(root, width = 1010, height = 1000, background = "white")
can.create_line(10,500,1000,500, width = 1, fill = "black")
can.create_line(10,500,10,10, width = 1, fill = "black")
x=100
z=30
l=6
a=6.
b=1
c=4.
d=12
e=3.
f=9.06
g=0.67
dt=0.01
xfactor=10 #spreminjaj za razteg časovne osi 
for t in range(10000):
    x=x+(e*x-f*x/z)*dt
    z=z+(a*z-b*z*l-g*z/x)*dt
    l=l+(c*l-d*l/z)*dt 
    can.create_line(10+t*dt*xfactor,500-x,11+t*dt*xfactor,500-x, width = 2, fill = "green")
    can.create_line(10+t*dt*xfactor,500-z,11+t*dt*xfactor,500-z, width = 2, fill = "red")
    can.create_line(10+t*dt*xfactor,500-l*5,11+t*dt*xfactor,500-l*5, width = 2, fill = "blue")
can.pack(side = BOTTOM)
root.mainloop()

Vsaka podobnost z omenjenim otokom in našim planetom je zgolj naključje – ali pa tudi ne.

Ta vnos je objavil Vinc v Razno. Dodaj zaznamek do trajne povezave .

O Vinc

Končal gimnazijo v Črnomlju 1971, pričel honorarno poučevati na tej gimnaziji v šol.letu 1973/74, se v šol. letu 1976/77 zaposlil kot učitelj matematike, leta 1978 diplomiral iz pedagoške matematike pri dr. Niku Prijatelju s temo Galoisova teorija. Na gimnaziji in poklicni kovinarski šoli učil matematiko, fiziko in računalništvo ter informatiko, dokumentaristiko in arhivistiko. Dolgoletni mentor šahovskega, fotografskega, fizikalnega, računalniškega in<a \href{http://www2.arnes.si/48/sscrnomelj/astro.html}{ astronomskega} krožka. Absolvent 3. stopnje pedagoške fizike, v 90. letih član skupine za prenovo gimnazijske fizike, avtor programske opreme za merilno krmilni vmesnik, soavtor učbenikov za gimnazijo Fizika-Mehanika in Fizika-Elektrika. Mentor trinajstim raziskovalnim nalogam v okviru Gibanja Znanost mladini ter trem raziskovalnim nalogam v okviru Krkinih nagrad in številnim tekmovalcem iz logike, matematike, fizike in računalništva. Mentor \href{http://www2.arnes.si/48/ssnmcrnom5/sola/}{2. spletne strani šole}, pobudnik in od 2007 do 2010 urednik spletnih učilnic Srednje šole Črnomelj. Pobudnik šolske Facebook strani. Več najdete na njegovi \href{http://vincenc.petruna.com/}{spletni strani.}

1 thought on “Otok zajcev in lisic(2)

Komentiranje zaprto.