[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
52.1 Introduction to dynamics | ||
52.2 Functions and Variables for dynamics |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
The additional package dynamics
includes several
functions to create various graphical representations of discrete
dynamical systems and fractals, and an implementation of the Runge-Kutta
4th-order numerical method for solving systems of differential equations.
To use the functions in this package you must first load it with
load("dynamics")
.
The commands that produce graphics accept the same options accepted by plot2d
and some additional ones.
@ref{Category: Dynamical systems} · @ref{Category: Share packages} · @ref{Category: Package dynamics}
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[[
x1, y1]
...[
xm, ym]]
, [
x0, y0]
, b, n, ..., options, ...);
Implements the so-called chaos game: the initial point (x0,
y0) is plotted and then one of the m points
[
x1, y1]
...[
xm, ym]
will be selected at random. The next point plotted will be on the
segment from the previous point plotted to the point chosen randomly, at a
distance from the random point which will be b times that segment's
length. The procedure is repeated n times.
@ref{Category: Package dynamics} · @ref{Category: Plotting}
Draws n+1 points in a two-dimensional graph, where the horizontal coordinates of the points are the integers 0, 1, 2, ..., n, and the vertical coordinates are the corresponding values y(n) of the sequence defined by the recurrence relation
y(n+1) = F(y(n))
With initial value y(0) equal to y0. F must be an expression that depends only on one variable (in the example, it depend on y, but any other variable can be used), y0 must be a real number and n must be a positive integer.
@ref{Category: Package dynamics} · @ref{Category: Plotting}
[
F, G]
, [
u, v]
, [
u0, y0]
, n, ..., options, ...);
Shows, in a two-dimensional plot, the first n+1 points in the sequence of points defined by the two-dimensional discrete dynamical system with recurrence relations
u(n+1) = F(u(n), v(n)) v(n+1) = G(u(n), v(n))
With initial values u0 and v0. F and G must be two expressions that depend only on two variables, u and v, which must be named explicitely in a list.
@ref{Category: Package dynamics} · @ref{Category: Plotting}
[
r1, ..., rm]
, [
A1, ..., Am]
, [[
x1, y1]
, ..., [
xm, ym]]
, [
x0, y0]
, n, ..., options, ...);
Implements the Iterated Function System method. This method is similar
to the method described in the function chaosgame
, but instead of
shrinking the segment from the current point to the randomly chosen
point, the 2 components of that segment will be multiplied by the 2 by 2
matrix Ai that corresponds to the point chosen randomly.
The random choice of one of the m attractive points can be made with a non-uniform probability distribution defined by the weights r1,...,rm. Those weights are given in cumulative form; for instance if there are 3 points with probabilities 0.2, 0.5 and 0.3, the weights r1, r2 and r3 could be 2, 7 and 10.
@ref{Category: Package dynamics} · @ref{Category: Plotting}
Draws the orbits diagram for a family of one-dimensional discrete dynamical systems, with one parameter x; that kind of diagram is used to study the bifurcations of a one-dimensional discrete system.
The function F(y) defines a sequence with a starting value of
y0, as in the case of the function evolution
, but in this
case that function will also depend on a parameter x that will
take values in the interval from x0 to xf with increments of
xstep. Each value used for the parameter x is shown on the
horizontal axis. The vertical axis will show the n2 values
of the sequence y(n1+1),..., y(n1+n2+1) obtained after letting
the sequence evolve n1 iterations.
@ref{Category: Package dynamics} · @ref{Category: Plotting}
Draws a staircase diagram for the sequence defined by the recurrence relation
y(n+1) = F(y(n))
The interpretation and allowed values of the input parameters is the
same as for the function evolution
. A staircase diagram consists
of a plot of the function F(y), together with the line
G(y) =
y. A vertical segment is drawn from the
point (y0, y0) on that line until the point where it
intersects the function F. From that point a horizontal segment is
drawn until it reaches the point (y1, y1) on the line, and
the procedure is repeated n times until the point (yn, yn)
is reached.
@ref{Category: Package dynamics} · @ref{Category: Plotting}
Options
Each option is a list of two or more items. The first item is the name of the option, and the remainder comprises the arguments for the option.
The options accepted by the functions evolution
, evolution2d
,
staircase
, orbits
, ifs
and chaosgame
are the same as the options for
plot2d
. In addition to those options, orbits
accepts and
extra option pixels that sets up the maximum number of different
points that will be represented in the vertical direction.
Examples
Graphical representation and staircase diagram for the sequence: 2, cos(2), cos(cos(2)),...
(%i1) load("dynamics")$ (%i2) evolution(cos(y), 2, 11); (%i3) staircase(cos(y), 1, 11, [y, 0, 1.2]);
If your system is slow, you'll have to reduce the number of iterations in
the following examples. And if the dots appear too small in your
monitor, you might want to try a different style, such as
[
style,[
points,0.8]]
.
Orbits diagram for the quadratic map, with a parameter a.
x(n+1) = a + x(n)^2
(%i4) orbits(x^2+a, 0, 50, 200, [a, -2, 0.25], [style, dots]);
To enlarge the region around the lower bifurcation near x =
-1.25 use:
(%i5) orbits(x^2+a, 0, 100, 400, [a,-1,-1.53], [x,-1.6,-0.8], [nticks, 400], [style,dots]);
Evolution of a two-dimensional system that leads to a fractal:
(%i6) f: 0.6*x*(1+2*x)+0.8*y*(x-1)-y^2-0.9$ (%i7) g: 0.1*x*(1-6*x+4*y)+0.1*y*(1+9*y)-0.4$ (%i8) evolution2d([f,g], [x,y], [-0.5,0], 50000, [style,dots]);
And an enlargement of a small region in that fractal:
(%i9) evolution2d([f,g], [x,y], [-0.5,0], 300000, [x,-0.8,-0.6], [y,-0.4,-0.2], [style, dots]);
A plot of Sierpinsky's triangle, obtained with the chaos game:
(%i9) chaosgame([[0, 0], [1, 0], [0.5, sqrt(3)/2]], [0.1, 0.1], 1/2, 30000, [style, dots]);
Barnsley's fern, obtained with an Iterated Function System:
(%i10) a1: matrix([0.85,0.04],[-0.04,0.85])$ (%i11) a2: matrix([0.2,-0.26],[0.23,0.22])$ (%i12) a3: matrix([-0.15,0.28],[0.26,0.24])$ (%i13) a4: matrix([0,0],[0,0.16])$ (%i14) p1: [0,1.6]$ (%i15) p2: [0,1.6]$ (%i16) p3: [0,0.44]$ (%i17) p4: [0,0]$ (%i18) w: [85,92,99,100]$ (%i19) ifs(w, [a1,a2,a3,a4], [p1,p2,p3,p4], [5,0], 50000, [style,dots]);
See also the documentation for packages mandelbrot
. and julia
. in the Plotting section.
[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated on October, 9 2014 using texi2html 1.76.