Go to   Fun_Math Content Table


Fractals

Introduction to Fractals

A Bit of History

The word "Fractal" was coined in 1975 by Poland born, France educated, and naturalized American mathematician Benoit Mandelbrot(1924 - )
(who was born in 1924 and whose last name means "almond bread" in German.) to describe shapes which are detailed at all scales.
The word is a variant of "fractional",since a fractal is a type of fractional dimension found in many naturally occuring physical phenomena.
Its Latin root is "fractus",which is recognizable in the native English break, suggesting fragmented, broken and discontinuous.
As a result, the word "fractal" is now used not only for objects with fractional dimension, but also for those with the property of repeating
self-similar shapes even when they do not have a characteristic of fractional dimesion.

The first mathematical fractal was discovered in 1861 by Karl Weierstrass(1815 - 1897).
Weierstrass's function was ,although continuous,completely made of corners, and nowhere differentiable.
It was not possible to define the rate of change anywhere.
This was a shock to the scientists of the day, and it was named "pathological curve".

The Cantor Set,which is now named after the German mathematician Georg Cantor(1845 - 1918), the student of Weierstrass, is one of the first fractals
to be studied mathematically. It was the year 1883.
But this was actually discovered by Henry Smith(1826 - 1883), a professor of geometry at Oxford , in 1875.
The Cantor set has no length, and in mathematical terms,it has "zero measure". But how about its dimension ?
Mathematicians began searching for a new way of defining dimension.

Around 1890, an Italian mathemtician Giuseppe Peano(1858 - 1932) surprised the mathematical world by dicovering what was called
"space-filling curve". His curve was constructed in such a way that there was no point on the plane that its twisted curve would not include.
It means that a line, which is considered as one dimensional object, has one to one mapping to all the points on the plane, which is two dimensional.

The other "pathological" curve was discovered in 1904 by a Swedish mathematician Helge von Koch(1870 - 1924).
The finished curve,though contained in a finite area, has an infinite length ,
and has no smoothness, or tangent anywhere. It is now called Koch's snowflake or simply Koch curve.
What he did not know was that its property of infinite length can be used as an ideal model for the shapes of the real world like coastlines,
and its dimension was later found being equal to (log 4)/(log 3) = 1.26... (it is fractal !!).

In 1916, the polish mathematician Waclaw Sierpinski(1882 - 1969) introduced a fractal now called "Sierpinski Gasket" or "Sierpinski Triangle".
Nowadays this fractal model figure can be seen in almost any books writtten about the topic of fractal.

During the late 19-th and early 20-th entury, another group of mathematicians began research on what is now called "dynamical system", by iterating simple functions .
In 1979,British mathematician Sir Arthur Cayley(1821 - 1895) published a problem called "Newton-Fourier Imaginary Problem", in which he proposed a new method of finding roots of algebraic equation using Newton's method in complex plane. He wrote at the end of his one page article :
" The solution is easy and elegant in the case of a quadric equation , but the next succeeding case of the cubic equation appears to present considerable difficulty.", and the paper on the cubic equation case has never been published by him. The reader will soon see the reason why it is so.

This paper motivated the French mathematician Gaston Julia(1893 - 1978) and his compatriot and competitor Pierre Fatou (1878 - 1929) to do reseach in area of complex iteration.
In 1918,when Julia was only 25 years old, Julia published his 199 page masterpiece Mémoire sur l'itération des fonctions rationnelles, (concerning the iteration of a rational function) . It received the Grand Prix de l'Académie des Sciences.
Although he was famous in the 1920s, his work was essentially forgotten until Benoit Mandelbrot brought it back to prominence in the 1970s through his fundamental computer experiments.

"Julia Set" and "Fatou set" are named after these two early reserchers to honor their great contributions.

In 1980 Benoit Madelbrot discovered "Mandelbrot Set" while he was experimenting with Julia Set using high speed computers.
Since then many mathematicians joined the bandwagon ,and many words like Chaos, Dynamical System, Fractal, etc has become the household names.

The readers will see only a little bit of this history in this section. There are a lot of good books and video tape available. They are lsted in the reference section

List of animations posted on this page.(Click the text to watch animation.)
Use browser's "Back" button to come back to this page.

Table of Contents

1. Self-Similarity

1.1 Cantor Set

Take a line, remove the middle third,leaving two equal lines with length one third .
Next , remove the middle thirds from these two lines, and continue the process an infinite number of times.
The resulting set of points is called the Cantor set, named after the German mathematician Georg Cantor(1845 - 1918).
This is one of the first fractals to be studied mathematically.
The picture below shows the first 15 steps.
One thing noticed immediately is that the zoomed pictures around "red" and "green" lines
are the scaled down copies of the total image.
This "self-similarity" is one of the characteristics of "FRACTAL".


******************************* Cantor.dwg *******************************

You can see the process in animation.

To create this drawing and animation:
   Load fractal_mandelb.lsp    (load "fractal_mandelb")
  Then from command line, type Cantor

The picture below is another way of displaying Cantor set, called "Cantor comb".

***************************** Cantor_comb.dwg *****************************

To create this drawing :
   Load fractal_mandelb.lsp    (load "fractal_mandelb")
  Then from command line, type Cantor_comb

