Tribolium LPA two-species competition model

For more information, please consult David Wood's page.


Coexistence basin at volume 1.0, usual rounding

ContinuousLattice
The basin, which looks like a spoon, appears after about 1000 iterations (just under half-way through the movie). The basin is present immediately. In other words, at volume 1.0 the lattice model is hung up from the start. (See the section below, Dependence on rounding mode.)

1024x1024 MPEG movie [50 frames, 835 KB]
Volume 1.0, continuous, n=50:50:2500.

1024x1024 MPEG movie [10 frames, 151 KB]
Volume 1.0, lattice, n=50:50:500.

Dependence on volume

Continuous Lattice Lattice Lattice
As the volume increases, more and more intermediate pixels are filled in, but the overall image remains constant. In other words: the continuous model is volume-independent (as one would expect). We already saw (above) that the lattice model is remarkably different from the continuous model at volume 1.0. In agreement with one's expectations, the differences diminish as the volume increases, but contrary to one's expectations, the process is remarkably slow. In this movie, the volume is doubled from each frame to the next. A major change occurs between volume 8.0 and 16.0, and again between volume 16.0 and 32.0. Beyond that, the lattice basin shrinks towards the continuous basin (but still hasn't reached it by the end of the movie at volume 536870912.0). Here is a detail of the first major change. It occurs rapidly, between volume 11.249999 and 11.25. Why does this happen, and why at such a clean number? Basically, most trajectories heading for the left axis get hung up together on a lattice point, and in a sense are married to that point as it moves as the volume changes, at least for small changes. Thus the switchover occurs when the volume increase pushes that lattice point into the extinction region, and that occurs at a clean volume number. Of course, as the volume changes, also the dynamics are affected, so the marriage point might jump, and might jump into the extinction region, but this has not been observed. Also, there is no explanation of why the trajectories get hung up together on one point. (See the next movie for more on this.) Here is a detail of the second major change. The movie runs from volume 16.5 to 16.7 and has an extinction density of 7. Notice that the image jumps back and forth. As before, the trajectories heading for the bottom axis get hung up together, but as the volume changes, the dynamics are affected, and the hangup point sometimes moves down one, sometimes up one. By putting the extinction density right there, the question of extinction versus survival is locally quite volume dependent. Also, not all trajectories get hung up together, as indicated by the surviving streak shown in the image below. In general, the dynamics heading towards the bottom axis are more complicated than heading towards the left axis, and this should be explainable in terms of the parameters driving the coupled LPA equations.

1024x1024 MPEG movie [20 frames, 255 KB]
Volume 0.1:0.1:2.0, continuous, n=1000.

1024x1024 MPEG movie [30 frames, 716 KB]
Volume 1:doubling:2^29, lattice, n=1000.

1024x1024 MPEG movie [20 frames, 340 KB]
Volume 11.24:0.00000001:11.25, lattice, n=1000.

1024x1024 MPEG movie [40 frames, 1.2 MB]
Volume 16.5:0.005:16.7, lattice, extinction_density=7, n=1000.

Dependence on rounding mode

Lattice Lattice Lattice
Description Description Description

1024x1024 MPEG movie [30 frames, 4066 KB]
Volume 1:doubling:2^29, lattice round down, n=1000.

1024x1024 MPEG movie [64 frames, 3065 KB]
Volume 0.25:0.25:16.0, lattice round down, n=1000.

1024x1024 MPEG movie [80 frames, 923 KB]
Volume 0.2:0.025:2.4, lattice round down, n=1000.

Sensitivity to extinction density

Continuous
In the other movies, the extinction density is set to 4.0, meaning a species is considered extinct when its total density (L+P+A) becomes ⟨= 4.0. In this movie, the extinction density changes from 1.0 to 181.0 in steps of 4.0. We see that the shape of the coexistence basin remains approximately the same so long as the extinction density is less than the coordinates of the 2-cycle attractor. This indicates that the coexistence trajectories do not travel much nearer to the axes than the location of the 2-cycle attractor. (Note: The appearance of the red dots in the extinction region is not a bug in the software. The red dots represent adult density, whereas the extinction measure is in terms of total density.)

1024x1024 MPEG movie [45 frames, 739 KB]
Volume 1.0, continuous, n=1000, e=1.0:4.0:181.0.

Emergence of the two-cycle attractor

Continuous 5-stepContinuous 1-step Continuous 2-step
Going 5 iterations per image, we can watch the 2-cycle attractor take shape. (The movie stops long before it looks like a 2-cycle. For the rest, see the earlier movies above.) Zooming in slightly, and going 1 iteration per image, we can watch the evoluation in detail. However, things are back-and-forth jumpy. (This phenomenon is undoubtedly related to the 2-cycle, although neither appears to imply the other.) The back-and-forth jumpiness is masked by deleting every other frame in the movie. Can someone explain the line patterns in the first few frames of the movie?

1024x1024 MPEG movie [100 frames, 2.14 MB]
Volume 2.0, continuous, n=5:5:500.

1024x1024 MPEG movie [500 frames, 11.6 MB]
Volume 2.56, continuous, n=1:1:500.

1024x1024 MPEG movie [250 frames, 8.42 MB]
Volume 2.56, continuous, n=1:2:501.

The neck of the spoon

Continuous Continuous
Zooming in on part (the neck) of the coexistence basin (the spoon) exhibits the chaotic nature of the speckled boundary. This is an older movie, where the zooming was accomplished by changing the volume. In the next movie (to the right), we stay at fixed volume but simply increase the pixel ratio. This is a more precise version:
  • 10 frames zooming
  • 10 frames 1000-2000 iterations
  • 10 frames zooming
  • 10 frames 2000-3000 iterations
  • 10 frames zooming
  • 10 frames 3000-4000 iterations
  • 20 frames zooming
  • 20 frames 4000-5000 iterations
  • 20 frames zooming
  • 20 frames 5000-6000 iterations
  • 20 frames zooming
  • 20 frames 6000-7000 iterations

  • 1024x1024 MPEG movie [57 frames, 1.5 MB]
    Volume 1.0:32.0, continuous, n=400:4800.

    1024x1024 MPEG movie [180 frames, 10.4 MB]
    Volume 1.0, continuous, n=1000:7000.

    Legend

    All images are in density.
    Volume of 1.0 corresponds to 20 grams.
    The equations and parameters are at the bottom of this page.

    Bright green = currently in coexistence.
    Darker green = recently entered exclusion.
    Black = long time ago entered exclusion.

    Blue = current total density (L+P+A) of some starting pixel.
    Red = current adult density of some starting pixel.

    The green and the blue/red have little to do with each other. To understand what is going on, think of each original pixel as representing an experiment going off on a journey. While the experiment remains in a coexistence state, its current location is plotted in blue and red, and its original starting location is plotted bright green. As soon as it enters an exclusion state, its current location is no longer plotted, and its original starting location fades to black. Keep in mind that the experiment is taking place in a 6-dimensional space. The starting conditions are adults-only.

    There are many free MPEG viewers available, and your web browser probably invokes one automatically. Some viewers quickly pop up a miniature version of the movie, which disappears before you can step through individual frames. Experiment with different viewers. You'll want to watch these movies at the full 1024x1024, and either slow them down or possibly even step one frame at a time. Consider downloading the MPEG movies to your hard drive and watching them in a local viewer without using the web browser.


    Equations and parameters

    For the record, here are the equations and parameters we're using to model the dynamics of the larvae-pupae-adult stages for each species. The first species corresponds to lowercase letters. The second species corresponds to uppercase letters.
    lb * a * exp(-(cel*l + cea*a + ceL*L + ceA*A))
    pl * (1.0 - μl)
    ap * exp(-(cpa*a + cpA*A)) + a*(1.0-μa)
    LB * A * exp(-(cEl*l + cEa*a + cEL*L + cEA*A))
    PL * (1.0 - μL)
    AP * exp(-(cPa*a + cPA*A)) + A*(1.0-μA)
    • b=10.0
    • B=10.0
    • μl=0.200
    • μL=0.200
    • μa=0.020
    • μA=0.020
    • cel=0.010
    • cEL=0.010
    • cea=0.010
    • cEA=0.010
    • ceL=0.030
    • cEl=0.030
    • ceA=0.010
    • cEa=0.010
    • cpa=0.010
    • cPA=0.012
    • cpA=0.008
    • cPa=0.005


    How the movies were made

    The original sequence of images is generated by a C++ program and stored in a huge PPM file. This process can take many hours, but goes about 100 times faster than doing the same thing in MATLAB. The huge PPM file can be viewed as a movie in MATLAB using ppmmovie.m. To produce a smaller (but less accurate) MPEG movie, first the PPM file is ripped apart into individual PPM files using ppmrip.cpp. If the images are not all the same size, then they are scaled to a common size using fixit.bash. Then the Berkeley mpeg_encode produces the MPEG using the parameters in mpegparms. Finally, to produce the static images in the links on the web page, I select one representative frame, first reduce it using pnmscale 0.25 image.ppm > newimage.ppm and then convert it to a PNG using pnmtopng newimage.ppm > newimage.png.


    Questions, comments?