Evolution of a bistable population
Date: 4 September 2013

x_0

x_0=

Time (t)

x

state variable=

plot versus time

α=

β=

r=

t_{max}=

x_{max}=

advanced options

t_{max}=

dt=

b = 500
r = 0.2
a = 2000
phaselineinitial = Ray((0, 0), (0, 1))
A = Point(phaselineinitial)
x0 = 600
InputBox1 = Textfield(x0)
tmax = 30
xmax = 3200
inputBox2 = Textfield(variable)
text2 = RotateText("Population size " + variable + "(t)", 1.5708)
text3: "" + variable + "_0"
text4: "" + variable + "_0="
dt = 0.01
solutionlocus = SolveODE((((r * y) * (1 - y / a)) * (y / b - 1)), 0, x0, tmax, dt)
phaseline = Ray((0, 0), (1, 0))
B = Point(phaseline)
text5: "Population size " + variable + "(t)"
t = 0 (slider from 0 to tmax, step dt)
solutionlist = First(solutionlocus, Length[solutionlocus])
text6: "" + variable + "(t)"
text7: "" + variable + "(t)"
c = Ray((t, 0), (t, 1))
text8: "" + variable + "_0"
C = Element(solutionlist, t / dt + 1)
D: (y(Element[solutionlist, t / dt + 1]), 0)
tminwin: ((-0.3) * tmax)
xminwin: ((-0.2) * xmax)
xt: y(Element[solutionlist, t / dt + 1])
plottime = false
inputBox1 = Textfield(a)
inputBox3 = Textfield(b)
inputBox4 = Textfield(r)
inputBox5 = Textfield(tmax)
inputBox6 = Textfield(xmax)
advancedoptions = false
text10: "" + variable + "_{max}="
maxdots = 5000
populationdisplayed = Sequence((RandomUniform[tminwin, tmax], RandomUniform[xminwin, xmax]), i, 1, Min[round(xt), maxdots])
text9: "" + variable + "(t)=" + xt + ""
inputBox7 = Textfield(dt)