1.2 Koch Curves

Koch Curve
Koch_base_0.dwg
Initial stage

i
Koch_base_1.dwg
First step

i
Koch_base_2.dwg
Second step

i
Koch_base_3.dwg
3-rd step
i
Koch_base_4.dwg
4-th step
i
Koch_base_5.dwg
5-th step
i

You can see the process in animation.

To create this drawing and animation:
   Load snowflake.lsp    (load "snowflake")
  Then from command line, type Koch_base

Koch's Snowflake & anti-Snowflake
snowflake_0.dwg
Initial stage

i
snowflake_1.dwg
First step

i
snowflake_2.dwg
Second step

i
snowflake_3.dwg
Third step

i
snowflake_4.dwg
Fourth step

i
snowflake_0.dwg
Initial stage

i
anti-snowflake_1.dwg
First step

i
anti-snowflake_2.dwg
Second step

i
anti-snowflake_3.dwg
Third step

i
anti-snowflake_4.dwg
Fourth step

i

You can see the process in animation.
Snowflake animation
i
Anti-snowflake animation
i
    (1) Snowflake animation     (2) Anti-Snowflake animation

To create this drawing and animation:
   Load snowflake.lsp    (load "snowflake")
  Then from command line, type Koch_1 for Snowflake case
  Then from command line, type Koch_2 for Anti-Snowflake case

1.3 Blancmange Curve
blancmange_1.dwg
Initial stage

i
blancmange_2.dwg
Second step

i
blancmange_3.dwg
Third step

i
blancmange_4.dwg
4-th step

i
blancmange_5.dwg
5-th stage

i
blancmange_6.dwg
6-th step

i
blancmange_7.dwg
7-th step

i
blancmange_8.dwg
8-th step

i

You can see the process in animation.

To create this drawing and animation:
   Load blancmange.lsp    (load "blancmange")
  Then from command line, type blancmange

1.4 Sierpinski's Gasket
gasket_1.dwg
Initial stage

i
gasket_2.dwg
Second step

i
gasket_4.dwg
4-th step

i
gasket_8.dwg
8-th step

i
maze_1.dwg
Initial stage

i
maze_2.dwg
2-nd step

i
maze_4.dwg
4-th step

i
maze_8.dwg
8-th step

i
arrowhead_1.dwg
Initial stage

i
arrowheade_2.dwg
Second step

i
arrowhead_4.dwg
4-th step

i
arrowhead_8.dwg
8-th step

i

Sierpinski Gasket:   You can see the process in animation.
To create this drawing and animation:
   Load sierpinski_gaske.lsp    (load "sierpinski_gaske")
  Then from command line, type sierpinski_gasket

Sierpinski maze:   You can see the process in animation.
To create this drawing and animation:
   Load sierpinski_gasket.lsp    (load "sierpinski_gasket")
  Then from command line, type sierpinski_maze

Sierpinski arrowhead:   You can see the process in animation.
To create this drawing and animation:
   Load sierpinski_gasket.lsp    (load "sierpinski_gasket")
  Then from command line, type sierpinski_arrowhead

Extension to square Gasket:  

Gasket #1
square_gasket_1.dwg
Initial stage

i
square_gasket_2.dwg
Second step

i
square_gaskett_4.dwg
4-th step

i
square_gasket_8.dwg
8-th step

i

You can see the process in animation.
To create this drawing and animation:
   Load sierpinski_gasket.lsp    (load "sierpinski_gasket")
  Then from command line, type square_gasket

Gasket #2
sqr_gasket2_1.dwg
Initial stage

i
sqr_gasket2_2.dwg
Second step

i
sqr_gasket2_4.dwg
4-th step

i
sqr_gasket2_7.dwg
7-th step

i

You can see the process in animation.
To create this drawing and animation:
   Load sierpinski_gasket.lsp    (load "sierpinski_gasket")
  Then from command line, type square_gasket2

Extension to 3-Dimension:  

Cube Gasket
cube_gasket_1.dwg
Initial stage

i
cubee_gasket_2.dwg
Second step

i
cube_gasket_3.dwg
3-rd step

i
cube_gasket_4.dwg
4-th step

i
cube_gasket_5.dwg
5-th step

i

You can see the process in animation.
To create this drawing and animation:
   Load sierpinski_gasket.lsp    (load "sierpinski_gasket")
  Then from command line, type cube_gasket

Tetra Gasket
tetra_gasket_1.dwg
Initial stage

i
tetrae_gasket_2.dwg
Second step

i
tetra_gasket_3.dwg
3-rd step

i
tetra_gasket_4.dwg
4-th step

i
tetra_gasket_5.dwg
5-th step

i

You can see the process in animation.
To create this drawing and animation:
   Load sierpinski_gasket.lsp    (load "sierpinski_gasket")
  Then from command line, type tetra_gasket

1.5 Leibnitz packing(also called Apollonian gasket or packing)
According to Ref[1], Leibnitz(1646 - 1716) described the circle packing in a letter to de Brosse,
a French aristocrat and writer in 18-th century:
"Imagine a circle;inscribe within it three other circles congruent to each other and of maximum radius;
proceed similarly within each of these circles and within each interval between them,
and imagine that the process continues to infinity..."

