# Series approximation

Series approximation techniques involve expressing a function as a power series in a variable. A power series is usually infinite, but can often be approximated by truncating to the initial terms. The art of estimating error bounds (to know when the series approximation is good enough) is hard.

When applied to escape-time fractals, series approximation allows one to skip

a number of perturbed iterations for every pixel in the image, initializing them instead from the power series. The iterative computation of series approximation coefficients per reference is much cheaper than performing perturbation iterations per pixel.

## Example

Taking perturbation theory for the Mandelbrot set as a starting point, one has:

[math]z \to 2 Z z + z^2 + c[/math]

Starting from [math]z = 0[/math] the first few iterations are:

[math] c \\ (2 Z c + 1) c + c^2 \\ (4Z^2 + 2Z +1)c + (4Z^2+6Z+1)c^2 + (4Z+2) c^3 + c^4 \\ \vdots [/math]

Now write it as a series in [math]c[/math]:

[math]z = \sum_{m=1}^\infty A_m c^m[/math]

and substitute it into the iterations [math]z \to 2 Z z + z^2 + c[/math], rearranging to give the iterations for [math]A_m[/math]:

[math] A_1 \to 2 Z A_1 + 1 \\ A_m \to 2 Z A_m + \sum_{l=1}^{m-1} A_l A_{m-l} [/math]

Here is some Maxima code that can be used to generate the recurrence formulae for arbitrary positive integer power [math]p[/math] using symbolic algebra:

sumexpand: true$ cauchysum: true$ F(p, c, z) := z^p + c$ D(p, c, z) := F(p, c + C, z + Z) - F(p, C, Z)$ A(p) := niceindices(collectterms(expand(D(p,c,sum(a[i]*c^i,i,1,inf))),c))$ tex(A(2));

## Problems

Skipping too many iterations with series approximation can lead to subtle image distortion or warping, up to dramatically-wrong fantasy fractals

.

Original Page by Claude