Description
Computer simulations provide a powerful tool for understanding ecological and evolutionary systems. Simulating Ecological and Evolutionary Systems in C models a diverse range of biological processes and systems, including competition, foraging, predation, mating systems, and life-history optimization, by simulating large collections of interacting individuals. Using the widely available computer programming language C, the book starts with elementary programs modeling stochastic birth-death processes, slowly increasing programming complexity as the chapters progress. All the important features of C are covered, including arrays, files, pointers, and structures, within biologically motivated simulations. Although computer simulations of extremely complicated biological processes are released from rigid mathematical constraints, each of the simulations is also placed in the context of a mathematical formulation examined either analytically or numerically. Procedures covered include testing random number generators, producing PostScript files, root-finding, numerical integration and using the genetic algorithm.
Chapter
1.6 A Few Words about Compilers
1.7 The Personal Side of Programming
Chapter 2 Immigration-Emigration Models
2.1 Immigration and Emigration Processes
2.2 Deterministic Treatment
2.2.1 Discrete-Time Model
2.2.2 Continuous-Time Model
2.3 Immigration—Emigration Simulation Model
2.4 Getting the Program into the Computer
2.4*1 Basic Unix Commands
2.5 Compiling the Birth-Death Program
2.7 Analytic Stochastic Immigration-Emigration Model
2.7.1 Mathematical Analysis
2.7.2 Comparison of Simulation and Analytic Models
Chapter 3 Logistic Birth-Death Models
3.1 Origins of the Logistic Growth Function
3.2 Conceptual Vagueness of Logistic Growth
3.3 Analysis of Deterministic Model
3.4 Logistic Birth-Death Simulation Model
3.4-3 Preliminary Simulation Results
3.5 Analytic Stochastic Birth—Death Model
3.5.1 Mean Population Size
3.5.2 Variance of Population Fluctuations
3.5.3 Comparison of Simulation and Analytic Models
3.6 Review of Modeling Concepts
Chapter 4 Random Numbers and Visualization
4.1.1 Variables and Memory Locations
4-2.4 Random Walker Test Results
4'3.1 PostScript Visualization Code
4-3.3 Visualization Results
4.4 Nonuniformly Distributed Random Numbers
4.4.1 Exponentially Distributed Random Numbers
4-4-2 Normally Distributed Random Numbers
Chapter 5 Two-Species Competition Model
5.1 Analytic Lotka-Volterra Competition Model
5.1.2 Coexistence Conditions
5.2 Simulation Model of Lotka—Volterra Interactions
5.2.3 Nonspatial Simulation Results
5.2.4 Spatial Simulation Results
5.3 Analytic Model for the Spatial System
5.3.2 Code Alterations for a Numerical Solution
Chapter 6 Programming Projects
6.1 Metapopulation Dynamics
6.1.3 The Finished Product
6.1.4 Compiling, Debugging, and Running
6.2.3 The Finished Product
6.2.4 Compiling, Debugging, and Running
7.1 Simplistic Analytic Foraging Model
7.2 Optimal Residence Time
7.2.1 Root Finding Algorithm
7.2.4 Optimal Residence Time Results
7.3 Forager Simulation Model
7.3.1 Structure Variables
7.4 Deterministic Size-Structured Patch Model
7.4' 1 Numerical Integration Code
7.4'3 Size-structured Model Results
7.5 Extensions for Multiple Foragers
Chapter 8 Maintenance of Gynodioecy
8.1 Population Dynamics of Females and Hermaphrodites
8.1.2 Equilibrium Analysis
8.1.3 Runge-Kutta Numerical Integration
8.1.5 Nonspatial Model Results
8.2 Pollen and Seed Dispersal in Space
8.2.1 Analytic Model Formulation
8.2.2 Simulation Model Formulation
Chapter 9 Diffusion and Reactions
9.1 Diffusion and the Dissolution of Pattern
9.1.1 Analytic Model of Diffusion
9.1.2 Simulation Model of Diffusing Organisms
9.2 Diffusion-Limited Reactions
9.2.1 Analytic Annihilation Models
9.2.2 Simulation Code Modifications
9.2.3 Diffusion-limited Reaction Results
9.3 Spatial Predator-Prey Model
9.3.1 Analytic Lotka-Volterra Models
9.3.2 Simulation Code Modifications
Chapter 10 Optimal Resource Allocation Schedules
10.1 Resource Allocation in Plants
10.2 Two Hypothetical Allocation Schedules
10.2.1 Simulation of Hypothetical Schedules
10.2.4 Simulation Results
10.3 Optimal Allocation Schedules
10.3.1 Static Optimization
10.3.2 Dynamic Optimization
10.4 Simulation of General Allocation Problem
10.4-1 Overview of Genetic Algorithms
10.4-4 Simulation Results
10.5 Extensions for Stochastic Environments