The points that were never inside any of the circles form a set of zero area which is more than a line
,but less than a surface.
Its fractal dimension , though its exact value is not known, lies between 1 and 2, approximately 1.3.

If drawing one inside circle tangent to three circles is level-1, then level N is accomplished by drawing
total sum of {1 + 32 + 33 + ... + 3N-1} circles.
For example , level-9 requires drawing 9841 circles and without computer it is impossible
to draw this many circles.

Examples: From level 2 up to level 9
circle_fill_level_2.dwg
level- 2(4 circles)

i
circle_fill_level_4.dwg
level- 4(40 circles)

i
circle_fill_level_6.dwg
level- 6(364 circles)

i
circle_fill_level_9.dwg
level- 9(9841 circles)

i

You can see the process in animation.

To create this drawing and animation:
First step is to open drawing named test_circle.dwg.
   Load circle_fill.lsp    (load "circle_fill")
  Then from command line, type circle_fill and specify the level of packing.

This program has the option of filling each level of circles with corresponding colors.
This is the example for level-6.


************** level_6_solid.dwg ************** **************** circle_id.dwg ****************

Note: procedure to create these circles

There are two key things to be considered for creating this many circles systematically:
First: permutaion list for circles(refer to the figure above right- circle_id.dwg)
  If the base 3 arcs are named 0,1,2 as shown, then the first circles to be created is expressed as (0 1 2).
This circle is numbered as 3, then the next 3 circles 4,5 & 6 are designated as (3 1 2), (3 2 0), & (3 0 1).
Then the next level will be (4 1 2), (4 2 3) , (4 3 1) around circle-4, and so on.
So this permultaion list (named as plist in the program) up to level 3 looks like
((0 1 2) (3 1 2) (3 2 0) (3 0 1) (4 1 2) (4 2 3) (4 3 1) (5 2 0) (5 0 3) (5 3 2) (6 0 1) (6 1 3) (6 3 0))
Second: Finding a circle tangent to 3 circles around(Apollonius circle problem)
  To draw a circle, a coordinate value of the center (X,Y) and its radius R must be known.
Straight forward method is to solve the following quadratic equations :
(X - xi)2 + (Y - yi)2 = (R + ri)2
for i = 1,2,3
where xi , yi , ri are coordinate values and radii of 3 given circles.
This is the method used here by the author. But radius R can be computed totally independent of the coordinate values
using a very interesting formula found by French mathematician and philosopher René Descartes (1596 - 1650).
    2(a2 + b2 +c2 +d2 ) = (a + b + c + d)2
where a,b c & d are the reciprocal of radius (i.e. a = 1/ra, ...) for 4 circles and called "bend".
There is only one formula for eight possible circles, because the bend of a circle can be counted as a negative
if another circle touches it internally.This formula was rediscovered in 1842 and again in 1936 by Sir Frederick Soddy,
the discoverer of Soddy's hexlet.
Test this formula after choosing level 2, and use compute_r4 command.
All the radii (r1,r2,r3) are set to the base circle's radii as default.
The result will match the radius of circle #3.

2. Space Filling curves

2.1 Peano's space filling Curve
Peano_0.dwg
Initial stage

i
Peano_1.dwg
Initial stage

i
Peano_2.dwg
First step

i
Peano_3.dwg
Second step

i
Peano_0.dwg
Initial stage

i
Peano1_1.dwg
3-rd step
i
Peano1_1.dwg
4-th step
i
Peano1_3.dwg
5-th step
i
Peano_0.dwg
Initial stage

i
Peano2_1.dwg
3-rd step
i
Peano2_2.dwg
4-th step
i
Peano2_3.dwg
5-th step
i

Peano curve:   You can see the process in animation.
To create this drawing and animation:
   Load Peano.lsp    (load "Peano")
  Then from command line, type Peano

Peano1 curve:   You can see the process in animation.
To create this drawing and animation:
   Load Peano1.lsp    (load "Peano1")
  Then from command line, type Peano1

Peano2 curve:   You can see the process in animation.
To create this drawing and animation:
   Load Peano2.lsp    (load "Peano2")
  Then from command line, type Peano2

2.2 Hilbert's Space Filling Curves
Hilbert_0_1.dwg
Initial stage

i
Hilbert_0_2.dwg
Initial stage

i
Hilbert_0_3.dwg
First step

i
Hilbert_0_4.dwg
Second step

i
Hilbert_2_0.dwg
Initial stage

i
Hilbert_2_2.dwg
3-rd step
i
Hilbert_2_3.dwg
4-th step
i
Hilbert_2_4.dwg
5-th step
i
Hilbert_3_1.dwg
Initial stage

i
Hilbert_3_2.dwg
3-rd step
i
Hilbert_3_3.dwg
4-th step
i
Hilbert_3_4.dwg
5-th step
i
Hilbert_4_1.dwg
Initial stage

i
Hilbert_4_2.dwg
3-rd step
i
Hilbert_4_3.dwg
4-th step
i
Hilbert_4_4.dwg
5-th step
i

Hilbert's curve #1:   You can see the process in
animation.
To create this drawing and animation:
   Load Hilbert1.lsp    (load "Hilbert")
  Then from command line, type Hilbert

