The complex squaring function

The complex squaring function provides a great introduction to complex dynamics. We define \(f(z)=z^2\) and iterate it on the complex plane. In spite of the simplicity of the function, most of the hallmarks of complex dynamics and chaos are right there in front of us. There is a stable domain that comes in two separate pieces and the boundary between those pieces forms a chaotic set. Even on the chaotic set, there is order within the chaos.

One common feature of chaotic dynamics is missing. Generally, the chaotic set is quite complicated and crinkly - fractal in fact. For \(z^2\), the chaotic set is a perfect circle. Nonetheless, this is part of what makes the example relatively easy to understand.

Stability

The first demo below shows the unit circle in the complex plane. Hover your mouse over the demo to choose an initial seed \(z_0\) and view its orbit under the complex squaring function.

If that number is inside the unit circle, then it's absolute value is less than one. Thus if we square it, it should move closer to the origin, as will the subsequent iterates. The interior of the unit circle displays a stability in the sense that all points inside it have a similar fate.

If the initial seed is outside the unit circle, then it's absolute value is greater than one. Now if we square it, it should move farther away from the origin and its orbit will diverge to \(\infty\). We again have stability but with a different fate.

Chaos

While the previous demos was cool, it doesn't really show what happens right on the unit circle. If you square a number with absolute value one, you definitely produce another number with absolute value one. You can try to click right on the unit circle in the first demo, though, yet it just doesn't seem to work. Clearly, the behavior there is a bit more difficult.

The demos below has two buttons. You can click the "start with random point" button to choose a random point right on the unit circle and then watch as the firt 1000 iterates are generated. The code ensures that the orbit stays on the unit circle. Nonetheless, the orbit jumps around quite chaotically never repeating itself. It seems quite chaotic.

But, if we connect the dots in the order that they appeared, a hidden pattern emerges.

Points drawn so far: