Iterative Maps - Maple Help

 Iterative Maps

Bifurcation maps

The Bifurcation command generates two-dimensional images of an iterated map. Small changes in values of some parameters in the governing equations can give rise to qualitative changes in the evolving solution of the system, referred to as a bifurcation. For example, the evolving solution of a system of differential equations can switch between being periodic or chaotic in nature.

Images or bifurcation diagrams can illustrate the nature of the solution as the bifurcation parameters change value.

 > $\mathrm{with}\left(\mathrm{IterativeMaps}\right):$$\phantom{\rule[-0.0ex]{0.0em}{0.0ex}}\phantom{\rule[-0.0ex]{0.0em}{0.0ex}}\mathrm{with}\left(\mathrm{ImageTools}\right):$

The Gauss map is an example of such a system. Its bifurcation diagram can be computed using the following iterated map of a single real variable.

This map is sometimes referred to as the mouse map since for some parameter values the bifurcation diagram looks like a mouse.

In the following generated image the horizontal direction corresponds to r and the vertical direction corresponds to x.

 >
 >
 $\left[{1}{..}{500}{,}{1}{..}{500}{,}{1}{..}{3}\right]$ (1.1)
 > $\mathrm{ColouringProcedures}:-\mathrm{HueToRGB}\left(\mathrm{GaussMapImage}\right):$$\phantom{\rule[-0.0ex]{0.0em}{0.0ex}}\phantom{\rule[-0.0ex]{0.0em}{0.0ex}}\mathrm{Embed}\left(\mathrm{GaussMapImage}\right)$

The Explore command can be used to obtain an application with which to interact with the bifurcation diagram.

This allows a convenient mechanism for exploring the behavior of the iterative process as the number of iterations or the parameter value change.

The following appliable module uses a local member img in order to take advantage of the in-place computational functionality of the Bifurcation command. The following procedure for GaussMap generates an image according to its arguments which specify the parameter k and the number of iterations of the map.

 >

Gauss map

$\mathbf{k}$

Attractor maps

The Attractor command generates two-dimensional images of the iterated or evolving solution of a system of equations. The command gets its name from the fact that certain systems have the property that if the solution becomes close enough to attaining some special state then it remains close.

For example, the special state may be the situation of being close to a particular point, curve, or surface which is then referred to as an attractor.

The Rossler attractor appears in the solution of the following set of differential equations:

A diagram for this system can be computed using an iterative map which effectively approximates a solution using a fixed step-size dt.

A temporary variable tx is added to the list of variables, so that values for variables x, y, and z can be iterated in unison.

 > $\mathrm{dt}:=0.0015:$
 > $\mathrm{xnew}:=x+\mathrm{dt}\left(-y-z\right):$
 > $\mathrm{ynew}:=y+\mathrm{dt}\left(\mathrm{tx}+ay\right):$
 > $\mathrm{znew}:=z+\mathrm{dt}\left(b+z\left(\mathrm{tx}-c\right)\right):$

The behavior of this iterated map depends on the values of the parameters a, b, and c. Using the following values, the computed orbit exhibits chaotic behavior around a fixed attractor. For other values of the parameter c, the evolving solution becomes periodic in nature.

 > $a,b,c:=0.1,0.1,14.0:$
 >
 >
 $\left[{1}{..}{400}{,}{1}{..}{400}{,}{1}{..}{3}\right]$ (2.1)
 > $\mathrm{ColouringProcedures}:-\mathrm{HueToRGB}\left(\mathrm{RosslerImage}\right):$$\phantom{\rule[-0.0ex]{0.0em}{0.0ex}}\phantom{\rule[-0.0ex]{0.0em}{0.0ex}}\mathrm{ImageTools}:-\mathrm{Embed}\left(\mathrm{RosslerImage}\right):$

The previous image has a view onto the x and y variables' space. An oblique view can be attained by introducing two additional variables and a projection. Here, a projection is made using a rotation about the first axis. A fixed viewing range is used.

The speed of computation is due to internal use of the Maple Compiler to apply the iterative map.

 > $\mathrm{ang}:=-\frac{\mathrm{π}}{8}:$
 memory used=3.69MiB, alloc change=3.66MiB, cpu time=30.00ms, real time=35.00ms, gc time=0ns
 > $\mathrm{ColouringProcedures}:-\mathrm{HueToRGB}\left(\mathrm{RosslerImage}\right):$$\phantom{\rule[-0.0ex]{0.0em}{0.0ex}}\phantom{\rule[-0.0ex]{0.0em}{0.0ex}}\mathrm{ImageTools}:-\mathrm{Embed}\left(\mathrm{RosslerImage}\right):$

The Explore command can be used to obtain an application which can be used to interact with the Attractor diagram.

This allows a convenient mechanism for exploring the behavior of the solution as the number of iterations or the parameters change. The tilt angle can also be made interactive.

The following appliable module uses a local member img in order to take advantage of the in-place computational functionality of the Attractor command. The following procedure, Rossler, will generate an image according to its arguments which specify the parameter c, the number of iterations of the map, and the angle of tilt in the projected view.

The procedure Rossler can be passed to the Explore command to provide a convenient interface for varying the values of its arguments.

 >

Rossler attractor

$\mathbf{angle}$

Escape maps

The Escape command generates images from iterated maps involving several variables.

The dimensions of the resulting image correspond to the initial values of the first two specified variables of the map. The iterated computation can involve several variables, and operates by updating the value of each two-dimensional image using the previous value and (optionally) the values of any additional variables.

The iteration continues until either the supplied iteration limit is exceeded or a supplied escape condition is met.

One well-known application of such iterative maps is the generation of images for which the approximation of the boundaries of the regions that escape are fractal in nature.

 > $\mathrm{expr}:={\left(\mathrm{zr}+\mathrm{zi}I\right)}^{3}$
 ${\mathrm{expr}}{:=}{\left({\mathrm{zr}}{+}{I}{}{\mathrm{zi}}\right)}^{{3}}$ (3.1)
 > $\mathrm{fzi}:=\mathrm{evalc}\left(\mathrm{ℑ}\left(\mathrm{expr}\right)\right)$
 ${\mathrm{fzi}}{:=}{-}{{\mathrm{zi}}}^{{3}}{+}{3}{}{\mathrm{zi}}{}{{\mathrm{zr}}}^{{2}}$ (3.2)
 > $\mathrm{fzr}:=\mathrm{evalc}\left(\mathrm{ℜ}\left(\mathrm{subs}\left(\mathrm{zi}=\mathrm{zit},\mathrm{expr}\right)\right)\right)$
 ${\mathrm{fzr}}{:=}{-}{3}{}{{\mathrm{zit}}}^{{2}}{}{\mathrm{zr}}{+}{{\mathrm{zr}}}^{{3}}$ (3.3)
 >
 >
 $\left[{1}{..}{500}{,}{1}{..}{500}{,}{1}{..}{3}\right]$ (3.4)
 > $\mathrm{ColouringProcedures}:-\mathrm{HueToRGB}\left(\mathrm{mandelbroid}\right):$$\phantom{\rule[-0.0ex]{0.0em}{0.0ex}}\phantom{\rule[-0.0ex]{0.0em}{0.0ex}}\mathrm{Embed}\left(\mathrm{mandelbroid}\right)$