SPROTT CHAOS CIRCUITS


by Warren Burt


This package contains a baker's dozen of the equations described by Julien Sprott in his paper "Simple Chaotic Systems and Circuits." (Am. J. Phys. 68(8), August 2000, pp. 758-63)


They are all 3rd order Ordinary Differential Equations, which describe position, velocity, accelleration and the accelleration of the accelleration, also called "jerk." In order to solve these equations, an algorithm, such as the Runge-Kutta No. 4 algorithm has to be used. When I started this project, I knew from nothing about differential equations, or Runge-Kutta or any of this. Thanks to the generous help of Mark Havryliv, the implementation of the Runge-Kutta algorithm, and the application of these equations to it, has been possible.


There are 22 families of equations in the Sprott paper. This package only implements 13 of them, from 10 of the families. If you want to explore this more, I recommend looking up Sprott's paper, and plugging the values into the Function code. A comparison of the Functions will quickly reveal where the equations are plugged in.


FUNCTIONS:


There are 13 Function modules, 1 per equation. Each has, in its tool tip, a description of the equation and the output ranges of the function. The faceplate of each Function is the same:


OUTPUTS:

X out: output for current value of X (position)

V out: output for current value of V (velocity)

A out: output for current value of A (accelleration)


INPUTS:

Strb: Strobe once for one generation of the function

Reset: Strobe to reset to values in inputs below.

X in: Starting value for X

V in: Starting value for V

A in: Starting value for A

H in: Increment value - if .01, function will develop slowly, with fine grain. if larger (up to 2), function will develop rapidly with coarse grain.


DEMO PATCHES:


Likewise there are 13 Demo Patches, one per function, "Sprott01Demo.awp" to "Sprott13Demo.awp." These all have Doc Boxes which explain about the patch. They are all mostly identical with the exception of sometimes having different outputs plugged into the Y axis of the Draw module, and different scaling of the equation outputs. These differences are explained in the individual patches and might give you some ideas as to how to develop these patches further.