
Click on the image to see its parameters.
Tutorial: Breaking Newton (Complex) Formula
Text and Images © 2018
Kerry Mitchell
Introduction
If you've played with Newton's Method fractals before, you're probably used to seeing this type of image:
This formula doesn't do that.
Newton's Method is used to find solutions to an equation. The above image has four colors because the underlying equation has four solutions, and each pixel represents a complex number that winds up at one of those four solutions. With this formula, the underlying equations generally don't have any solutions and the resulting images come from the routine's wandering around, trying to find one.
Background
The standard Newton's Method fractal uses an equation with several complex solutions. This formula uses an equation with complex solutions, too, but interferes with the process so that the solution is never found. For example, the equation
z4 = c,
where c is a constant, has four complex solutions, the four complex fourth roots of c. The regular Newton's Method algorithm has no trouble finding them, as shown in the image above. It works by taking an initial guess at a solution (initial z), determining an adjustment to it, and combining the adjustment with the old z to make a new z. The three images below show three ways in which this process is sabotaged such that a solution is never found. In the first, the value of c is changed each iteration. In the second, the new value of z is tweaked each time. And in the third, the weighting of the adjustment (via a factor I call the Newton factor) is varied each time. This is what this formula does.
The equation that is to be "solved" is of this form:
lefthand side = righthand side
Each side can be: c, a power of z, an exponential or logarithmic function, or a trigonometric function of z (circular or hyperbolic).
Parameters
The parameters are in three groups: general, c, z, and Newton factor.
General Parameters.
- pixel type: Determines what the pixel corresponds to, allowing you to experiment with different effects:
- initial c: The pixel is the c value, like a standard Mandelbrot fractal. The real part relates to the x equation and the imaginary part to the y equation.
- c change: If you allow c to vary each iteration by setting the "change c" parameter below, this value determines how much c will vary each iteration. Real part for x and imaginary part for y.
- initial z: The pixel is the initial z value, like a standard Julia fractal.
- z change: If you allow z to vary each iteration by setting the "change z" parameter below, this value determines how much z will vary each iteration.
- initial Newton factor: The initial value of the Newton factor. The real part relates to the x equation and the imaginary part to the y equation.
- Newton factor change: If you allow the Newton factor to vary each iteration by setting the "change factor" parameter below, this value determines how much the Newton factor will vary each iteration.
- lefthand type: The lefthand side of equation. Choose from:
- c
- zpower
- exp(z)
- log(z)
- sin(z) (If you select this, a "frequency" parameter will appear.)
- cos(z) (If you select this, a "frequency" parameter will appear.)
- tan(z) (If you select this, a "frequency" parameter will appear.)
- sinh(z) (If you select this, a "frequency" parameter will appear.)
- cosh(z) (If you select this, a "frequency" parameter will appear.)
- tanh(z) (If you select this, a "frequency" parameter will appear.)
- power: This appears if you choose "power" for the lefthand side.
- frequency: This appears if you choose sin, cos, tan, sinh, cosh, or tanh for the lefthand side.
- righthand type: The righthand side of equation. Choose from:
- c
- zpower
- exp(z)
- log(z)
- sin(z) (If you select this, a "frequency" parameter will appear.)
- cos(z) (If you select this, a "frequency" parameter will appear.)
- tan(z) (If you select this, a "frequency" parameter will appear.)
- sinh(z) (If you select this, a "frequency" parameter will appear.)
- cosh(z) (If you select this, a "frequency" parameter will appear.)
- tanh(z) (If you select this, a "frequency" parameter will appear.)
- power: This appears if you choose "power" for the righthand side.
- frequency: This appears if you choose sin, cos, tan, sinh, cosh, or tanh for the righthand side.
- bailout: Generally, set large to make sure that all pixels are "inside" points.
C Parameters
- initial c: The initial c value, if "initial c" is not chosen for the pixel type.
- change c: Determines if c will be constant or vary:
- none: C is constant. Is this is selected, then the "change amount" parameter will not appear.
- add: Add the "change amount" to c each iteration.
- multiply: Multiply c by the "change amount" each iteration.
- power: Raise c to the "change amount" power each iteration.
- change amount: complex value for the amount to change c each iteration.
Z Parameters
- initial z: The initial z value, if "initial z" is not chosen for the pixel type.
- change z: Determines if z will be manipulated:
- none: No change. If this is selected, then the "change amount" parameter will not appear.
- add: Add the "change amount" to z.
- multiply: Multiply z by the "change amount".
- power: Raise z to the "change amount" power.
- change amount: complex value for the amount to change z.
- z type: The complex variable sent to the coloring formula:
- iterate: The output from Newton's method.
- function: The complex value of f(z). If the algorithm solved both equations, then this would be 0+0i.
- derivative: The complex derivative of f(z).
- difference: The difference between the new value of the iterate and the previous value.
Newton Factor Parameters
- initial factor: The initial Newton factor value, if "initial Newton factor" is not chosen for the pixel type.
- change factor: Determines if the Newton factor will be constant or changed each iteration:
- none: The Newton factor is constant. Is this is selected, then the "change amount" parameter will not appear.
- add: Add the "change amount" each iteration.
- multiply: Multiply by the "change amount" each iteration.
- power: Raise to the "change amount" power each iteration.
- change amount: complex value for the amount to change the Newton factor each iteration.
Hints
- I'm pretty sure that there's nothing intuitive about this formula, so don't be afraid to try everything.
- Generally speaking, all points should be "inside" points.
- With the "power" equation sides, don't use 0+0i for the initial z value.
- One approach for finding nice images is to have two windows open, with the same fractal (using this formula). Change the pixel type in one to the initial value type (say, "initial Newton factor" and the other to the change type (say, "Newton factor change"). In the "change" fractal, wander around until you find a spot that you like. Use the eyedropper tool in the Location tab to center a specific point (like the center of a spiral). Copy the complex Location Center value and paste it in the other window, in the "initial value" parameter. Usually, that will make the structure in the "initial value" fractal mimic the structure around the center point of the "change" fractal window.
Sample Image
Here’s how to make the image at the top of this page.
- Start a new fractal, with these characteristics:
- Formula: "Breaking Newton - Complex" from lkm3.ufm, with the default settings.
- Inside: "Basic" from lkm.ucl, choose "polar angle" for the "color by:" parameter.
- Outside: "None" (default). Change the "Transfer Function" to "None."
- Image: set the width to 600 pixels and the height to 600 pixels.
- Gradient: "Default" from Standard.ugr.
- Location: Set the Center to 8/4, the Magnification to 0.08, and the
Rotation Angle to 0.
- On the Formula tab, set:
- Drawing Method: Multi-pass Linear
- Periodicity Checking: Off
- Maximum Iterations: 1000
- general parameters:
- pixel type: "initial c"
- lefthand type: "power"
- power: 2/0
- righthand type: "c"
- bailout: 1000000 (default)
- c parameters:
- z parameters:
- initial z: 1/1
- change z: "none"
- z type: "iterate"
- Newton factor parameters:
- initial factor: 0.82287218998978/0.99021676994377
- change factor: "none"
Your image should look like the example. If not, go snag the parameters from the
examples page.
Back
to Tutorials page
Up
to my home page