7
Motivation Motivation Motivation: One of the keys to Christianity Some Christians get caught up in the rituals of Christianity. People think that just doing the physical things required of Christians by God is enough. However, God also

Mandelbrot and Julian sets Vaclav Vavra. Definitions By both sets we compute the same sequence given by recursive formula: z n = (z n-1 ) 2 + c z n, z

Embed Size (px)

DESCRIPTION

Definitions Mandelbrot set is set of c’s for which the sequence does not diverge for z 0 = 0 formally: J = C - {c|z 0 = 0, z n = (z n-1 ) 2 + c → ∞} or J = {c|z 0 = 0, ┐(z n = (z n-1 ) 2 + c → ∞)}

Citation preview

Page 1: Mandelbrot and Julian sets Vaclav Vavra. Definitions By both sets we compute the same sequence given by recursive formula: z n = (z n-1 ) 2 + c z n, z

Mandelbrot and Julian sets

Vaclav Vavra

Page 2: Mandelbrot and Julian sets Vaclav Vavra. Definitions By both sets we compute the same sequence given by recursive formula: z n = (z n-1 ) 2 + c z n, z

Definitions • By both sets we compute the same sequence

given by recursive formula:zn = (zn-1)2 + c

• zn , zn-1, c are complex numbers(!)

• Julian set is set of z0’s for which the sequence does not diverge – (c is constant for a given Julian set)

• formally: J = C - {z0| zn = (zn-1)2 + c → ∞} or J = {z0| ┐(zn = (zn-1)2 + c → ∞)}

Page 3: Mandelbrot and Julian sets Vaclav Vavra. Definitions By both sets we compute the same sequence given by recursive formula: z n = (z n-1 ) 2 + c z n, z

Definitions

• Mandelbrot set is set of c’s for which the sequence does not diverge for z0 = 0

• formally: J = C - {c|z0 = 0, zn = (zn-1)2 + c → ∞} or

J = {c|z0 = 0, ┐(zn = (zn-1)2 + c → ∞)}

Page 4: Mandelbrot and Julian sets Vaclav Vavra. Definitions By both sets we compute the same sequence given by recursive formula: z n = (z n-1 ) 2 + c z n, z

Operations in C

• Notation:x = a + b.i – a is real part, b is imaginary part, i is

imaginary unit, i2=-1• Operations:

y = c + d.i x + y = (a+c) + (b+d).ix.y = (ac−bd) + (bc+ad).i |x| = sqrt(a2 + b2)

Page 5: Mandelbrot and Julian sets Vaclav Vavra. Definitions By both sets we compute the same sequence given by recursive formula: z n = (z n-1 ) 2 + c z n, z

Visualisation

• for a given c, z0 we compute z1, z2, z3,…in a loop

• this way we cannot analytically determine, whether the sequence diverges

• However if |zn| > 2, it really diverges

• if |zn| is still <= 2, we just stop after fixed number of iterations

• It works

Page 6: Mandelbrot and Julian sets Vaclav Vavra. Definitions By both sets we compute the same sequence given by recursive formula: z n = (z n-1 ) 2 + c z n, z

Julian set – sudocode

const complex c = {c.r,c.i};

