Go to Fun_Math Content Table
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
"spacefilling 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 19th and early 20th 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 "NewtonFourier 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.
******************************* 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
Koch_base_0.dwg Initial stage 
Koch_base_1.dwg First step 
Koch_base_2.dwg Second step 
Koch_base_3.dwg 3rd step 
Koch_base_4.dwg 4th step 
Koch_base_5.dwg 5th step 
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
snowflake_0.dwg Initial stage 
snowflake_1.dwg First step 
snowflake_2.dwg Second step 
snowflake_3.dwg Third step 
snowflake_4.dwg Fourth step 
snowflake_0.dwg Initial stage 
antisnowflake_1.dwg First step 
antisnowflake_2.dwg Second step 
antisnowflake_3.dwg Third step 
antisnowflake_4.dwg Fourth step 
You can see the process in animation.
Snowflake animation

Antisnowflake 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 AntiSnowflake case
blancmange_1.dwg Initial stage 
blancmange_2.dwg Second step 
blancmange_3.dwg Third step 
blancmange_4.dwg 4th step 
blancmange_5.dwg 5th stage 
blancmange_6.dwg 6th step 
blancmange_7.dwg 7th step 
blancmange_8.dwg 8th step 
You can see the process in animation.
To create this drawing and animation:
Load blancmange.lsp (load "blancmange")
Then from command line, type blancmange
gasket_1.dwg Initial stage 
gasket_2.dwg Second step 
gasket_4.dwg 4th step 
gasket_8.dwg 8th step 
maze_1.dwg Initial stage 
maze_2.dwg 2nd step 
maze_4.dwg 4th step 
maze_8.dwg 8th step 
arrowhead_1.dwg Initial stage 
arrowheade_2.dwg Second step 
arrowhead_4.dwg 4th step 
arrowhead_8.dwg 8th step 
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 
square_gasket_2.dwg Second step 
square_gaskett_4.dwg 4th step 
square_gasket_8.dwg 8th step 
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 
sqr_gasket2_2.dwg Second step 
sqr_gasket2_4.dwg 4th step 
sqr_gasket2_7.dwg 7th step 
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 3Dimension:
Cube Gasket
cube_gasket_1.dwg Initial stage 
cubee_gasket_2.dwg Second step 
cube_gasket_3.dwg 3rd step 
cube_gasket_4.dwg 4th step 
cube_gasket_5.dwg 5th step 
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 
tetrae_gasket_2.dwg Second step 
tetra_gasket_3.dwg 3rd step 
tetra_gasket_4.dwg 4th step 
tetra_gasket_5.dwg 5th step 
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
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 level1, then level N is accomplished by
drawing
total sum of {1 + 3^{2} + 3^{3} + ... + 3^{N1}} circles.
For example , level9 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) 
circle_fill_level_4.dwg level 4(40 circles) 
circle_fill_level_6.dwg level 6(364 circles) 
circle_fill_level_9.dwg level 9(9841 circles) 
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 level6.
************** level_6_solid.dwg **************
**************** circle_id.dwg ****************
Peano_0.dwg Initial stage 
Peano_1.dwg Initial stage 
Peano_2.dwg First step 
Peano_3.dwg Second step 
Peano_0.dwg Initial stage 
Peano1_1.dwg 3rd step 
Peano1_1.dwg 4th step 
Peano1_3.dwg 5th step 
Peano_0.dwg Initial stage 
Peano2_1.dwg 3rd step 
Peano2_2.dwg 4th step 
Peano2_3.dwg 5th step 
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
Hilbert_0_1.dwg Initial stage 
Hilbert_0_2.dwg Initial stage 
Hilbert_0_3.dwg First step 
Hilbert_0_4.dwg Second step 
Hilbert_2_0.dwg Initial stage 
Hilbert_2_2.dwg 3rd step 
Hilbert_2_3.dwg 4th step 
Hilbert_2_4.dwg 5th step 
Hilbert_3_1.dwg Initial stage 
Hilbert_3_2.dwg 3rd step 
Hilbert_3_3.dwg 4th step 
Hilbert_3_4.dwg 5th step 
Hilbert_4_1.dwg Initial stage 
Hilbert_4_2.dwg 3rd step 
Hilbert_4_3.dwg 4th step 
Hilbert_4_4.dwg 5th step 
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
Sierpinski_0_0.dwg Initial stage 
Sierpinski_0_1.dwg Initial stage 
Sierpinski_0_2.dwg First step 
Sierpinski_0_3.dwg Second step 
Sierpinski_1_0.dwg Initial stage 
Sierpinski_1_1.dwg Initial stage 
Sierpinski_1_2.dwg First step 
Sierpinski_1_3.dwg Second step 
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
c_shape1_1.dwg Initial stage 
c_shape1_2.dwg 2nd stage 
c_shape1_3.dwg 3rd step 
c_shape1_4.dwg 4th step 
c_shape1_5.dwg 5th step 
c_shape2_1.dwg Initial stage 
c_shape2_2.dwg 2nd stage 
c_shape2_3.dwg 3rd step 
c_shape2_4.dwg 4th step 
c_shape2_5.dwg 5th step 
c_shape3_1.dwg Initial stage 
c_shape3_2.dwg 2nd stage 
c_shape3_3.dwg 3rd step 
c_shape3_4.dwg 4th step 
c_shape3_5.dwg 5th step 
To create this drawing and animation:
Load c_shape.lsp (load "c_shape")
Then from command line, type c_shape1, c_shape2, & c_shape3
fractal_tree_2.dwg 2nd stage 
fractal_tree_4.dwg 4th stage 
fractal_tree_6.dwg 6th stage 
fractal_tree_9.dwg 9th stage 
fractal_tree.dwg final step 
tree_lune_2.dwg Initial stage 
tree_lune_4.dwg 2nd stage 
tree_lune_6.dwg 3rd step 
tree_lune_9.dwg 4th step 
fractal_tree_lune.dwg 5th step 
tree_trig_2.dwg 2nd stage 
tree_trig_4.dwg 4th stage 
tree_trig_6.dwg 6th step 
tree_trig_9.dwg 9th step 
fractal_tree_trig.dwg final stage 
tbranch_2.dwg Initial stage 
tbranch_4.dwg 2nd stage 
tbranch_6.dwg 3rd step 
tbranch_9.dwg 4th step 
fractal_tbranch.dwg 5th step 
tbranch_square_2.dwg Initial stage 
tbranch_square_4.dwg 2nd stage 
tbranch_square_6.dwg 3rd step 
tbranch_square_8.dwg 4th step 
fractal_tbranch_square.dwg 5th step 
3fold_2.dwg Initial stage 
3fold_4.dwg 2nd stage 
3fold_6.dwg 3rd step 
3fold_8.dwg 4th step 
fractal_3fold.dwg 5th step 
3fold_lune_2.dwg 2nd stage 
3fold_lune_4.dwg 4th stage 
3fold_lune_5.dwg 5th step 
3fold_lune_6.dwg 6th step 
fractal_3fold_lune.dwg final step 
3fold_square_2.dwg 2nd stage 
3fold_square_4.dwg 4th stage 
3fold_square_6.dwg 6th step 
3fold_square_7.dwg 7th step 
fractal_3fold_square.dwg final step 
pent_2.dwg 2nd stage 
pent_4.dwg 4th stage 
pent_5.dwg 5th step 
pent_6.dwg 6th step 
fractal_pent.dwg final step 
pent_lune_2.dwg 2nd stage 
pent_lune_4.dwg 4th stage 
pent_lune_5.dwg 5th step 
pent_lune_6.dwg 6th step 
fractal_pent_lune.dwg final step 
pentagon_2.dwg 2nd stage 
pentagon_4.dwg 4th stage 
pentagon_5.dwg 5th step 
pentagon_6.dwg 6th step 
fractal_pentagon.dwg final step 
pentagon_whole_2.dwg 2nd stage 
pentagon_whole_4.dwg 4th stage 
pentagon_whole_5.dwg 5th step 
pentagon_whole_6.dwg 6th step 
fractal_pentagon_whole.dwg 7th step 
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)
ptree_1_1.dwg 1st stage 
ptree_1_3.dwg 3rd stage 
ptree_1_6.dwg 6th stage 
ptree_1_8.dwg 8th stage 
ptree_1_13.dwg 13th stage 
ptree_2_1.dwg 1st stage 
ptree_2_3.dwg 3rd stage 
ptree_2_6.dwg 6th stage 
ptree_2_8.dwg 8th stage 
ptree_2_13.dwg 13th stage 
ptree_3_1.dwg 1st stage 
ptree_3_3.dwg 3rd stage 
ptree_3_6.dwg 6th stage 
ptree_3_8.dwg 8th stage 
ptree_3_13.dwg 13th stage 
linetree1_1.dwg 1st stage 
linetree1_3.dwg 3rd stage 
linetree1_6.dwg 6th stage 
linetree1_8.dwg 8th stage 
linetree1_11.dwg 11th stage 
linetree3_1.dwg 1st stage 
linetree3_3.dwg 3rd stage 
linetree3_6.dwg 6th stage 
linetree3_8.dwg 8th stage 
linetree3_12.dwg 12th stage 
linetree2_1.dwg 1st stage 
linetree2_3.dwg 3rd stage 
linetree2_6.dwg 6th stage 
linetree2_8.dwg 8th stage 
linetree2_12.dwg 12th stage 
tree3_fill_1.dwg 1st stage 
tree3_fill_3.dwg 3rd stage 
tree3_fill_6.dwg 6th step 
tree3_fill_8.dwg 8th step 
tree3_fill_10.dwg 10th step 
tree4_fill_1.dwg 1st stage 
tree4_fill_3.dwg 3rd stage 
tree4_fill_6.dwg 6th step 
tree4_fill_8.dwg 8th step 
tree4_fill_11.dwg 11th step 
tree5_1.dwg 1st stage 
tree5_3.dwg 3rd stage 
tree5_6.dwg 6th step 
tree5_8.dwg 8th step 
tree5_12.dwg 11th step 
To create this drawing and animation:
Load pythagoras_tree.lsp (load "pythagoras_tree")
Executable:
pythagorean_tree
tree2
tree3
tree4
tree5
page50_1.dwg Initial stage 
page50_2.dwg 2nd stage 
page50_3.dwg 3rd stage 
page50_4.dwg 4th stage 
page50_5.dwg 5th step 
page52_1.dwg Initial stage 
page52_2.dwg 2nd stage 
page52_3.dwg 3rd stage 
page52_4.dwg 4th stage 
page52_5.dwg 5th step 
page54_1.dwg Initial stage 
page54_2.dwg 2nd stage 
page54_3.dwg 3rd stage 
page54_3.dwg 3rd stage detail 1 
page54_3.dwg 3rd stage detail 2 
page55_1.dwg Initial stage 
page55_2.dwg 2nd stage 
page55_3.dwg 3rd stage 
page55_3.dwg 3rd stage detail 1 
page55_3.dwg 3rd stage detail 2 
page64_1.dwg Initial stage 
page64_2.dwg 2nd stage 
page64_6.dwg 6th stage 
page64_10.dwg 10th stage 
page64_14.dwg 14th stage 
page68_1.dwg Initial stage 
page68_2.dwg 2nd stage 
page68_4.dwg 4th stage 
page68_4_round.dwg 4th step rounded 
page68_4_round.dwg 4th step detail 
page70_1.dwg Initial stage 
page70_2.dwg 2nd stage 
page70_3.dwg 3rd stage 
page70_4.dwg 4th step 
page70_4_det.dwg 4th step detail 
To create this drawing and animation:
Load fractal_mandelb.lsp (load "fractal_mandelb")
Then from command line, type page50, 52, 54,...,70
newton1_result.dwg
newton1_result.jpg Funtion Graph 
newton1_result.dwg
newton1_result_detail.jpg Process Detail 
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 xaxis.
For example, when f(x) = x^{2} + 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.
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 
orbit_test_quadratic.dwg orbit_test_quadratic_detail.jpg Orbit Test detail 
newton_quadratic_1.dwg
newton_quadratic_1.jpg Color map1 
newton_quadratic_1.dwg
newton_quadratic_2.jpg Color map2 
newton_quadratic_1.dwg
newton_quadratic_3.jpg Color map3 
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.
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 
orbit_test_cubic.dwg orbit_test_cubic_detail.jpg Orbit Test detail 
newton_cube_50_1.dwg
newton_cube_50_1.jpg Color map1 
cubic_newton_10.dwg
cubic_newton_10.jpg Color map2 
cubic_newton_22.dwg
cubic_newton_22.jpg Color map3 (Detail) 
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 22nd picture of the series.
orbit_test_1.dwg orbit_test_1.jpg Orbit Test 
orbit_test_scene_1.dwg
orbit_test_scene_1.jpg C = 1 
orbit_test_scene_2.dwg
orbit_test_scene_2.jpg C = 0.3  0.4 i 
orbit_test_scene_3.dwg
orbit_test_scene_3.jpg C = .360284 + .100376 i 
orbit_test_scene_4.dwg
orbit_test_scene_4.jpg C = .1 + .8 i 
Julia_set_sample_data_location.dwg
Julia_set_sample_data_location.jpg Color map1 
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 monochrome drawings :
Monochrome output
Color output
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 Mathtextbook type
5. General reference
1. Classic books
2. Introduction to the concept
All questions/complaints/suggestions should be sent to Takaya Iwamoto
Last Updated July 18th, 2008
Copyright 2006 Takaya Iwamoto All rights reserved. .