Hilbert's curve #2:   You can see the process in animation.
To create this drawing and animation:
   Load Hilbert2.lsp    (load "Hilbert2")
  Then from command line, type Hilbert2

Hilbert's curve #3:   You can see the process in animation.
To create this drawing and animation:
   Load Hilbert3.lsp    (load "Hilbert3")
  Then from command line, type Hilbert3

Hilbert's curve #4:   You can see the process in animation.
To create this drawing and animation:
   Load Hilbert4.lsp    (load "Hilbert4")
  Then from command line, type Hilbert4

2.3 Sierpinski's Space Filling Curves
Sierpinski_0_0.dwg
Initial stage

i
Sierpinski_0_1.dwg
Initial stage

i
Sierpinski_0_2.dwg
First step

i
Sierpinski_0_3.dwg
Second step

i
Sierpinski_1_0.dwg
Initial stage

i
Sierpinski_1_1.dwg
Initial stage

i
Sierpinski_1_2.dwg
First step

i
Sierpinski_1_3.dwg
Second step

i

Sierpinski's Space filling curve:   You can see the process in animation.
To create this drawing and animation:
   Load Sierpinski.lsp    (load "Sierpinski")
  Then from command line, type Sierpinski

2.4 Levy's "C-shape" curve
Click here to see c_shape1 animation
c_shape1_1.dwg
Initial stage

i
c_shape1_2.dwg
2-nd stage

i
c_shape1_3.dwg
3-rd step

i
c_shape1_4.dwg
4-th step

i
c_shape1_5.dwg
5-th step

i

Click here to see c_shape2 animation
c_shape2_1.dwg
Initial stage

i
c_shape2_2.dwg
2-nd stage

i
c_shape2_3.dwg
3-rd step

i
c_shape2_4.dwg
4-th step

i
c_shape2_5.dwg
5-th step

i

Click here to see c_shape3 animation
c_shape3_1.dwg
Initial stage

i
c_shape3_2.dwg
2-nd stage

i
c_shape3_3.dwg
3-rd step

i
c_shape3_4.dwg
4-th step

i
c_shape3_5.dwg
5-th step

i

To create this drawing and animation:
   Load c_shape.lsp    (load "c_shape")
  Then from command line, type c_shape1, c_shape2, & c_shape3

3. Fractal Tree, Dragon curves

3.1 Fractal Trees (ref . ??)
Click here to see Fractal Tree animation
fractal_tree_2.dwg
2-nd stage

i
fractal_tree_4.dwg
4-th stage

i
fractal_tree_6.dwg
6-th stage

i
fractal_tree_9.dwg
9-th stage

i
fractal_tree.dwg
final step

i

Click here to see Tree Lune animation
tree_lune_2.dwg
Initial stage

i
tree_lune_4.dwg
2-nd stage

i
tree_lune_6.dwg
3-rd step

i
tree_lune_9.dwg
4-th step

i
fractal_tree_lune.dwg
5-th step

i

Click here to see Tree Trig animation
tree_trig_2.dwg
2-nd stage

i
tree_trig_4.dwg
4-th stage

i
tree_trig_6.dwg
6-th step

i
tree_trig_9.dwg
9-th step

i
fractal_tree_trig.dwg
final stage

i

Click here to see T-branch animation
tbranch_2.dwg
Initial stage

i
tbranch_4.dwg
2-nd stage

i
tbranch_6.dwg
3-rd step

i
tbranch_9.dwg
4-th step

i
fractal_tbranch.dwg
5-th step

i

Click here to see T-branch Square animation
tbranch_square_2.dwg
Initial stage

i
tbranch_square_4.dwg
2-nd stage

i
tbranch_square_6.dwg
3-rd step

i
tbranch_square_8.dwg
4-th step

i
fractal_tbranch_square.dwg
5-th step

i

Click here to see 3fold animation
3fold_2.dwg
Initial stage

i
3fold_4.dwg
2-nd stage

i
3fold_6.dwg
3-rd step

i
3fold_8.dwg
4-th step

i
fractal_3fold.dwg
5-th step

i

Click here to see 3fold lune animation
3fold_lune_2.dwg
2nd stage

i
3fold_lune_4.dwg
4-th stage

i
3fold_lune_5.dwg
5-th step

i
3fold_lune_6.dwg
6-th step

i
fractal_3fold_lune.dwg
final step

i

Click here to see 3fold square animation
3fold_square_2.dwg
2-nd stage

i
3fold_square_4.dwg
4-th stage

i
3fold_square_6.dwg
6-th step

i
3fold_square_7.dwg
7-th step

i
fractal_3fold_square.dwg
final step

i

Click here to see "pent" animation
pent_2.dwg
2nd stage

i
pent_4.dwg
4-th stage

i
pent_5.dwg
5-th step

i
pent_6.dwg
6-th step

i
fractal_pent.dwg
final step

i

Click here to see "pent_lune" animation
pent_lune_2.dwg
2-nd stage

i
pent_lune_4.dwg
4-th stage

i
pent_lune_5.dwg
5-th step

i
pent_lune_6.dwg
6-th step

i
fractal_pent_lune.dwg
final step

i

Click here to see "pentagon" animation
pentagon_2.dwg
2-nd stage

i
pentagon_4.dwg
4-th stage

