Lecture slides for UCLA LS 30B, Spring 2020
License: GPL3
Image: ubuntu2004
We've seen oscillatory behavior before
Recall the Lotka–Volterra predator-prey model, one of the first models we studied in LS 30A.
Specifically, think back to the first version of this we ever looked at: sharks and tuna.
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
Cell In [1], line 12
9 initial_state = (Integer(20), Integer(5))
10 t_range = srange(Integer(0), Integer(200), RealNumber('0.1'))
---> 12 solution = desolve_odeint(vectorfield, initial_state, t_range, state_vars)
13 solution = np.insert(solution, Integer(0), t_range, axis=Integer(1))
14 tuna_plot = list_plot(solution[:,(Integer(0),Integer(1))], plotjoined=True, ymin=Integer(0),
15 color="lightblue", thickness=Integer(2), legend_label="$T$ (Tuna)")
File /ext/sage/9.8/src/sage/calculus/desolvers.py:1716, in desolve_odeint(des, ics, times, dvars, ivar, compute_jac, args, rtol, atol, tcrit, h0, hmax, hmin, ixpr, mxstep, mxhnil, mxordn, mxords, printmessg)
1713 des = [des]
1715 if ivar is None:
-> 1716 all_vars = set().union(*[de.variables() for de in des])
1717 ivars = all_vars - set(dvars)
1719 if len(ivars)==1:
File /ext/sage/9.8/src/sage/calculus/desolvers.py:1716, in <listcomp>(.0)
1713 des = [des]
1715 if ivar is None:
-> 1716 all_vars = set().union(*[de.variables() for de in des])
1717 ivars = all_vars - set(dvars)
1719 if len(ivars)==1:
File /ext/sage/9.8/src/sage/structure/element.pyx:494, in sage.structure.element.Element.__getattr__()
492 AttributeError: 'LeftZeroSemigroup_with_category.element_class' object has no attribute 'blah_blah'
493 """
--> 494 return self.getattr_from_category(name)
495
496 cdef getattr_from_category(self, name):
File /ext/sage/9.8/src/sage/structure/element.pyx:507, in sage.structure.element.Element.getattr_from_category()
505 else:
506 cls = P._abstract_element_class
--> 507 return getattr_from_other_class(self, cls, name)
508
509 def __dir__(self):
File /ext/sage/9.8/src/sage/cpython/getattr.pyx:356, in sage.cpython.getattr.getattr_from_other_class()
354 dummy_error_message.cls = type(self)
355 dummy_error_message.name = name
--> 356 raise AttributeError(dummy_error_message)
357 cdef PyObject* attr = instance_getattr(cls, name)
358 if attr is NULL:
AttributeError: 'FreeModule_ambient_field_with_category.element_class' object has no attribute 'variables'
But remember, there isn't just one trajectory! There are many!
Thought experiment: Suppose at some point, we kill off 75% of the sharks.
What will happen?
Thought experiment, continued: Now suppose we kill off 75% of the sharks at a different time in the cycle.
Will we get the same behavior?
The kind of behavior we just saw is extremely unusual in systems that occur in nature.
In most “real world” dynamical systems, if the system is oscillating, and something external to the system perturbs the state away from that oscillatory trajectory, the system will eventually return back to that original oscillatory trajectory.
Sound familiar?
This is the same idea as a stable equilibrium point: the system is in equilibrium, and if some external force perturbs the state away from that equilibrium point, the system will eventually return to that equilibrium point.
So we want to generalize the idea of stable equilibrium point so that it applies to oscillatory behavior, not just equilibrium behavior.
Definition: An attractor is a set of points* in the state space with the following properties:
A trajectory that starts within stays within , and
If a trajectory is perturbed a small distance away from , it will move back towards .
* The “set of points” here can be a single point, a curve, or even (in higher dimensional state spaces) a surface or larger region of the state space.
The simplest type of attractor consists of a single point. An attractor with a single point is better known as a stable equilibrium point!
Definition: An attractor for which the set is a curve that forms a closed loop is called a limit cycle attractor.
For a limit cycle attractor, the closed loop is itself a trajectory (meaning that the system oscillates around that loop). But if the state is perturbed slightly away from that loop, the resulting trajectory will move back towards the loop.
Another way of saying the same thing is as follows: any trajectory that gets close enough to the loop will move closer and closer to it.
A better predator-prey model
This one is called the Holling–Tanner model. You'll study it in your lab this week.
The assumptions of this model, and how to come up with the differential equations, will be covered in another video.
Differential equations:
Definition: When the solution of a differential equation approaches a limit cycle attractor (or any attractor), the part of the solution before it “reaches” the attractor is called the transient part of the solution. The rest, after the solution has gotten so close to the attractor that it's practically indistinguishable from the attractor itself, is called the steady state part of the solution, or the asymptotic part.
As the above definition notes, this concept of transient vs steady state parts of a solution applies to any attractor, not just a limit cycle.
So, in fact, we've seen examples of this before... with the one other type of attractor we've studied.
Below are some time series of the Allee effect model:
We've just seen that a solution that approaches a stable equilibrium point also has a transient part and a steady state part: the transient part is the part of the solution before the system reaches equilibrium; the steady state part is what happens after it has reached equilibrium, i.e. when it remains constant.
Often, we refer to the steady state behavior or asymptotic behavior of a solution, meaning what happens to the solution in the long run. We've now seen that steady state behavior can be either constant (a stable equilibrium point) or oscillating (a limit cycle attractor). Can you think of other types of steady state behavior a dynamical system could have?
Aside: You may have seen the word asymptotic or asymptote before, such as vertical or horizontal asymptotes of a graph in pre-calculus or calculus. In all of these contexts, the word refers to what happens as some variable approaches infinity. In the context of dynamical systems, the asymptotic behavior or asymptotic part of a solution is what happens to the behavior/solution as approaches .