Bifurcation diagrams

A bifurcation diagram is a pretty neat way to observe the dynamics of a parametrized one dimensional map. On the x-axis, the parameter and on the y axis is shown the trajectory of the point after a few iteration (so that the system settle down into the attractor). For example, with the logistic map :

$$x_{n+1} = r x_{n} (1 - x_{n})$$

We usually draw a logistic map with the r parameter being between $[2; 4]$. For $r$ between $2$ and $3$, the map converges into a limit point. However, at $r = 3$, the dynamic changes, and the system ocillates between two values: a 2-cycle. After $r = 3.44949$ the system then oscillates settles into a 4-cycle. Then, period doubling occurs faster and faster, until the systems become chaotic at around $r = 3.56995$.

In the past article we’ve seen an overview of what kind of objects we were talking about, and how to create generators that would be interesting to explore. In this part, we’ll talk about the bread and butter of Indra’s Pearl, namely the Depth First Exploration Algorithm, or DFS. For the sake of simplicity, i’ll refer to the inverse of a generator using the uppercase version of it’s associated letter, so the inverse of a is A, and the inverse of b is B.

This post is a part of a series where I try to explain my work on implementing methods from the book “Indra’s Pearl”, from Mumford, Series and Wright. In the first part I talked about the very basics. If you haven’t read it, I’d recommend it, simply because I really like it, and also because you might not understand what I’m talking about.

In this post we’ll talk about how we chose the specific Möbius Transform that we’ll use for our exploration. Since we have two of those transforms, and that they use 4 complex parameters each, this means that we have 32 real numbers to chose from. This is quite a lot ! Chosing random parameters in our transforms tends to create “dust”. While those images are quite beautiful in their own right, we’d like to have more restrictions. Those random Möbius Transforms don’t really converge to a satisfying limit set. They tend to “bounce around” all over the place. We’d like it if our transforms would converge to close points, so that we can draw a line between them. With the Width First Search, having nicely placed initial circles would mean that the limit set would be Fuschian or Pseudo Fuschian, instead of a mess. Ideally, we’d like to have some kind of control over the generated generators (huh), by reducing down the number of degree of freedom to one or two complex parameters. We’ll call those groups parametrized, because they are… parametrized.

A few months back I started reading Indra’s Pearl by Mumford, Series and Wright. The book is amazing, and I’m not scared to say it’s one of my favorite books about Maths that I’ve ever read. I wanted to get my hands dirty and implement some of the fractals in the book, since they were very different from the usual “Mandelbrot and cousins” fractals: they were truly out of this world. So I did ! But turns out I couldn’t just do a few techniques, I had to do them all.

Arnold and its Tongues

- 2 mins read

Hi, I’m back. I have been working a lot on my Indra’s Pearl implementation, available here. I’ll write an article about it soon, since it’s pretty interesting, but not now. Now we’re talking about tongues. Code is available here

The Arnold Tongue(s) are a particular kind of fractal that arises when we plot the rotation number of a particular circle map. Circle maps are functions from the circle to itself. They are particularly conducive to chaotic motions, and are pretty simple so it’s a good start. We are interested in the following circle map:

A fairly long title for this one, but I can’t always be Victor Hugo when it comes to posts titles. We’re gonna talk about complex dynamics in this one, so stay strapped.

When I first started learning about Discrete Dynamics, an exercise that would often come up would be to find the fixed point of the nth iteration of the logistic map, or put it simply solving the following equation:

The Devil's Staircase

- 1 min read

Today, just a quickie. The Devil’s Staircase (or Cantor Function) is a particular “pathological” function. It grows from 0 to 1 as $x$ goes from 0 to 1, but it’s derivative are 0 almost everywhere. Meaning, that everywhere you zoom, you’ll get a flat line. Yet it goes up. Yet it’s flat almost everywhere ! Code? Here!.

Wow, it even wiggles !

Here, we generate the Devil’s Staircase using a particular Circle Map

Keeping up with the traditions I’ve set-up a few days ago, we’re going to talk about chaos. “Oh no, yet another boring example of a Henon map ? Maybe with colors this time ? Or just the Lorentz Attractor with some platitudes on the chaos in life itself ?”, you may say, snarkily. Well, voices in my head, no, not quite.

I kinda dig logic as a field. And by “dig”, I mean looking from afar and vaguely nodding when someones talks to me about consistency of a formal system. A few months ago I fell onto a great paper that talks about a particular kind of paradoxes, and using real valued logic, transform those paradoxes into discrete dynamical systems. Those systems are then shown to have complicated dynamics.

Chaos in Bits

- 2 mins read

One of the things I try a lot is to make cool looking images with the least effort on my part. The easiest way to do that is to let the computer do my work. At least, that’s the theory; in practice I spend a lot of time tweaking the various functions and tidbits that make the final product. Maybe some day I’ll just paint the individual pixel myself, it’ll probably be a bit less trouble. As usual, the code is available here

This time we’re gonna talk about things I know a little bit more about : bifurcation diagrams and iterated functions. The code is available here

A nice wallpaper

Bifurcation diagrams show the behavior of a function $ f: \mathbb{R} \rightarrow \mathbb{R} $, with a real parameter under iteration. Iteration simply means “plugging the output into the input”: a feedback if you will. Iterating from a “seed” $p$, the function can converge to a value (i.e. a fixed point), explode into $\infty $, or go into a cycle. A cycle can have a period, which is the number of iteration you need to do to come back to the original value. In other words, a periodic point $p$ of period $k$ is defined as $f^k(p) = p$, with $k$ being the smallest integer with which this condition is true. Here, $f^k$ simply means iterating the function $k$ times.