i
pentagon_5.dwg
5-th step

i
pentagon_6.dwg
6-th step

i
fractal_pentagon.dwg
final step

i

Click here to see "pentagon_whole" animation
pentagon_whole_2.dwg
2-nd stage

i
pentagon_whole_4.dwg
4-th stage

i
pentagon_whole_5.dwg
5-th step

i
pentagon_whole_6.dwg
6-th step

i
fractal_pentagon_whole.dwg
7-th step

i

To create this drawing and animation:
   Load fractal_tree.lsp    (load "fractal_tree")

case:            command & Input
tree:           tree,input(golden ratio=0.618043)
tree_lune:           tree_lune,input(golden ratio=0.618043)
tree_trig:           tree_trig,input(golden ratio=0.618043)
tbranch:           tbranch,input(golden ratio=0.618043)
tbranch_square:           tbranch_square,input(golden ratio=0.618043)
3fold:           3fold,input(0.5)
3fold_lune:           3fold_lune,input(0.5)
3fold_square:           3fold_square,input(golden ratio=0.618043)
pent:           pent,input(one_m_rho)
pent_lune:           pent_lune,input(one_m_rho)
pentagon:           pentagon,input(one_m_rho)
pentagon_whole:           pentagon_whole,input(golden ratio=0.618043)

3.2 Pythagoras Tree (ref . ??)
Click here to see Pythagoras Tree #1 animation
ptree_1_1.dwg
1-st stage

i
ptree_1_3.dwg
3-rd stage

i
ptree_1_6.dwg
6-th stage

i
ptree_1_8.dwg
8-th stage

i
ptree_1_13.dwg
13-th stage

i
Click here to see Pythagoras Tree #2 animation
ptree_2_1.dwg
1-st stage

i
ptree_2_3.dwg
3-rd stage

i
ptree_2_6.dwg
6-th stage

i
ptree_2_8.dwg
8-th stage

i
ptree_2_13.dwg
13-th stage

i
Click here to see Pythagoras Tree #3 animation
ptree_3_1.dwg
1-st stage

i
ptree_3_3.dwg
3-rd stage

i
ptree_3_6.dwg
6-th stage

i
ptree_3_8.dwg
8-th stage

i
ptree_3_13.dwg
13-th stage

i
Click here to see Pythagoras Tree #1 animation
linetree1_1.dwg
1-st stage

i
linetree1_3.dwg
3-rd stage

i
linetree1_6.dwg
6-th stage

i
linetree1_8.dwg
8-th stage

i
linetree1_11.dwg
11-th stage

i
Click here to see Pythagoras Tree #1 animation
linetree3_1.dwg
1-st stage

i
linetree3_3.dwg
3-rd stage

i
linetree3_6.dwg
6-th stage

i
linetree3_8.dwg
8-th stage

i
linetree3_12.dwg
12-th stage

i
Click here to see Pythagoras Tree #1 animation
linetree2_1.dwg
1-st stage

i
linetree2_3.dwg
3-rd stage

i
linetree2_6.dwg
6-th stage

i
linetree2_8.dwg
8-th stage

i
linetree2_12.dwg
12-th stage

i

Click here to see "Mandelbrot Tree - Bronchi" animation
tree3_fill_1.dwg
1-st stage

i
tree3_fill_3.dwg
3-rd stage

i
tree3_fill_6.dwg
6-th step

i
tree3_fill_8.dwg
8-th step

i
tree3_fill_10.dwg
10-th step

i

Click here to see "Realistic tree" animation
tree4_fill_1.dwg
1-st stage

i
tree4_fill_3.dwg
3-rd stage

i
tree4_fill_6.dwg
6-th step

i
tree4_fill_8.dwg
8-th step

i
tree4_fill_11.dwg
11-th step

i

Click here to see "Realistic tree" animation
tree5_1.dwg
1-st stage

i
tree5_3.dwg
3-rd stage

i
tree5_6.dwg
6-th step

i
tree5_8.dwg
8-th step

i
tree5_12.dwg
11-th step

i

To create this drawing and animation:
   Load pythagoras_tree.lsp    (load "pythagoras_tree")

Executable:

pythagorean_tree
tree2
tree3
tree4
tree5

3.2 Dragon Curves (ref . ??)

Click here to see "page50" animation
page50_1.dwg
Initial stage

i
page50_2.dwg
2-nd stage

i
page50_3.dwg
3-rd stage

i
page50_4.dwg
4-th stage

i
page50_5.dwg
5-th step

i

Click here to see "page52" animation
page52_1.dwg
Initial stage

i
page52_2.dwg
2-nd stage

i
page52_3.dwg
3-rd stage

i
page52_4.dwg
4-th stage

i
page52_5.dwg
5-th step

i

Click here to see "page54" animation
page54_1.dwg
Initial stage

i
page54_2.dwg
2-nd stage

i
page54_3.dwg
3-rd stage

i
page54_3.dwg
3-rd stage detail 1

i
page54_3.dwg
3-rd stage detail 2

i

Click here to see "page55" animation
page55_1.dwg
Initial stage

i
page55_2.dwg
2-nd stage

i
page55_3.dwg
3-rd stage

i
page55_3.dwg
3-rd stage detail 1

i
page55_3.dwg
3-rd stage detail 2

