\documentclass{article}
\usepackage[affil-it]{authblk}
\usepackage{graphicx}
\usepackage[space]{grffile}
\usepackage{latexsym}
\usepackage{textcomp}
\usepackage{longtable}
\usepackage{tabulary}
\usepackage{booktabs,array,multirow}
\usepackage{amsfonts,amsmath,amssymb}
\providecommand\citet{\cite}
\providecommand\citep{\cite}
\providecommand\citealt{\cite}
\usepackage{url}
\usepackage{hyperref}
\hypersetup{colorlinks=false,pdfborder={0 0 0}}
\usepackage{etoolbox}
\makeatletter
\patchcmd\@combinedblfloats{\box\@outputbox}{\unvbox\@outputbox}{}{%
\errmessage{\noexpand\@combinedblfloats could not be patched}%
}%
\makeatother
% You can conditionalize code for latexml or normal latex using this.
\newif\iflatexml\latexmlfalse
\providecommand{\tightlist}{\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}%
\AtBeginDocument{\DeclareGraphicsExtensions{.pdf,.PDF,.eps,.EPS,.png,.PNG,.tif,.TIF,.jpg,.JPG,.jpeg,.JPEG}}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\begin{document}
\title{The Search for Chaos and Species Response in Lotka-Volterra Systems}
\author{Daniel Lucero}
\affil{California State University, Chico}
\date{\today}
\maketitle
\section*{Abstract}
{\label{219335}}
An attempt at a computational model built using the programming language
Python in order to study predator prey systems, and specifically how
chaos in those systems ensues. Varying parameters within a predator prey
system can prelude the result of unpredictable chaotic behavior. Using
generated plots of population and growth dynamics over time, trends in
whether a species rises to survive or vanquish will become visually
malleable, while demonstrating how altered parameters may cause one
species to affect another. The search for chaos resulted in the search
for a point at which chaos might actually be enabled to grow, which
proved to be rare and difficult to find and led to the search for
oscillations in a multi-species system rather than chaos.
\par\null
\section*{Introduction}
{\label{769813}}
The Lotka-Volterra equations were created independently by Alfred Lotka
and Vito Volterra in 1925 and 1926 respectively. Alfred Lotka
(1880-1949) was a chemist, demographer, ecologist, and mathematician.
Vito Volterra (May 3, 1860-October 11, 1940) was a mathematician and
physicist.~ Initially the equations were inspired by Lotka's interest in
chemical reactions and how chemical concentrations oscillate. At nearly
the same time Volterra derived differential equations in the same form
to study predator fish populations in the Adriatic Sea during World War
I. Both Lotka and Volterra have inspired applications of mathematics for
analyzing predator-prey systems, along with a great amount of literature
on the subject~\cite{scholarpedia}.~
\par\null
\section*{Materials and Methods}
{\label{962249}}
Computational exercise of the Lotka-Volterra equations were done by
methods of a differential equation solver using the programming language
Python on the interface Spyder (Python 3.5). The solver chosen was
scipy.integrate.odeint. The requirements to run odeint are some decided
initial conditions, a defined function of the interactions between
species, and an input of constant parameters within said species
functions.~
\par\null
In order for a predator-prey system to become chaotic it is required
that at least 4 species be involved in what could be an N-species
system, as can be described by the general form of the Lotka-Volterra
coupled differential equations~\cite{competition}.
\par\null
N-species Lotka-Volterra Equation, where r represents the growth rate of
a species, x is an initial population number,~\(\alpha\) is the
effect a species feels from another species, and K is the carrying
capacity of a species (the limit to how large a species can grow based
on a number of natural factors, like available water in a given area),
are as follows, with first the general form,
\par\null
\(\frac{dx_i}{dt}\ =\ r_ix_i\left(1-\frac{\Sigma_{j=1}^N\ \alpha_{ij}x_j}{K_i}\right)\) ,
\par\null
and then for a 4 species system,
\par\null
\(\frac{dx_1}{dt}\ =\ r_1x_1\left(1-\frac{\left(\ x_1+\alpha_{12}x_2+\alpha_{13}x_3+\alpha_{14}x_4\right)}{K_1}\right)\)
\par\null
\(\frac{dx_2}{dt}\ =\ r_2x_2\left(1-\frac{\left(\ x_2+\alpha_{21}x_1+\alpha_{23}x_3+\alpha_{24}x_4\right)}{K_2}\right)\)
\par\null
\(\frac{dx_3}{dt}\ =\ r_3x_3\left(1-\frac{\left(\ x_3+\alpha_{31}x_1+\alpha_{32}x_2+\alpha_{34}x_4\right)}{K_3}\right)\)
\par\null
\(\frac{dx_4}{dt}\ =\ r_4x_4\left(1-\frac{\left(\ x_4+\alpha_{41}x_1+\alpha_{42}x_2+\alpha_{43}x_3\right)}{K_4}\right)\) .
\par\null
\section*{Results}
{\label{708925}}
After taking a closer look into how to approach the search for the
finding initial conditions and their associated parameters, it became
reasonable to cut down the number of species from 4 to just 2 species
for the sake of having a smaller area to search within. For a 4 species
system there would've been 20 total parameters and 4 initial conditions
to determine, and after reducing to just a 2 species system the amount
of parameters became only 6. After fixing the carrying capacity
K\textsubscript{i} and the growth rates r\textsubscript{i}, only 2
parameters were left to determine at the very least. Reducing the amount
of parameters to search for was important because the methods used to
find them involved a series of nested for loops, each loop running a
range of values to test independently each parameter in
scipy.optimize.root, a root solver in Python. Searching
for~\(\alpha_{ij}\) alone for a 4 species system, testing 10
different values independently for each~\(\alpha_{ij}\) corresponded
to running the root solver 10\textsuperscript{12} times, which is far
too much, and would've become increasingly more had other parameters
decided to have been varied as well. With just a 2 species system the
amount of calculations for the computer were greatly reduced, even while
varying the growth rates (r\textsubscript{i}), effects species have on
one another (\(\alpha_{ij}\)), and carrying capacites
(K\textsubscript{i}), with i =~ 1, 2, 3, etc. for~ species \# i. The
resulting Lotka Volterra equations thus became as follows.
\par\null
\(\frac{dx_1}{dt}\ =\ r_1x_1-\frac{r_1x_1^2}{K_1}\ -\ \frac{r_1x_1x_2\alpha_{12}}{K_1}\)
\(\frac{dx_2}{dt}\ =\ r_2x_2-\frac{r_2x_2^2}{K_2}-\frac{r_2x_1x_2\alpha_{21}}{K_2}\)
\par\null
Since reducing the amount of species in the system modeled from 4 to 2,
the search switched to finding the right parameters that would allow
species populations to oscillate around each other instead of
determining parameters that would allow for chaos, as determined by many
others in the past, 4 species are required for a system of this nature
to be chaotic\cite{competition}. While solutions for initial populations
were found, along with their associated parameters, all solutions tested
in odeint only showed populations that would either die, exponentially
grow out of control, or stay constant. It appears that finding solutions
that will just oscillate continuously around an equilibrium point after
a small perturbation is a rare event. It was never resolved as to how to
create species that interact with each other just enough to push and
pull on one others populations, but after spending many hours searching
for parameters and initial population conditions, it became apparent
that the real work in modeling lies in coming up with ways
to~systematically and efficiently cycle through test values that would
yield candidates with the correct attributes, while allocating those
values in an organized way to further be experimented on through the
Lotka Volterra model itself. Creating a model is not impossible, but
deciding the right values to pass through that model is where the
challenge resides. Further refinement of the parameter search procedure,
and a larger scope for which to hunt in may one day yield the correct
values to demonstrate an oscillatory system, although inevitably the
larger the scope to look within,~ the more time required for the
computer to perform its calculations and typically magnitudes more
calculations turns into much, much more time to twiddle thumbs.
\par\null
\selectlanguage{english}
\FloatBarrier
\bibliographystyle{plain}
\bibliography{bibliography/converted_to_latex.bib%
}
\end{document}