MATHEMATICS OF THE FRACTAL TYPES Fractal Type(s) Formula(s) used ----------------------- --------------------------------------------- Mandel, Julia Z(n+1) = Z(n)^2 + C Newton, Newtbasin (roots of) Z^n - 1, wnere n is an integer ComplexNewton, ComplexBasin (roots of) Z^a - b, where a,b are complex plasma (see the Plasma section for details) Mandelsine, Lambdasine Z(n+1) = Lambda * sine(Z(n)) + C Mandelcos, Lambdacos Z(n+1) = Lambda * cos(Z(n)) + C Mandelexp, Lambdaexp Z(n+1) = Lambda * exp(Z(n)) + C Mandelsinh, Lambdasinh Z(n+1) = Lambda * sinh(Z(n)) + C Mandelcosh, Lambdacosh Z(n+1) = Lambda * cosh(Z(n)) + C BarnsleyM1, BarnsleyJ1 Z(n+1) = (Z(n)-1) * C if Real(z) >= 0 else (Z(n)+1) * modulus(C)/C BarnsleyM2, BarnsleyJ2 Z(n+1) = (Z(n)-1) * C if Real(Z(n))*Imag(C) +Real(C)*Imag(Z(n)) >= 0 else (Z(n)+1) * C BarnsleyM3, BarnsleyJ3 Z(n+1) = (Real(Z(n))^2 - Imag(Z(n))^2 - 1) + i * (2 * Real(Z((n)) * Imag(Z((n))) if Real(Z(n) > 0 else (Real(Z(n))^2 - Imag(Z(n))^2 - 1 + lambda * Real(Z(n)) + i * (2 * Real(Z((n)) * Imag(Z((n)) + lambda * Real(Z(n)) Sierpinski Z(n+1) = (2x, 2y - 1) if y > .5 else (2x - 1, 2y) if x > .5 else (2X, 2y) MandelLambda, Lambda Z(n+1) = (C) * (Z(n)^2) + C MarksMandel, MarksJulia Z(n+1) = (C^(Period-1)) * (Z(n)^2) + C ("Period" is a parameter) Unity (see the Unity section for details) ifs, ifs3D (see the IFS section for details) Mandel4, Julia4 Z(n+1) = Z(n)^4 + C Test (as distributed, as simple Mandelbrot fractal) Mansinzsqrd, Julsinzsqrd Z(n+1) = Z(n)^2 + sin(Z(n)) + C Manzpower, Julzpower Z(n+1) = Z(n)^M + C (M is a parameter) Manzzpwr, Julzzpwr Z(n+1) = Z(n)^Z(n) + Z(n)^M + C Mansinexp, Julsinexp Z(n+1) = sin(Z(n)) + e^(Z(n)) + C popcorn Z(n+1) = x(n+1) + i * y(n+1), where x(n+1) = x(n) - 0.05*sin(y(n)) + tan(3*y(n)) y(n+1) = y(n) - 0.05*sin(x(n)) + tan(3*x(n)) demm, demj (Mandelbrot, Julia fractals calculated and colored using the "Distance Estimator" method Bifurcation (see the Bifurcation section for details) Lorenz, Lorenz3d Lorenz Attractor - orbits of differential equation x = x + (-a * x * dt) + (a * y * dt) y = y + (b * x * dt) - (y * dt) - (z * x * dt) z = z + (-c * z * dt) + (x * y * dt) (defaults: dt = .02, a = 5, b = 15, c = 1) (Lorenz3D is the Lorenz Attractor with the addition of 3D perspective transformations as specified by the IFS ditor's transformation option) The following trig identities are invaluable for coding fractals that use complex-valued transcendental functions. e^(x+iy) = (e^x)cos(y) + i(e^x)sin(y) sin(x+iy) = sin(x)cosh(y) + icos(x)sinh(y) cos(x+iy) = cos(x)cosh(y) - isin(x)sinh(y) sinh(x+iy) = sinh(x)cos(y) + icosh(x)sin(y) cosh(x+iy) = cosh(x)cos(y) + isinh(x)sin(y) ln(x+iy) = (1/2)ln(x*x + y*y) + i(arctan(y/x) + 2kPi) (k = 0, +-1, +-2, +-....) sin(2x) sinh(2y) tan(x+iy) = ------------------ + i------------------ cos(2x) + cosh(2y) cos(2x) + cosh(2y) sinh(2x) sin(2y) tanh(x+iy) = ------------------ + i------------------ cosh(2x) + cos(2y) cosh(2x) + cos(2y) z^z = e^(log(z)*z) log(x + iy) = 1/2(log(x*x + y*y) + i(arc_tan(y/x)) e^(x + iy) = (cosh(x) + sinh(x)) * (cos(y) + isin(y)) = e^x * (cos(y) + isin(y)) = (e^x * cos(y)) + i(e^x * sin(y)) Extract from FRACTINT.DOC