i

Click here to see "page64" animation
page64_1.dwg
Initial stage

i
page64_2.dwg
2-nd stage

i
page64_6.dwg
6-th stage

i
page64_10.dwg
10-th stage

i
page64_14.dwg
14-th stage

i

Click here to see "page68" animation
page68_1.dwg
Initial stage

i
page68_2.dwg
2-nd stage

i
page68_4.dwg
4-th stage

i
page68_4_round.dwg
4-th step rounded

i
page68_4_round.dwg
4-th step detail

i

Click here to see "page70" animation
page70_1.dwg
Initial stage

i
page70_2.dwg
2-nd stage

i
page70_3.dwg
3-rd stage

i
page70_4.dwg
4-th step

i
page70_4_det.dwg
4-th step detail

i

To create this drawing and animation:
   Load fractal_mandelb.lsp    (load "fractal_mandelb")
  Then from command line, type page50, 52, 54,...,70

4. Function Iteration and Newton's method

4.1 Newton's method
newton1_result.dwg     newton1_result.jpg
Funtion Graph

i
newton1_result.dwg     newton1_result_detail.jpg
Process Detail

i

To create this drawing :
   Load newton1.lsp    (load "newton1")
  Then from command line, type newton1
But this method works only if the function graph f(x) has point(s) of intersection on x-axis. For example, when f(x) = x2 + 1 = 0, this method does not work !!
Cayley proposed that if this idea is expanded to the complex plane (z = x + iy), then it is possible to obtain the roots in the complex plane, and he showed one example in a quadratic equation case.

4.2 iteration of quadratic functions
Function tested is given by f(z) = z2 + 1 = 0. Since f', ( firrst derivative of f(z) ) = 2z, the iteration function is:
zn+1 = (1/2)(zn - 1/zn)
Orbit test
First let us find out the general behaviour of the iteration function used .
The iteration function is given by zn+1 = (1/2)(zn - 1/zn)
The process goes this way:
Select any point in the complex plane. This is the initial guess point(z0).
Compute z1 using the iterationn function. Connect z0 and z1.
Continue the process 10 times. Color the point z0, white, z1, red, z2, yellow, z3, green,etc for clear identification.
After several steps all points converge to one of the two roots.
The result is shown below.

To create this drawing :
   Load fractal_tools.lsp    (load "fractal_tools")
  Then from command line, type orbit_test_f4
orbit_test_quadratic.dwg
orbit_test_quadratic.jpg
Orbit Test

i
orbit_test_quadratic.dwg
orbit_test_quadratic_detail.jpg
Orbit Test -detail

i
Orbit test shows that x_axis is the clear boundary line to decide which root a selected point will converge after several steps. If the point selected is above x_axis , all points tend to arrive the point(0, 1). If below x-axis, the point ( 0 -1 ).
newton_quadratic_1.dwg newton_quadratic_1.jpg
Color map1

i
newton_quadratic_1.dwg newton_quadratic_2.jpg
Color map2

i
newton_quadratic_1.dwg newton_quadratic_3.jpg
Color map3

i

To create this drawing :
   Load newton_iteration.lsp    (load "newton_iteration")
  Then from command line, type quadratic
Now it looks easy to apply the same idea to the case of cubic equation.

4.3 iteration of cubic functions
Function tested is given by f(z) = z3 - 1 = 0. Since f', ( first derivative of f(z) ) = 3z2, the iteration function is:
zn+1 = (2 (zn)3 + 1)/(3(zn)2)
Orbit test
First let us find out the general behaviour of the iteration function used .
The iteration function is given by zn+1 = (2 (zn)3 + 1)/(3(zn)2)
The process goes this way:
Select any point in the complex plane. This is the initial guess point(z0).
Compute z1 using the iterationn function. Connect z0 and z1.
Continue the process 20 times. Color the point z0, white, z1, red, z2, yellow, z3, green,etc for clear identification.
After several steps all points converge to one of the three roots.
The result is shown below.

To create this drawing :
   Load fractal_tools.lsp    (load "fractal_tools")
  Then from command line, type orbit_test_f5

orbit_test_cubic.dwg
orbit_test_cubic.jpg
Orbit Test

i
orbit_test_cubic.dwg
orbit_test_cubic_detail.jpg
Orbit Test -detail

i

In this drawing, 3 thick red lines divides whole complex plane into 3 regions, each corresponding to the root within the region.
Our intuition tells us that any point selected in the region, after iterations, would converge to the root within the region
where the point belongs.
Orbit test result shows otherwise. Points 1-4 behaves as expected, but points 5,6 converge to the root in other regions.
In order to see the behaviour, the same algorith is used to compute iteration map for this cubic equation.
The result is shown below. Obviously something complex is happening around the boundary regions.(See color map 1)
Since this map does not distinguish which root the particular point is converging, another algorithm is used to color the points
according to the roots the iteration ends up.
The points ,which eventually converge to root-1 (1,0), is colored with Red Hue.
Root-2 uses Green Hue, and Root-3, Blue Hue.(See color map 2)
This will explain clearly what is happening to point 5,6 in orbit test.
Click here to see Cubic Iteration Solution animation

newton_cube_50_1.dwg newton_cube_50_1.jpg
Color map1

