# Series Approximation

\( \newcommand{\dd}[1]{\frac{\partial}{\partial{#1}}} \newcommand{\DD}[1]{\left\langle\!\!\!\left\langle#1\right\rangle\!\!\!\right\rangle} \newcommand{\SA}[1]{\left[\!\left[{#1}\right]\!\right]} \) Series approximation depends on Perturbation.

The perturbed deltas are polynomial series in \(\DD{c}\). Define the coeffecients \(\SA{z_n}_m,\SA{\dd{c}z_n}_m\) of the polynomials for each delta: \[\begin{aligned} \DD{z_n} &= \sum \SA{z_n}_m \DD{c}^m & \DD{\dd{c}z_n} &= \sum \SA{\dd{c}z_n}_m \DD{c}^m \\ \end{aligned}\] Some boring algebraic manipulation gives the iterations for the first few coefficients of \(\DD{z_n}\): \[\begin{aligned} \SA{z_{n+1}}_1 &= 2 z_n \SA{z_n}_1 + 1 \\ \SA{z_{n+1}}_2 &= 2 z_n \SA{z_n}_2 + \SA{z_n}_1^2 \\ \SA{z_{n+1}}_3 &= 2 z_n \SA{z_n}_3 + 2 \SA{z_n}_1 \SA{z_n}_2 \\ \end{aligned}\] and similarly for the coefficients of \(\DD{\dd{c}z_n}\): \[\begin{aligned} \SA{\dd{c}z_{n+1}}_1 &= 2 \left( \dd{c}z_n \SA{z_n}_1 + z_n \SA{\dd{c}z_n}_1 \right) \\ \SA{\dd{c}z_{n+1}}_2 &= 2 \left( \dd{c}z_n \SA{z_n}_2 + z_n \SA{\dd{c}z_n}_2 + \SA{z_n}_1 \SA{\dd{c}z_n}_1 \right) \\ \SA{\dd{c}z_{n+1}}_3 &= 2 \left( \dd{c}z_n \SA{z_n}_3 + z_n \SA{\dd{c}z_n}_3 + \SA{z_n}_1 \SA{\dd{c}z_n}_2 + \SA{z_n}_2 \SA{\dd{c}z_n}_1 \right) \end{aligned}\] The coefficients are independent of \(\DD{c}\) so the same coefficients can be used for many points in an image, and when \(|\DD{c}|\) is small the sum can be approximated by truncating to the first few terms. However, the coefficients grow quickly as \(n\) increases, which limits how long the per-reference approximation remains valid, after which we have to switch back to per-point delta iteration.

See K. I. Martin “SuperFractalThing Maths” (2013), Simpler series approximation (2016), Code generation for series approximation (2016).