for (every real part for z0) { //should be between -2 and 2for (every imaginary part for z0) { //should be between -2 and 2

z := z0 ; for (fixed number of iterations) { //120 is ok z = z^2 + c; if (|z| > 2) break; // or |z|^2 > 4 }

drawPixel(Re(z0), Im(z0), #iterations needed);}

}

Page 7: Mandelbrot and Julian sets Vaclav Vavra. Definitions By both sets we compute the same sequence given by recursive formula: z n = (z n-1 ) 2 + c z n, z

Mandelbrot set – sudocode

for (every real part for c) { //should be between -2 and 2for (every imaginary part for c) { //should be between -2 and 2

z := c; //z0=0, therefore z1=c

for (fixed number of iterations) { //40 is ok here z = z^2 + c; if (|z| > 2) break; // or |z|^2 > 4

}

drawPixel(Re(z0), Im(z0), #iterations needed);}

}

Page 8: Mandelbrot and Julian sets Vaclav Vavra. Definitions By both sets we compute the same sequence given by recursive formula: z n = (z n-1 ) 2 + c z n, z

Colors• We map #iterations to colors• Various ways how to do it• Besides #iterations #maximum number of iterations (maxiter)• We want to set values for r,g,b• Maybe you want point inside the set to be black

– If (#iterations == maxiter) r = b = g = 0;

Examples:a) (r,g,b are floats from 0.0 to 1.0)r = 1-(1-#iterations/maxiter)^5;g = 1-(1-#iterations/maxiter)^3;b = #iterations/maxiter;

Page 9: Mandelbrot and Julian sets Vaclav Vavra. Definitions By both sets we compute the same sequence given by recursive formula: z n = (z n-1 ) 2 + c z n, z

Colorsb) (r,g,b are integers from 0 to 255)int colorTable[16][3] = {

{ 0, 0, 0}, { 0, 0,170}, { 0,170, 0},

{ 0,170,170}, {170, 0, 0}, {170, 0,170}, {170, 85, 0}, {170,170,170}, { 85, 85, 85}, { 85, 85,255}, { 85,255, 85}, { 85,255,255}, {255, 85, 85}, {255, 85,255}, {255,255, 85}, {255,255,255},};r = colorTable[#iterations % 16][0];g = colorTable[#iterations % 16][1];b = colorTable[#iterations % 16][2];

You can find other examples at http://www.root.cz/clanky/fraktaly-v-pocitacove-grafice-xiv/

Page 10: Mandelbrot and Julian sets Vaclav Vavra. Definitions By both sets we compute the same sequence given by recursive formula: z n = (z n-1 ) 2 + c z n, z

Tips and tricks• colors: instead of mapping #iterations to colors, we can

map zn (the last one before we leave the loop) to colors• So now we have

drawPixel(Re(z0), Im(z0), Re(zn), Im(zn));– We can use it for the inside if the set too!!

• Until now we get drawPixel(Re(z0), Im(z0),maxiter) there

• Mandelbrot set – if we set z0 to a non-zero value, we get the set deformed – z0 is then called the “perturbation” term

• Set the maximum number of iterations to a small number and we have the sets deformed, too (particularly useful for Mandelbrot set)

Page 11: Mandelbrot and Julian sets Vaclav Vavra. Definitions By both sets we compute the same sequence given by recursive formula: z n = (z n-1 ) 2 + c z n, z
Page 12: Mandelbrot and Julian sets Vaclav Vavra. Definitions By both sets we compute the same sequence given by recursive formula: z n = (z n-1 ) 2 + c z n, z
Page 13: Mandelbrot and Julian sets Vaclav Vavra. Definitions By both sets we compute the same sequence given by recursive formula: z n = (z n-1 ) 2 + c z n, z
Page 14: Mandelbrot and Julian sets Vaclav Vavra. Definitions By both sets we compute the same sequence given by recursive formula: z n = (z n-1 ) 2 + c z n, z
Page 15: Mandelbrot and Julian sets Vaclav Vavra. Definitions By both sets we compute the same sequence given by recursive formula: z n = (z n-1 ) 2 + c z n, z
Page 16: Mandelbrot and Julian sets Vaclav Vavra. Definitions By both sets we compute the same sequence given by recursive formula: z n = (z n-1 ) 2 + c z n, z
Page 17: Mandelbrot and Julian sets Vaclav Vavra. Definitions By both sets we compute the same sequence given by recursive formula: z n = (z n-1 ) 2 + c z n, z

References• http://www.root.cz/clanky/fraktaly-v-pocitacove-grafice-xiv• http://www.cis.ksu.edu/~vaclav/fractals.html