i
cubic_newton_10.dwg cubic_newton_10.jpg
Color map2

i
cubic_newton_22.dwg cubic_newton_22.jpg
Color map3 (Detail)

i

To create this drawing :
   Load newton_iteration.lsp    (load "newton_iteration")
Additional step:
   Load fractal_tools.lsp    (load "fractal_tools")
Color map 1
  Then from command line, type cubic_1
For coloring nodes, use LAYER_COLOR_TEST command.
For the following 2 cases, use SET_NEWTON_COLOR1 command.
Color map 2
  Then from command line, type cubic_rgb
Color map 3
  Then from command line, type cubic_autozoom
This is the 22-nd picture of the series.

5. Julia Set

Choose any complex number z = x + iy,which represents coordinate value (x,y) in Cartesian coordinate system, and a complex constant c. A quadratic function f(z) = z2 + c is used to caluculate the sequential location of z. Repeat the process and the resulting position of z is plotted on the x-y plane.
What will be the result ?
There are 3 possibilities for the point selected:
(1) it may go further and further away from the initial point and disappear toward infinity.
(2) it may tend toward a fixed point
(3) it may jump around in a region (called "strange attractor")
orbit_test_1.dwg
orbit_test_1.jpg
Orbit Test

i

orbit_test_scene_1.dwg orbit_test_scene_1.jpg
C = -1

i
orbit_test_scene_2.dwg orbit_test_scene_2.jpg
C = 0.3 - 0.4 i

i
orbit_test_scene_3.dwg orbit_test_scene_3.jpg
C = .360284 + .100376 i

i
orbit_test_scene_4.dwg orbit_test_scene_4.jpg
C = -.1 + .8 i

i
The set of points ( "strange attractor" ) is called Julia set for this particular point "c".
There are only two types of Julia set depending upon the location of "k" .
They are either connected or disconnected like Cantor set(called Fatou dust).
It is easy to understand the situation if the simplest case is considered.

5.1 Julia Set for a quadratic function ( z2 + c )
In this case, "connected" or "disconnected" is decided by where the point "c" is located in the Mandelbrot Set
Mandelbrot set will be discussed next, but for now, let us say there is a map which explains the behaviour of Julia set, and this is called mandelbrot Set.

Julia_set_sample_data_location.dwg Julia_set_sample_data_location.jpg
Color map1

i

Data Set ID No.			C value				Range
			Real		Imag	
	1		0.31		0.04		(0.87 1.11)
	2		-0.11		0.6557		(1.2924 1.0970)
	3		-0.12		0.74		(1.3185 1.1177)
	4		0.0		1.0		(1.3395 1.1786)
	5		-0.194		0.6557		(1.3204 1.0873)
	6		-0.74543		0.11301		(1.5391 0.9100)
	7		-1.25		0.0		(1.7748 0.7825)
	8		-0.481762		-0.531657		(1.4458 1.0155)	
	9		-0.39054		-0.58679		(1.4821 1.1179)	
	10		-0.15652		-1.03225		(1.4681 1.2157)
	11		0.11031		-0.67037		(1.3003 1.2576)
	12		0.27334		0.00742		(1.0626 1.2716)
	13		0.32		0.043		(0.85821 1.12914)
	14		-0.12375		0.56508		(1.5 1.5)
	15		-0.11		0.67		(1.5 1.5)
How to create the following mono-chrome drawings :
   Load julia_mono.lsp    (load "julia_mono")
  Then from command line, type julia_set

Mono-chrome output
Julia_01_002_mono2.dwg
Julia_01_002_mono2.jpg
Case #01

i
Julia_02_002_mono2.dwg
Julia_02_002_mono2.jpg
Case #02

i
Julia_03_002_mono2.dwg
Julia_03_002_mono2.jpg
Case #03

i
Julia_04_002_mono2.dwg
Julia_04_002_mono2.jpg
Case #04

i
Julia_05_002_mono2.dwg
Julia_05_001_mono2.jpg
Case #05

i
Julia_06_002_mono2.dwg
Julia_06_001_mono2.jpg
Case #06

i
Julia_07_002_mono2.dwg
Julia_07_002_mono2.jpg
Case #07

i
Julia_08_002_mono2.dwg
Julia_08_002_mono2.jpg
Case #08

i
Julia_09_002_mono2.dwg
Julia_09_002_mono2.jpg
Case #09

i
Julia_10_002_mono2.dwg
Julia_10_002_mono2.jpg
Case #10

i
Julia_11_002_mono2.dwg
Julia_11_0002_mono.jpg
Case #11

i
Julia_12_002_mono2.dwg
Julia_12_002_mono2.jpg
Case #12

i
How to create the following drawings :
   Load julia_set.lsp    (load "julia_set")
  Then from command line, type julia_set

Color output
Julia_01_002_color.dwg
Julia_01_002_color.jpg
Case #01

i
Julia_02_002_color.dwg
Julia_02_002_color.jpg
Case #02

i
Julia_03_002_color.dwg
Julia_03_002_color.jpg
Case #03

i
Julia_04_002_color.dwg
Julia_04_002_color.jpg
Case #04

i
Julia_05_002_color.dwg
Julia_05_002_color.jpg
Case #05

