# notation

• variable z
• constant parameter c
• function f
• derivative d
• iteration number p
• wrt = with respect to

Notation types

• Leibniz's notation
• Euler's notation
• Newton's notation ( dot notation)
• Lagrange's notation ( prime mark notation)

${\frac {d}{dz}}f(z)=f'(z)=z'=d=D\,$

# Derivative of the iterated function

  "the derivative basically as it's calculated for anlytical DE using the implementation of the chain rule for the derivative of f(g(x)) where f(x) is say g(x)^p+c and the value of g(x) is current z. So f'(g(x)) is p*z^(p-1)  and g'(x) is the derivative from the previous iteration,  so on each iteration the new derivative is:  dz = dz*p*z^(p-1)  and new z = z^p+c as normal" FractalDave
// initial values:
z = z
d = 1

// Recurrence steps:
d = f'(z)*d   // calculating d and multiply the previous d
z = f(z)       // forward iteration



It can be computed with Maxima CAS :

display2d:false;
f:1/(z^3+d*z);
dz : diff(f,z,1); // first derivative of f wrt variable z
dc :  diff(f,c,1); // first derivative of f wrt parameter c


## Rational function

 $f(x)={\frac {P(x)}{Q(x)}}$ $f'(x)={\frac {P'(x)Q(x)-P(x)Q'(x)}{Q^{2}(x)}}$ ### degree 3

wrt z

// function
f(z)= 1/(z^3 + c*z )

// first derivativwe wrt z
d = f'(z) = -(3z^2 +c)/(z^3 + cz)^2

// iteration:
z_(n+1) = f(z_n)

// initial values:
z = z
d = 1

// Recurrence steps:
d = - d*(3z^2 +c)/(z^3 + cz)^2
z = 1/(z^3 + c*z)



### degree 5

display2d:false;
f: 1/(a*z^5+ z^3 + b*z);
dz: diff(f,z,1);


in plain text:

  dz = -(5*a*z^4+3*z^2+b)/(a*z^5+z^3+b*z)^2


Example:

• 1/((0.15*I+0.15)*z^5+(3*I-3)*z + z^3)

### degree 5 by Buschmann Julia set drawn by distance estimation, the iteration is of the form f c ( z ) = 1 − z 2 + z 5 2 + 4 z + c {\displaystyle f_{c}(z)=1-z^{2}+{\frac {z^{5}}{2+4z}}+c}   in black and white
f(z):=z^5/(4*z+2)-z^2+c+1

(%i4) diff(f(z), z,1);

(%o4) (5*z^4)/(4*z+2)-(4*z^5)/(4*z+2)^2-2*z


### Polynomials

##### z^2+c
###### First derivative wrt c

On parameter plane :

• $c$  is a variable
• $z_{0}=0$  is constant
${\frac {d}{dc}}f_{c}^{(p)}(z_{0})=z'_{p}\,$

This derivative can be found by iteration starting with

$z_{0}=0\,$
$z'_{0}=1\,$

and then ( compute derivative before next z because it uses previous values of z):

$z'_{p+1}=2\cdot z_{p}\cdot z'_{p}+1\,$
$z_{p+1}=z_{p}^{2}+c\,$

This can be verified by using the chain rule for the derivative.

${\frac {dz_{n+1}}{dc}}={\frac {d(z_{n}^{2}+c)}{dc}}=2z_{n}{\frac {dz_{n}}{dc}}+{\frac {dc}{dc}}=2z_{n}{\frac {dz_{n}}{dc}}+1\,$
• Maxima CAS function :

dcfn(p, z, c) :=
if p=0 then 1
else 2*fn(p-1,z,c)*dcfn(p-1, z, c)+1;


Example values :

$z_{0}=0\qquad \qquad z'_{0}=1\,$
$z_{1}=c\qquad \qquad z'_{1}=1\,$
$z_{2}=c^{2}+c\qquad z'_{2}=2c+1\,$

It can be used for:

• the distance estimation method for drawing a Mandelbrot set ( DEM/M )
###### First derivative wrt z

$z'_{n}\,$  is first derivative with respect to z.

This derivative can be found by iteration starting with

