Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revisionBoth sides next revision
research_report_pix [2008-03-02 11:54] – removed 83.60.175.159research_report_pix [2008-03-03 09:05] – old revision restored 81.188.78.24
Line 1: Line 1:
 +
 +==== An Aesthetic Exploration of Multivariate Polynomial Maps ====
 +
 +this research report is still in progress.
 +
 +
 +==== Context ====
 +
 +In 2001 I found a book by mathematician Julien C. Sprott entitled "Strange
 +Attractors: Creating Patterns in Chaos" (CPiC). The book describes the
 +mathematics behind a class of fractals called strange attractors.
 +
 +The bulk of CPiC deals with a sub-class of strange attractors called iterated
 +maps. An iterated map is an equation, or often a system of equations, which are
 +evaluated iteratively. Iteration in this case means that we take the result of
 +evaulating the equations with, and feed this back into the same equations as
 +inputs for the next evaluation.  With most randomly chosen equations, the set
 +of results produced by succesive iterations is not particularly interesting,
 +perhaps rapidly climbing to infinity, collapsing to 0 or some other fixed
 +value. For a small number of equations however, the set of results carves out a
 +region of number space which exhibits interesting fractal properties. This
 +region of number space is called an attractor. The complete term "strange
 +attractor" refers also to the chaotic propeties of these attractors (CPiC p10,
 +CaTSA p127).
 +
 +In CPiC Sprott presents a computer program which can search for the equations
 +which produce strange attractors by trying many randomly generated equations
 +until one is discovered which meets certain criteria. The results are clouds of
 +points which formed interesting shapes, many with an organic quality. Each set
 +of equations created a unique set of points.
 +
 +The organic quality of the images is particularly intriguing as they are the
 +result of a relatively simple mathematical process. In fact it is this
 +complexity, emerging from apparently simple equations, which has attracted
 +mathematicians.
 +
 +The book describes a range of different classes of equations which exhibit the
 +property of producing strange attractors. One class of equations which
 +particularly caught my attention was the polynomial map.  Polynomials are
 +interesting as they are easy to generalise, meaning one can easily add or
 +remove terms from the equation to experiment with systems of greater or lesser
 +complexity.  Additionally, this flexibility is easily parameterised, making it
 +possible to automate. Finally, there are a number of properties of polynomials
 +that makes their evaluation on computers convenient.
 +
 +With each class of strange attractor producing equations presented in the book,
 +there were a number of parameters (coefficients, constants) that could be a
 +adjusted to produce different attractors. Often, only a small percentage of the
 +possible constant values would give rise to a strange attractor. The program
 +that Sprott develops in the course of the book randomly tests many different
 +randomly generated parameters, and displays the strange attractor produced by
 +those which exhibited favourable properties.  Since the values were chosen
 +randomly from the infinite range of possible values, it gives the impression of
 +the different attractors lying spread out discretely across number space,
 +isolated from each other like stars in the night sky.
 +
 +I was curious to see what would be the outcome of making small changes to the
 +chosen values, to see if the attractors did not exist as pinpricks in number
 +space, but possibly as extended areas, possibly even connected.  I made a
 +simple program which did this, starting from one known strange attractor and
 +making small changes to the parameters, and plotting the resulting attractor.
 +The result was the familiar clouds of points, slowly morphing between many
 +different shapes. 
 +
 +The simple program I made would move through the parameter space randomly and
 +automatically. It showed that there was a continuity to the parameter space
 +which the strange attractors occupied. It did not however, provide any useful
 +way of visualising the path it was taking through this space.
 +
 +In this research I would like to explore this space in a more controlled
 +manner, and possibly map it to some degree. The mapping of fractal spaces is
 +not unheard of in mathematics. As a simple example, a region of the Lyapunov
 +fractal has been dubbed "Zircon Zity" by mathematician, Alexander Dewdney.
 +
 +
 +I've always intended this exploration to be more aesthetic than mathematical.
 +it is certainly informed by mathematics, but I feel that any great mathematical
 +insights are unlikely to come from me. I maintain however, the vaguely
 +plausible fantasy that my unscientific endeavours might inspire some more
 +useful research by a suitably qualified mathematician at some point in the
 +future.
 +
 +
 +
 +==== Problem/Aim ====
 +
 +The specific aims of this research project are to get some insight into the
 +structure of the parameter space that these strange attractors occupy. the name
 +of the project comes from what I hope is a correct name for the full class of
 +equations which make up the parameter space I am interested in searching.
 +
 +The specific system of equations which I used in my initial simple program is
 +shown below:
 +
 +X<sub>n+1</sub> = a<sub>1</sub> + a<sub>2</sub>X<sub>n</sub> +
 +a<sub>3</sub>X<sub>n</sub><sup>2</sup>
 +a<sub>4</sub>X<sub>n</sub>Y<sub>n</sub> +
 +a<sub>5</sub>X<sub>n</sub>Z<sub>n</sub> + a<sub>6</sub>Y<sub>n</sub> +
 +a<sub>7</sub>Y<sub>n</sub><sup>2</sup> +
 +a<sub>8</sub>Y<sub>n</sub>Z<sub>n</sub> + a<sub>9</sub>Z<sub>n</sub> +
 +a<sub>10</sub>Z<sub>n</sub><sup>2</sup> 
 +
 +Y<sub>n+1</sub> = a<sub>11</sub> + a<sub>12</sub>X<sub>n</sub> +
 +a<sub>13</sub>X<sub>n</sub><sup>2</sup> +
 +a<sub>14</sub>X<sub>n</sub>Y<sub>n</sub> +
 +a<sub>15</sub>X<sub>n</sub>Z<sub>n</sub> + a<sub>16</sub>Y<sub>n</sub> +
 +a<sub>17</sub>Y<sub>n</sub><sup>2</sup> +
 +a<sub>18</sub>Y<sub>n</sub>Z<sub>n</sub> + a<sub>19</sub>Z<sub>n</sub> +
 +a<sub>20</sub>Z<sub>n</sub><sup>2</sup> 
 +
 +Z<sub>n+1</sub> = a<sub>21</sub> + a<sub>22</sub>X<sub>n</sub> +
 +a<sub>23</sub>X<sub>n</sub><sup>2</sup> +
 +a<sub>24</sub>X<sub>n</sub>Y<sub>n</sub> +
 +a<sub>25</sub>X<sub>n</sub>Z<sub>n</sub> + a<sub>26</sub>Y<sub>n</sub> +
 +a<sub>27</sub>Y<sub>n</sub><sup>2</sup> +
 +a<sub>28</sub>Y<sub>n</sub>Z<sub>n</sub> + a<sub>29</sub>Z<sub>n</sub> +
 +a<sub>30</sub>Z<sub>n</sub><sup>2</sup> 
 +
 +The terms a<sub>1</sub> though to a<sub>30</sub> are the parameters which
 +define a particular attractor. When I refer to "parameter space", I am refering
 +collectively to these values. In the same way that you could take two numbers
 +to be coordinates on a two-dimensional map, it can be useful to imagine a long
 +list of parameters as coordinates into a space of considerably higher
 +dimension, in this case, a 30 dimensional space. This is not to suggest that
 +30-dimensional space is easily comprehensible, but by extrapolation from a two
 +dimensional plane, through to a three dimensional cube and beyond, it is
 +possible imagine at least some of the properties of this space. 
 +
 +Perhaps the most important aspect to comprehend is that sets of parameters
 +where the corresponding values in each set differ only slightly from each other
 +(eg, a<sub>7</sub> in each set) are in some sense adjacent.
 +
 +The right hand side of equation is simply a polynomial of degree 2 in
 +X<sub>n</sub>, Y<sub>n</sub> and Z<sub>n</sub>. As mentioned in the previous
 +section, it is easy to generalise these equations and replace them with
 +polynomials of higher or lower degree (greater or fewer numbers of term).  With
 +higher degree polynomials, the number of coefficients (parameters) rapidly
 +increases.
 +
 +The level of complexity of the equations can be varied, but even in this simple
 +(yet still interesting) case the equation is defined by 30 values. If you
 +consider the 3 starting values of X, Y and Z, then it is defined by 33 values.
 +When considered as a space, this is a 33 dimensional space.  This raises some
 +problems of how to sensibly navigate or visualise such high dimensional spaces.
 +
 +
 +
 +[ automated help looking at the space, fractal dimension, lyapunov ]
 +
 +It is hoped that the ability to explore and derive a structural understanding
 +of the number space, may assist in searching for visually or perhaps even
 +mathematically interesting regions in space.
 +
 +I expect there to be a tight feedback loop between initial observations and
 +future explorations. It is very much like sending off a ship into unchartered
 +waters. if you find an island, you will probably explore the island.
 +
 +I'm expecting the parameter space to be a kind of meta-attractor, and to be
 +interesting in similar ways to the attractors themselves. Similar relationships
 +are already known to exist between better understood fractals. Each point in
 +the well known Mandelbrot Set fractal corresponds to a particular configuration
 +of the similarly popular Julia Set fractal in which the solution is bounded
 +(Sprott p.353). The exact definition of boundedness in this case is beyond the
 +scope of this report, but it is sufficient to understand that the Mandelbrot
 +Set can be understood as a map describing the behaviour of the Julia Set over a
 +range of different parameters. Similarly, I would like to generate a similar
 +map describing the presence of Strange Attractors across a range of parameters.
 +
 +==== Methods ====
 +
 +This exploration is driven by tools and technology. The discovery of fractals
 +was catalysed by the availability of computers, as they require large numbers
 +of calculations and their exploration was not feasible without computational
 +assistance. Even at the time that the Sprott book was written, generating one
 +of these attractors would take a several seconds, making the animations of my
 +early exploratory program infeasibly time consuming. The mapping of the
 +parameter space involves many times more calculations again, making efficient
 +implementation a reasonably high priority.
 +
 +In addition to the raw computational challenges, the other important problem to
 +face was the construction of a suitable interface for conveniently navigating
 +the high dimensional number spaces. 
 +
 +[ display issues ... when did i switch to soya? .. not documented, just before
 +getting the dotplot working i guess ]
 +
 +My early plans were to make a neat, self contained application, displaying the
 +navigation interface alongside a 3D rendering of the current strange attractor.
 +An early problem I needed to solve was the problem of integrating a 3D
 +rendering into that same window as the navigation interface. 
 +
 +The common methods for producing real-time 3D graphics on computers are biased
 +towards applications in which everything takes place in the 3D render window,
 +for example, a 3D game, which takes over the complete display of your computer.
 +I was to discover that relegating that 3D window to a region within another
 +application window is not always a simple task. The problem was further
 +complicated the particular 3D library I had hoped to use (OGRE) and the
 +language in which I had hoped to do the interface programming (Python).
 +
 +[ summary of the problem? ]
 +
 +After a number of different trial and error approaches to the problem, I gave
 +up on the dream of a neat, single-windowed application and fell to the less
 +problematic approach of having the 3D render and the navigation interface
 +appear as two distinct windows.
 +
 +
 +With this initial structural decision made, I moved to implementing the code to
 +evaluate the equations which would generate the attractor. I decided to use
 +SciPy, a python library for performing scientific calculations. It emphasises
 +the use of matrix operations, and so I arranged the evaluation so that the bulk
 +of the calculation would be done as simple operations on large matrices. This
 +method was chosen in the interests of efficiency. While it was not possible to
 +easily test how efficient the matrix operations in SciPy were, it is reasonable
 +to assume that they are optimised to some degree.
 +
 +
 +Soon after completing an initial implementation of the evaluation code, I was
 +somewhat suprised to discover that using functions provided by SciPy,
 +generating maps of the parameter space would be much easier than I had
 +imagined. In fact, I was able to render my first parameter maps long before I
 +had a working renderer for the 3D dot plots of the attractors themselves.
 +
 +[ randomly chosen attractor 168coeffs.. is that degree 3? ] 
 +
 +The first plots were quite time consuming. For each point on the map I was
 +calculating many iterations of the equations, only stopping if the values
 +became incalculably large (infinte). During the ample opportunity for
 +reflection afforded by the long rendering times, I was reminded of the way in
 +which the popular images of the Mandelbrot set are typically generated. 
 +
 +Most images of the Mandelbrot set are called "Escape Time" plots. Each pixel in
 +the image represents a unique starting value which is fed into an iterative
 +equation. The black region in the centre of the image are those starting
 +conditions for which the succesive values produced by the iteration stay close
 +to their initial value, and define the Mandelbrot set proper. The coloured
 +bands surrounding this region represent starting values for which sucessive
 +iteration causes the values to spin off towards infinity. The different colours
 +represent the number of iterations required for the values to cross some
 +arbitrary threshold.
 +
 +For my purposes, escape time plots had several benefits. Firstly, there is
 +generally less calculation to do for each point, as the values will cross the
 +chosen escape threshold long before my old limit of infinity.
 +Secondly, while not technically representing attractors themselves, the shape
 +of the colour bands tend to give clues about the presence of nearby attractors,
 +acting as a kind of mathematical aura (the allusion to pseudo-science is
 +particularly appropriate).
 +
 +[ animations ]
 +
 +[ optimisations (psyco, liboil, handcoded c) ]
 +
 +[ dotplot renderer, interface ]
 +
 +[ basin of attraction 0,0,0 assumption ] 
 +
 +[ sprott mention of robustness ] 
 +
 +==== Solution/Results ====
 +
 +[ intial plots of basin of attraction (accidentally) .. ] 
 +
 +For historical value, below is the first map I rendered. Mistakenly, it was the
 +result of somewhat misplaced ambition. It was intended to be a plot of the
 +varying fractal dimension across a two-dimensional slice of the parameter
 +space. Due to a conceptual error, it is actually a rendering of the varying
 +fractal dimension across a two-dimensional slice of the basin of attraction.
 +Upon realising this error, the slight variance in the values towards the center
 +became quite surprising.
 +
 +[ desc of basin of attraction, why the factal dimension shouldn't change much ]
 +
 +highf-100.png (accidental basin plot)
 +
 +[ low order ]
 +
 +[ fractal dimension plot + composite ]
 +
 +[ basin of attraction animations ]
 +
 +[ render errors? ]
 +
 +==== Discussion ====
 +
 +the features of the parameter space maps are as interesting as i had hoped.
 +
 +
 +i didn't expect to be making maps this early. i had not anticipated that the manual-searching part of the tool would be so difficult, and i also i had not realised that it would actually be easier to do the mapping. i had expected to move on to the mapping after having an 'explorer' of sorts.
 +
 +
 +i've yet to speak to anyone with a maths background to ask if this is of any relevance, or more realistically to find out that it is very boring mathematically. i can imagine that it might be considered a little boring because i am working with big complicated polynomials. most of the famous fractals are based on very simple equations.
 +
 +
 +[ benefits of flexible lib vs app ] 
 +
 +i still want to continue, making a useable application for exploring the space. at the moment i am still driving it quite manually.
 +
 +[ basin plots are truly 3d (not slices), lend themselves to 3d printing ]
 +
 +[ ability to click on an map and see the attractor ]
 +
 +[ sonification ] 
 +
 +[ reactions from DE ]
 +
 +==== References ====
 +
 +  * http://www.rawilson.net/chaos/lyapunov/index.html
 +
 +  * http://sprott.physics.wisc.edu/sa.htm
 +  * http://ibiblio.org/e-notes/MSet/Logistic.htm
 + 
 +  * images and animations at  [[Pix Strange Attractor]]
 +
 +
  
  • research_report_pix.txt
  • Last modified: 2013-08-22 10:28
  • by nik