i
Julia_06_002_color.dwg
Julia_06_002_color.jpg
Case #06

i
Julia_07_002_color.dwg
Julia_07_002_color.jpg
Case #07

i
Julia_08_002_color.dwg
Julia_08_002_color.jpg
Case #08

i
Julia_09_002_color.dwg
Julia_09_002_color.jpg
Case #09

i
Julia_10_002_color.dwg
Julia_10_002_color.jpg
Case #10

i
Julia_11_002_color.dwg
Julia_11_002_color.jpg
Case #11

i
Julia_12_002_color.dwg
Julia_12_002_color.jpg
Case #12

i


5.2 Julia-like fractal for other functions
5.2.1 Sine function
5.2.2 Cosine function
5.2.3 Hyperbolic sine function
5.2.4 Hyperbolic cosine function
5.2.5 Exponential function
5.2.6 Orthogonal polynomials

6. Mandelbrot Set

6.1 Mandelbrot Set
6.2 Mandelbrot-like Set for other functions

7. IFS(Iterated Funtion System)

References

There are many books written on this topics. The books referenced in posting the above contents are listed in four groups:
1. Classic books
2. Introduction to the concept
3. Generally for writing computer codes
4. College Math-textbook type
5. General reference

1. Classic books

  1. Mandelbrot, Benoit B.: The Fractal Geometry of Nature. Freeman, 1977.
  2. Peitgen, Heinz-Otto., Richter, Peter H.: The Beauty of Fractals - Images of Complex Dynamical Systems . Springer-Verlag, 1986.
  3. Przemyslaw Prusinkiewicz, Aristid Lindenmayer: The Algorithmic Beauty of Plants. Springer-Verlag, 1990.
  4. Peitgen Heinz-Otto., Jurgens,H.,Saupe,D.: Chaos and Fractals - New Frontiers of Science. Springer-Verlag, 1992.
  5. Barnsley,Michael F.: Fractals Everywhere. Academic Press. 1993.
  6. Flake, Gary W.: The Computational Beauty of Nature - Computer Explorations of Fractals,Chaos, Complex Systems, and Adaptaions. MIT Press. 1998.
  7. Mumford,D.,Series C.,Wright,D.: Indra's Pearls - The Vision of Felix Klein. Cambridge Univ. Press. 2002.

2. Introduction to the concept

  1. Lauwerier, Hans A.: Fractal - Endlessly Repeated Geometrical Figures. Princeton Univ. Press. 1991.
  2. McGuire, Michael D.: An Eye for Fractals. Addison-Wesley. 1991.
  3. Briggs, John: Fractal - The Patterns of Chaos. Simon and Schuster, 1992.
  4. Nigel Lesmoir-Gordon, Will Rood, Ralph Edney: Introductions - Fractal Geometry. Totem Books, 2000.
  5. Clark, Arthur,C.,et al: The Colours of Infinity - The Beauty and Power of Fractals. Clear Books, 2006.
  6. Smith,Leonard A.: Chaos - A Very Short Introduction. Oxford Univ. Press, 2007.
3. Generally for writing computer codes
  1. Peitgen Heinz-Otto., Saupe,Dietmar.,Editors: The Science of Fractal Images. Springer-Verlag, 1988.
  2. Laplante, Phil.: Fractal Mania. Windcress/McGraw-Hill,1994..
  3. Stevens,Robert T.: Creating Fractals. Charles River Media, 2005.
4. College Math-textbook type
  1. Ahlfors,Lars V.: Complex Analysis - An Introduction to the Theory of Analytic Functions of One Complex Variable. MaGraw-Hill. 1953.
  2. Devaney,Robert L.: Chaos, Fractals and Dynamics-Computer Experiments in Mathematics. Addison-Wesley,1990.
  3. Devaney,Robert L.: A First Course in Chaotic Dynamical Systems- Theory and Experiment. Addison-Wesley,1992.
  4. Sagan,Hans.: Space-Filling Curves. Springer-Verlag. 1994.
  5. Devaney,Robert L.: The Mandelbrot and Julia Sets - A Tool Kit of Dynamic Activities. Key Curriculum Press. 2000.
  6. Walser,Hans.: The Golden Section. Mathematical Association of America, 2001.
  7. Devaney,Robert L.: An Introduction to Chaotic Dynamical Systems. WestView Press. 2003.
  8. Davies,Brian: Exploring Chaos - theory and experiment. WestView,2004.
4. Other references
  1. Falconer,Kenneth J.: Fractal Geometry - Mathematical Foundations and Applications. John Wiley and Sons. 1990.
  2. Falconer,Kenneth J.: Techniques in Fractal Geometry. John Wiley and Sons. 1997.
  3. Lorenz,Edward N.: The Essence of Chaos. Univ of Washington Press. 1993.
  4. Mandelbrot, Benoit B.: Fractal and Chaos - The Mndelbrot Set and Beyond. Springer-Verlag. 2004.
  5. Barnsley, Michael F.: SuperFractals - Pattern of Nature. Cambridge Univ. Press. 2006.

Go to   Fun_Math Content Table

All questions/complaints/suggestions should be sent to Takaya Iwamoto

Last Updated July 18-th, 2008

Copyright 2006 Takaya Iwamoto   All rights reserved. .