$z_{0}=z\,$
$z'_{0}=1\,$

and then :

$z'_{n+1}=2*z_{n}*z'_{n}\,$
$z_{n+1}=z_{n}^{2}+c\,$

description arbitrary name formula Initial conditions Recurrence step common names
iterated complex quadratic polynomial $A_{m}$  $f^{m}$  $A_{0}=z$  $A_{m+1}=A_{m}^{2}+c$  z or f
first derivative with respect to z $B_{m}$  ${\dfrac {\partial }{\partial z}}f^{m}$  $B_{0}=1$  $B_{m+1}=2A_{m}B_{m}$  dz, d (from derivative) or p ( from prime) of f'

Derivation of recurrence relation:

$A_{0}\quad {\xrightarrow {definition\ of\ A}}\ f^{0}(z,c)\quad {\xrightarrow {definition\ of\ f}}\ \quad z$

$A_{m+1}\quad {\xrightarrow {definitionofA}}f^{m+1}(z,c)\quad {\xrightarrow {definition\ of\ f}}f(f^{m}(z,c),c)\quad {\xrightarrow {definition\ of\ A}}f(A_{m},c)\quad {\xrightarrow {definition\ of\ f}}A_{m}^{2}+c$

$B_{0}\quad {\xrightarrow {definition\ of\ B}}\ {\dfrac {\partial }{\partial z}}f^{0}(z,c){\xrightarrow {definition\ of\ f}}\ {\dfrac {\partial }{\partial z}}z{\xrightarrow {derivative}}\ 1$

$B_{m+1}\quad {\xrightarrow {definition\ of\ B}}{\dfrac {\partial }{\partial z}}A_{m+1}\quad {\xrightarrow {definition\ of\ A}}{\dfrac {\partial }{\partial z}}(A_{m}^{2}+c)\quad {\xrightarrow {distributivity}}{\dfrac {\partial }{\partial z}}A_{m}^{2}+{\dfrac {\partial }{\partial z}}c\quad {\xrightarrow {constant\ derivative}}{\dfrac {\partial }{\partial z}}A_{m}^{2}+0\quad {\xrightarrow {zero}}{\dfrac {\partial }{\partial z}}A_{m}^{2}\quad {\xrightarrow {chain\ rule}}2A_{m}({\dfrac {\partial }{\partial z}}A_{m})\quad {\xrightarrow {definition\ of\ B}}2A_{m}B_{m}$

Following the derivative

"As we iterate z, we can look at the derivatives of P at z. In our case it is quite simple: P′(z)=2z. Multiplying all these numbers along an orbit yields the derivative at z of the composition Pn. This multiplication can be carried on iteratively as we iterate z " A Cheritat

 der = 1
z = c # note that we start with c instead of 0, to avoid multiplying the derivative by 0
for n in range(0,N):
new_z = z*z+c
new_der = der*2*z
z = new_z
der = new_der


It can be used for :

unsigned char ComputeColorOfDEMJ(complex double z){
// https://en.wikibooks.org/wiki/Fractals/Iterations_in_the_complex_plane/Julia_set#DEM.2FJ

int nMax = iterMax;
complex double dz = 1.0; //  is first derivative with respect to z.
double distance;
double cabsz;

int n;

for (n=0; n < nMax; n++){ //forward iteration

if (cabs(z)> 1e60 || cabs(dz)> 1e60) break; // big values

dz = 2.0*z * dz;
z = z*z +c ; /* forward iteration : complex quadratic polynomial */
}

cabsz = cabs(z);
distance = 2.0 * cabsz* log(cabsz)/ cabs(dz);
if (distance <distanceMax) {//printf(" distance = %f \n", distance);
return iColorOfBoundary;}

return iColorOfExterior;
}


Logistic map

#### complex cubic polynomial

##### wrt z
// function
f(z)= z^3 + c*z

// first derivativwe wrt z
d = f'(z) = 3*z^2 + c

// iteration:
z_(n+1) = f(z_n)

// initial values:
z = z
d = 1

// Recurrence steps:
d = (3*z^2 + c)*d
z = z^3 + c*z



# FAQ

• why new d must be computed before new z ?