
Click on the image to see its parameters.
Tutorial: Breaking Newton (Real) 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. In this formula, the equations use real numbers. That makes it easier to keep them from having any solutions. For example, the equation
x2 = 1
has two real solutions, x = -1 and x = 1. The regular Newton's Method algorithm has no trouble finding them. However, the equation
x2 = -1
has no real solutions, and the Newton's Method algorithm will wander around forever searching for them. For our purposes, this is good. The fractal formula takes two such equations, say,
x2 = -1 and
y4 = -2
and runs them both through one iteration of the algorithm. Then, it will combine both x and y into a complex variable z, manipulate z in some fashion, and then break it up into its real (x) and imaginary (y) parts, to iterate again.
More precisely, the x and y equations are of the form:
f(x) (or f(y)) = c,
where f(x) (or f(y)) is a function specifically chosen because its equation may not have a solution, like x2 or y4. The value c is a real parameter, like -1 in the above examples. For more interest, c can be a constant or be allowed to vary each iteration. Varying is accomplished by adding a value, multiplying by a value, or raising c to a value. Once x and y are iterated, they are combined into the complex value z (which is used with the coloring formula). Like c, z can be manipulated each iteration, in the same basic ways.
Newton's Method works by determining an amount by which to change the variable each iteration. How much the variable is changed can be altered through the "Newton factor," which is normally 1. This formula allows you to set your own value, as well as change the value each iteration, like you can with c and z.
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.
- x type: The x equation. Choose from:
- x2 = c
- x4 = c
- x6 = c
- sin(x) = c (If you select this, a "frequency" parameter will appear.)
- cos(x) = c (If you select this, a "frequency" parameter will appear.)
- tanh(x) = c (If you select this, a "frequency" parameter will appear.)
- exp(x) = c
- frequency: This appears if you choose sin, cos, or tanh for the x equation.
- y type: The y equation. Choose from:
- y2 = c
- y4 = c
- y6 = c
- sin(y) = c (If you select this, a "frequency" parameter will appear.)
- cos(y) = c (If you select this, a "frequency" parameter will appear.)
- tanh(y) = c (If you select this, a "frequency" parameter will appear.)
- exp(y) = c
- frequency: This appears if you choose sin, cos, or tanh for the y equation.
- 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 just x+flip(y) or be manipulated:
- none: z = x+flip(y), that is, the real part of z is x and the imaginary part is y. Is this is selected, then the "change amount" parameter will not appear.
- add: Add the "change amount" to z after combining x & y.
- multiply: Multiply z by the "change amount" after combining x & y.
- power: Raise z to the "change amount" power after combining x & y.
- change amount: complex value for the amount to change z.
- z type: The complex variable sent to the coloring formula:
- iterate: Combining x & y into z (plus further manipulation, if selected).
- function: The complex combination of f(x) and f(y). If the algorithm solved both equations, then this would be 0+0i.
- derivative: The complex combination of the slopes of the f(x) and f(y) functions.
- 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 "x2"-type equations, don't use 0+0i for the initial z value.
- With the "cos(x)"-type equations, 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 - Real" 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 0/0, the Magnification to 1, and the
Rotation Angle to 0.
- On the Formula tab, set:
- Drawing Method: Multi-pass Linear
- Periodicity Checking: Off
- Maximum Iterations: 100
- general parameters:
- pixel type: "initial z"
- x type: "x2 = c"
- y type: "y2 = c"
- bailout: 1000000 (default)
- c parameters:
- initial c: -1/-1 (this makes the equations to "solve" x2 = -1 and y2 = -1)
- change c: "none"
- z parameters:
- change z: "multiply"
- change amount: 2/-1
- z type: "iterate"
- Newton factor parameters:
- initial factor: 1/1
- 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