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.
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) 
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
*** Click the frame to see full picture ***
Data Set ID No. C value Range Real Imag 1 0.31 0.04 (1.0486 1.3135) 2 0.11 0.6557 (1.3982 1.2157) 3 0.12 0.74 (1.3842 1.2017) 4 0.0 1.0 (1.4261 1.2716)) 5 0.194 0.6557 (1.5799 0.9921) 6 0.74543 0.11301 (1.5391 0.9100) 7 1.25 0.0 (1.7748 0.7825) 8 0.481762 0.531657 (1.5100 1.0900) 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)
Monochrome output
Mathematically speaking, Julia set is a set of points which do not approach infinity
after so many iterations. But for convenience , the iteration number is set as 100.
If the test point satisfy the condition for Julia Set, then the point is colored white.
The example run for case ID # 1 is shown below.
Two different algorithms are used here:
Algorithm A: If iteration exceeds 100, then color the point while and go to next test point.
Algorithm B: If iteration exceeds 30, and does not exceeds 100, color the point, and go to the next point.
"A" will create the filled up map like the one in the left below. This is the true definition of Julia Set,
but the drawing file size becomes big.
"B" will create a boundary like map of the filledset, and the drawing size is much smaller.
How to run Algorith A program :
Load julia_mono_filled.lsp (load "julia_mono_filled")
Then from command line, type julia_mono_filled
How to run Algorith B program :
Load julia_mono_test.lsp (load "julia_mono_test")
Then from command line, type julia_mono_test
julia_case_1_filled.dwg julia_case_1_filled.jpg Case #1 Filled 
Julia_01_002_mono2.dwg Julia_01_002_mono2.jpg Case #01 
The following 12 drawings are created using Algorithm B.
How to create the following monochrome drawings :
Load julia_mono_test.lsp (load "julia_mono_test")
Then from command line, type julia_mono_test
Input data exmaple for case ID #1 Command: julia_mono_test Specify the requested set(def=1) Return Key for Default set Spacing = (def = 0.01) 0.002 Starting point (def = data from predefined list)) Return Key for Default set Ending point (def = data from predefined list) Return Key for Default set 1.3135 These are y coordinate value now being processed 1.3115 1.3095
Julia_01_002_mono2.dwg #01: 0.31 , 0.34 
Julia_02_002_mono2.dwg #02: 0.11, 0.6557 
Julia_03_002_mono2.dwg #03: 0.12, 0.74 
Julia_04_002_mono2.dwg #04: 0.0 , 1.0 
Julia_05_002_mono2.dwg #05: 0.194 , 0.6557 
Julia_06_002_mono2.dwg #06: 0.7454 , 0.1130 
Julia_07_002_mono2.dwg #07: 1.25 , 0.0 
Julia_08_002_mono2.dwg #08: 0.4818, 0.5317 
Julia_09_002_mono2.dwg #09: 0.3905, 0.5868 
Julia_10_002_mono2.dwg #10: 0.1565, 1.0322 
Julia_11_002_mono2.dwg #11: 0.1103, 0.6703 
Julia_12_002_mono2.dwg #12: 0.2733, 0.0074 
Julia_11_002_mono.dwg #13: 0.32, 0.043 
Julia_14_005_bsm.dwg #14: 0.1238, 0.5651 
Julia_15_002_mono.dwg #15: 0.11, 0.6703 
(1) create filled julia set using :JULIA_MONO_FILLED" in julia_mono_filled.lsp
(2) Then use executable "FILLED_TO_BSM" in fractal_tools.lsp to eliminate the inside points.
The algorith used is called "Boundary Search Method" (BSM).
How to create the following colored drawings :
Algorithm used to create colored maps is the same as the one used for Monochrome case except
that when the test point diverge, the point is painted with a color assigned to the iteration number.
For example , one point goes outside the radius = 2 circle after n iteration, that point is
assigned a color unique to the number "n".
In addition to loading my_tools.lsp, fractal_tools.lsp must be loaded for all the following
execution.
Load fractal_tools.lsp (load "fractal_tools")
Load julia_set.lsp (load "julia_set")
Then from command line, type julia_set
When the program is run, there are 6 input prompts. Here is an example input for case ID #1. When Default Input is OK, just hit the return key to accept the default value. Note: Screensize is set to 500 x 500 pixels in AutoCAD graphic screen. Command: julia_set (1) Specify the requested set(def=1) (2) Starting point (def = data from predefined list)) (3) Ending point (def = data from predefined list) (4) Minimum iteration = (def=1)5 (5) Maximum iteration = (def=100)200 default spacing = 0.00444 (6) Spacing = (def = dx/500.)
Color output
Julia_01_002_color.dwg Case #01 
Julia_02_002_color.dwg Case #02 
Julia_03_002_color.dwg Case #03 
Julia_04_002_color.dwg Case #04 
Julia_05_002_color.dwg Case #05 
Julia_06_002_color.dwg Case #06 
Julia_07_002_color.dwg Case #07 
Julia_08_002_color.dwg Case #08 
Julia_09_002_color.dwg Case #09 
Julia_10_002_color.dwg Case #10 
Julia_11_002_color.dwg Case #11 
Julia_12_002_color.dwg Case #12 
Julia_13_002_color.dwg Case #13 
Julia_14_002_color.dwg Case #14 
Julia_15_002_color.dwg Case #15 
Begin with the following Euler's equation: e ^{i z} = cos z + i sin z From this we derive the further relations: cos z = (e^{iz} + e^{iz})/ 2 sin z = (e^{iz}  e^{iz})/ (2 i) For purely imaginary z, z = iy, this relation give cos iy = (e^{y} + e^{y})/2 = cosh y sin iy = (e^{y}  e^{y})/(2 i) = i sinh y Using the above relations, we can now write the following relations in real and imaginary part. cosz & sinz: With the help of the addition theorems of trigonometry, cos z = cos(x + iy) = cosx coshy  i sinx sinhy sin z = sin(x + iy) = sinx coshy + i cosx sinhy e^{z}: e^{z} = e^{x + iy} = e^{x} e^{iy} = e^{x}(cos y + i sin y) cosh z: cosh z = (e^{z} + e^{z})/2 = coshx cosy + i sinhx siny sinh z: sinh z = (e^{z}  e^{z})/2 = sinhx cosy + i coshx siny Note: Escape criteria: trigonometric functions: Absolute value of its "Imaginary" part > 50 exponential function: Absolute value of its "Real" part > 50
Function mapping range  Sine : z:> sin(z) (5,5) (5,5) Cosine : z:> cos(z) (5,5) (5,5) Exponenential : z:> exp(z) (4,4) (4,4) Maximum iteration = 50Click a mouse on the picture for a larger image.
julia_sine_global.dwg Sine Functionframe size 10 x 10 
julia_cosine_global.dwg Cosine function  frame size 10 x 10 
julia_exp_global.dwg Exponential  frame size 8 x 8 
The iterated function is of the form z:> k sine(z) where z = x + iy, and k = R + i I The results are shown for the following cases: (1) Pure real case: I = 0 (2) Pure imaginary case: R = 0 (3) when k = a + ib (4) when k = 1 + ib (real part is equal to 1)How to create the following colored drawings :
(1) Pure Real cases
Click a mouse on the picture for a larger image.
Data range : (3.0 3.0)  (3.0 3.0)
Max Iteration: 50
k_sine_R1.00.dwg R = 1.00 case 
k_sine_R1.25.dwg R = 1.25 case 
k_sine_R1.50.dwg R = 1.50 case 
k_sine_R2.00.dwg R = 2.00 case 
k_sine_R2.50.dwg R = 2.50 case 
(2) Pure Imaginary cases
Data range : (3.0 3.0)  (3.0 3.0)
Max Iteration: 50
Click a mouse on the picture for a larger image.
k_sine_I0.95.dwg I = 0.95 case 
k_sine_I1.0.dwg I = 1.0 case 
k_sine_I1.05.dwg I = 1.05 case 
k_sine_I1.1.dwg I = 1.1 case 
k_sine_I1.2.dwg I = 1.2 case 
k_sine_I1.275.dwg I = 1.275 case 
k_sine_I1.35.dwg I = 1.35 case 
k_sine_I1.4.dwg I = 1.4 case 
k_sine_I2.0.dwg I = 2.0 case 
k_sine_I3.0.dwg I = 3.0 case 
(3) k = 1 + i c case, where c = 0  2.0
Data range : (1.5 1.5)  (1.5 1.5)
Max Iteration: 50
Click a mouse on the picture for a larger image.
k_sine_0.00000.dwg I = 0.00 case 
k_sine_0.01048.dwg I = 0.01048 case 
k_sine_0.01060.dwg I = 0.01060 case 
k_sine_0.01080.dwg I = 0.01080 case 
k_sine_0.01500.dwg I = 0.01500 case 
k_sine_0.02500.dwg I = 0.02500 case 
k_sine_0.05000.dwg I = 0.05000 case 
k_sine_0.10000.dwg I = 0.10000 case 
k_sine_0.20000.dwg I = 0.20000 case 
k_sine_0.30000.dwg I = 0.30000 case 
k_sine_0.40000.dwg I = 0.40000 case 
k_sine_0.50000.dwg I = 0.50000 case 
k_sine_0.70000.dwg I = 0.70000 case 
k_sine_1.00000.dwg I = 1.00000 case 
k_sine_1.90000.dwg I = 1.90000 case 
Zoom up of some selected cases
Data range : (1.5 1.5)  (1.5 1.5)
Max Iteration: 300
Click a mouse on the picture for a larger image.
k_sine_1.0_0.05.dwg k = 1, 0.05 case 
k_sine_1.0_0.10.dwg k = 1, 0.10 case 
k_sine_1.0_0.20.dwg k = 1, 0.20 case 
k_sine_1.0_0.30.dwg k = 1, 0.30 case 
k_sine_1.0_0.40.dwg k = 1, 0.40 case 
(4) General case k = a + ib (a = 0.6  0.7; b = 0.8  0.9)
Click a mouse on the picture for a larger image.
Data range : (1.5 1.5)  (1.5 1.5)
Max Iteration: 300
k_sine_0.600_0.800_3x3 k = 0.6, 0.8 case 
k_sine_0.6005_0.8005_3x3 k = 0.6005, 0.8005 case 
k_sine_0.601_0.801_3x3 k = 0.601, 0.801 case 
k_sine_0.602_0.802_3x3 k = 0.602, 0.802 case 
k_sine_0.605_0.805_3x3 k = 0.605, 0.805 case 
k_sine_0.608_0.808_3x3 k = 0.608, 0.808 case 
k_sine_0.610_0.810_3x3 k = 0.610, 0.810 case 
k_sine_0.615_0.815_3x3 k = 0.615, 0.815 case 
k_sine_0.620_0.820_3x3 k = 0.620, 0.820 case 
k_sine_0.630_0.830_3x3 k = 0.630, 0.830 case 
(5) Zoom up of 0.61 + i 0.81 case
Click a mouse on the picture for a larger image.
Max Iteration: 300
k_sine_0.610_0.810_z1 1.5 x 1.5 frame 
k_sine_0.610_0.810_z2 1.0 x 1.0 frame 
k_sine_0.610_0.810_z3 0.5 x 0.5 frame 
k_sine_0.610_0.810_z4 0.2 x 0.2 frame 
k_sine_0.610_0.810_z5 0.1 x 0.1 frame 
(1) Pure Imaginary cases
Click a mouse on the picture for a larger image.
Data range : (3.0 3.0)  (3.0 3.0)
Max Iteration: 50
k_cos_I0.6650_50.dwg I = 0.6650 case 
k_cos_I0.6663_50.dwg I = 0.6663 case 
k_cos_I0.6664_50.dwg I = 0.6664 case 
k_cos_I0.6666_50.dwg I = 0.6666 case 
k_cos_I0.6670_50.dwg I = 0.6670 case 
k_cos_I0.6700_50.dwg I = 0.6700 case 
k_cos_I0.6800_50.dwg I = 0.6800 case 
k_cos_I0.7000_50.dwg I = 0.7000 case 
k_cos_I0.7500_50.dwg I = 0.7500 case 
k_cos_I1.0000_50.dwg I = 1.0000 case 
(2) Pure Real cases
Click a mouse on the picture for a larger image.
Data range : (1.5 1.5)  (1.5 1.5)
Max Iteration: 50
k_cos_R3.1000_50 R = 3.1000 case 
k_cos_R2.9700_50 R = 2.9700 case 
k_cos_R2.9690_50g R = 2.9690 case 
k_cos_R2.9680_50 R = 2.9680 case 
k_cos_R2.9670_50 R = 2.9670 case 
k_cos_R2.9660_50 R = 2.9660 case 
k_cos_R2.9650_50 R = 2.9650 case 
k_cos_R2.9600_50g R = 2.9600 case 
k_cos_R2.9500_50 R = 2.9500 case 
k_cos_R2.9400_50 R = 2.9400 case 
k_cos_R2.9300_50 R = 2.9300 case 
k_cos_R2.9200_50 R = 2.9200 case 
k_cos_R2.9100_50g R = 2.9100 case 
k_cos_R2.9000_50 R = 2.9000 case 
k_cos_R2.8000_50 R = 2.8000 case 
k_cos_R2.5000_50 R = 2.5000 case 
k_cos_R2.0000_50 R = 2.0000 case 
k_cos_R1.9500_50g R = 1.9500 case 
k_cos_R1.9000_50 R = 1.9000 case 
k_cos_R1.8000_50 R = 1.8000 case 
(3) Zoom up of selected cases
Click a mouse on the picture for a larger image.
Max Iteration: 50
k_cos_I0.68_50_z k = i 0.68 case 
k_cos_I0.70_50_z k = i 0.70 case 
k_cos_R2.80_50_z k = 2.80 + i 0 case 
k_cos_R2.94_50_z k = 2.94 + i 0 case 
k_cos_R2.95_50_z k = 2.95 + i 0 case 
(4) General case k = a + ib (a = 2.90  3.10; b = 0.15  0.40)
Click a mouse on the picture for a larger image.
Data range : (1.5 1.5)  (1.5 1.5)
Max Iteration: 300
(4.1) a = 2.90 ; b= 0.187  0.250 case
k_cos_2.90_0.187_300 k = 2.9, 0.187 case 
k_cos_2.90_0.188_300 k = 2.9, 0.188 case 
k_cos_2.90_0.190_300 k = 2.9, 0.190 case 
k_cos_2.90_0.191_300 k = 2.9, 0.191 case 
k_cos_2.90_0.195_300 k = 2.9, 0.195 case 
k_cos_2.90_0.200_300 k = 2.9, 0.200 case 
k_cos_2.90_0.230_300 k = 2.9, 0.230 case 
k_cos_2.90_0.237_300 k = 2.9, 0.237 case 
k_cos_2.90_0.240_300 k = 2.9, 0.240 case 
k_cos_2.90_0.250_300 k = 2.9, 0.250 case 
(4.2) a = 2.95 ; b= 0.281  0.298 case
k_cos_2.95_0.281_300 k = 2.95, 0.281 case 
k_cos_2.95_0.285_300 k = 2.95, 0.285 case 
k_cos_2.95_0.289_300 k = 2.95, 0.289 case 
k_cos_2.95_0.297_300 k = 2.95, 0.297 case 
k_cos_2.95_0.298_300 k = 2.95, 0.298 case 
(4.3) a = 3.00 ; b= 0.330  0.400 case
k_cos_3.00_0.330_300 k = 3.00, 0.330 case 
k_cos_3.00_0.333_300 k = 3.00, 0.333 case 
k_cos_3.00_0.334_300 k = 3.00, 0.334 case 
k_cos_3.00_0.335_300 k = 3.00, 0.335 case 
k_cos_3.00_0.337_300 k = 3.00, 0.337 case 
k_cos_3.00_0.340_300 k = 3.00, 0.340 case 
k_cos_3.00_0.350_300 k = 3.00, 0.350 case 
k_cos_3.00_0.370_300 k = 3.00, 0.370 case 
k_cos_3.00_0.390_300 k = 3.00, 0.390 case 
k_cos_3.00_0.400_300 k = 3.00, 0.400 case 
(4.3) a = 3.10 ; b= 0.378  0.395 case
k_cos_3.10_0.378_300 k = 3.10, 0.378 case 
k_cos_3.10_0.380_300 k = 3.10, 0.380 case 
k_cos_3.10_0.385_300 k = 3.10, 0.385 case 
k_cos_3.10_0.390_300 k = 3.10, 0.390 case 
k_cos_3.10_0.395_300 k = 3.10, 0.395 case 
(1) Pure imaginary case ; pi and 2 pi cases
exp_0.00_3.14_50 k = 3.14 case 
k_exp_0.00_6.28_50 k = 6.28 case 
k_cos_3.10_0.385_300 k = 3.10, 0.385 case 
k_cos_3.10_0.390_300 k = 3.10, 0.390 case 
k_cos_3.10_0.395_300 k = 3.10, 0.395 case 
(2) Pure real case ; 0.20  1.0 cases
exp_0.2000_0.0_50 k = 0.20 case 
k_exp_0.3670_0.0_50 k = 0.367 case 
k_exp_0.3700_0.0_50 k = 0.370 case 
k_exp_0.3708_0.0_50 k = 0.3708 case 
k_exp_0.3710_0.0_50 k = 0.3710 case 
exp_0.3750_0.0_50 k = 0.375 case 
k_exp_0.3800_0.0_50 k = 0.380 case 
k_exp_0.3850_0.0_50 k = 0.385 case 
k_exp_0.3900_0.0_50 k = 0.390 case 
k_exp_0.4000_0.0_50 k = 0.400, 0.395 case 
exp_0.4100_0.0_50 k = 0.41 case 
k_exp_0.4200_0.0_50 k = 0.42 case 
k_exp_0.4300_0.0_50 k = 0.43, 0.385 case 
k_exp_0.4400_0.0_50 k = 0.44, 0.390 case 
k_exp_0.4500_0.0_50 k = 0.45, 0.395 case 
exp_0.5000_0.0_50 k = 0.5 case 
k_exp_0.6000_0.0_50 k = 0.6 case 
k_exp_0.7000_0.0_50 k = 0.7, 0.385 case 
k_exp_0.8000_0.0_50 k = 0.8, 0.390 case 
k_exp_1.0000_0.0_50 k = 1.0, 0.395 case 
(3) General complex cases
exp_1.00_0.20_50 k = 1.00, 0.20 case 
k_exp_1.0_2.0_50 k = 1.0, 2.0 case 
k_exp_M2.5_1.50_50 k = 2.5, 1.50 case 
k_exp_M2.7_1.50_50 k = 2.7, 1.50 case 
k_exp_m4.0_1.0_50 k = 4.0, 1.0 case 
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. .