Visualizing Diophantine Equations

I was thinking about one-off states of systems, since these are arguably bad for predictions –

Just imagine assuming that a new state is similar to some known one-off state, because they are for example nearest neighbors in the space of the dataset. It could very well be the case that the dataset is simply not consistent around the known one-off state, and that’s why it was clustered alone.

This in turn led me to think about the possibility of one-off states of physical systems, which ultimately led me to the following idea:

Take a discrete integer-labeled subset of Euclidean space, and draw a point at a given index (i,j) only if the following equation can be satisfied:

B^i + G^j = A,

where B and G are luminosity values from [0,255], and A is some integer. This will produce patterns defined by a Diophantine equation, and it turns out the solutions look a lot like the outputs generated by cellular automata. The code works by using a vectorized Monte Carlo method to find solutions to the equations.

Below are the first 50 solutions, beginning with A = 1, up to A = 50, though there are only 49 images, since there was no solution for one of the values of A.

Because A is the sum of the two terms, A operates as a cap on total luminosity, which is interesting to me, because luminosity is, physically, energy. So perhaps these types of equations could be used to describe the behavior or structure of physical systems as a function of increasing energy –

This was actually part of my thought process, since electron orbitals are wildly different shapes as a function of energy. 

I thought this was interesting, since the allure of automata is that they produce patterns that don’t have obvious closed-form equations. These patterns however don’t appear to be the product of a closed-form equation, but they are, and it’s a simple one at that. Moreover, they get really aesthetically interesting for larger values of A, allowing for a wider variety of colors and luminosities.

Here are some examples for A \approx 2500:


You can of course express a three-dimensional analog, and this was the original idea, but I really like the way the two-dimensional version looks:

R^i + B^j + G^k = A.

The code for both the two-dimensional and three-dimensional version is attached.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s