Flowly We Rote

As the old mathematical joke goes: A topologist is someone who can’t tell the difference between a coffee-cup and a donut. That’s because topology is, crudely speaking, the branch of geometry that studies shapes when the distance and angle between one part and another doesn’t matter. For example, how can (or can’t) shapes flow smoothly into each other, without being cut or torn or pierced? The shape of a perfectly plastic substance can flow smoothly from that of a coffee-cup into that of a donut. And vice versa:

Topologically speaking, a coffee-cup is the same as a donut (Wikipedia)


That’s topology in three dimensions. I found some in two dimensions when I was looking at transformations of a triangle — the Sierpiński triangle, a fractal named after the Polish mathematician Wacław Sierpiński (1882-1969):

Sierpiński triangle


I wondered what happened when you rotate the points inside a Sierpiński triangle while the triangular boundary remains fixed. That is, each point stays at the same position in the width between the center and the boundary as the whole interior flows around the center of the triangle:

Points inside a Sierpiński triangle rotated by 1°


Points inside a Sierpiński triangle rotated by 2°


Points inside a Sierpiński triangle rotated by 3°


Points rotated by 4°


Points rotated by 5°


Points rotated by 10°


Points rotated by 20°


Points rotated by 30°


Points rotated by 40°


Points rotated by 50°


Points rotated by 60°


Points rotated by 70°


Points rotated by 80°


Points rotated by 90°


WARNING! If you’re sensitive to flickering images, please note that there are flickering animated gifs below


Here’s the flowing rotation from 0° to 90° animated in a gif:

Interior points of Sierpiński triangle flowing 0° → 90° around center (animated at ezGif)


And here’s the whole rotating flow from 0° to 120° (which maps the points back onto themselves):

Interior points of Sierpiński triangle flowing continuously around center (slow animation)


Interior points flowing continuously around the center (faster animation)


As you can see, the appearance of the Sierpiński triangle changes notably as the points rotate: the rotations aren’t rotationally symmetrical (in the standard sense). Sometimes a rotation looks like a stumpy triskelion, a three-legged shape like the flag of the Isle of Man:

Triskelion on the Manx flag (Wikipedia)


Interior points of a Sierpiński triangle rotated by 30°


But topologically speaking, each rotated triangle is the same (just as, topologically speaking, a coffee-cup is the same as a donut). You can see how they’re topologically the same by imagining that the triangle is stretched into a circle, like this:

Sierpiński triangle

Sierpiński triangle stretched into circle


When you circularize the rotated triangles, all the circularized triangles are rotationally symmetrical:

Points rotated by 30°

Circle from triangle rotated by 30°


Points rotated by 60°

Circle from triangle rotated by 60°


Points rotated by 90°

Circle from triangle rotated by 90°


Here are two animated gifs of the circularized triangles rotating:

Circularized Sierpiński triangle flowing around center (slow animation at ezGif)


Circularized Sierpiński triangle flowing around center (faster animation)


Here’s what I call the centered Sierpiński triangle turned into a circle:

Centered Sierpiński triangle


Circle from centered Sierpiński triangle


And finally, the circularized centered Sierpiński triangle flowly rotating at two speeds:

Circularized centered Sierpiński triangle flowing around center (slow animation at ezGif)


Circularized centered Sierpiński triangle flowing around center (faster animation)


Perverting the Pircle

Here again is the famous Sierpiński triangle, a fractal named after the Polish mathematician Wacław Sierpiński (1882-1969):

A Sierpiński triangle


And here’s a Sierpiński ciangle — my name for a Sierpiński triangle stretched into a circle:

A Sierpiński ciangle or Sierpiński pircle


More generally, you could call that shape a pircle, a polygon turned into a circle. But you can also squeeze the Sierpiński triangle and turn it into this shape:

A Sierpiński squircle


You could call that a squircle, a squeezed circle. You use the same trigonometry to create both the Sierpiński ciangle and the squeezed Sierpiński triangle. Here’s an animated gif showing the Sierpiński triangle cycling between polygon, pircle and squircle:

Sierpiński triangle, pircle and squircle (animated at EZgif)


Now for the Sierpiński carpet, the square analogue of the Sierpiński triangle (you can create it with a point jumping 2/3rds of the way towards the vertices and midpoints of a square, as marked with green dots):

A Sierpiński carpet


And here’s the carpet as a pircle:

Pircle from Sierpiński carpet


Like the Sierpiński triangle, you can both pircularize and squeeze the Sierpiński carpet. Here’s the cycle as an animated gif:

Sierpiński carpet ⇔ pircle and squircle (animated at EZgif)


But you can also pervert the pircle, as it were (in Latin, pervertere means “to thoroughly alter”). For example, what if you flip the radius used in pircularizing the Sierpiński carpet, so that points on the perimeter of the pircle move to the center, and points at the center move to the perimeter? One variant of that perverted pircle looks like this:

Perverted pircle from Sierpiński carpet


Here are some more polygonal fractals turned into pircular fractals:

Fractal from point jumping 1/2 way to vertices of square (but not same vertex twice in a row)

Pircle from square fractal


If you double each point’s distance from the centre, then fold any resulting distance beyond the circle’s radius back inside by halving it, you get this perverted pircle:

Perverted pircle from square fractal


Here’s another polygonal fractal, the T-square fractal:

T-square fractal from point jumping 1/2 way to vertices of square (but not towards vertex directly opposite vertex just jumped towards)

Pircle from T-square fractal


Again, you can pervert the pircle:

Perverted pircle #1 from T-square fractal


Perverted pircle #2 from T-square fractal


Perverted pircle #3 from T-square fractal


Perverted pircles from T-square fractal (animated at EZgif)


Finally, another polygonal fractal turned into a pircle and perverted pircle:

Another square fractal


Pircle from square fractal


Perverted pircle from square fractal


Tie-Phi, Cy-Phi

More and more slowly. That’s how this function increases:

x = x + 1/x

x = 1
1 + 1/1 = 2
2 + 1/2 = 2_1/2
2_1/2 + 1/2_1/2 = 2_9/10
2_9/10 + 1/2_9/10 = 3_71/290
3_71/290 + 1/3_71/290 = 3_150911/272890 = 3.5530103704…
3.5530103704… + 1/3.5530103704… = 3.8344618428…
3.8344618428… + 1/3.8344618428… = 4.0952546322…
4.0952546322… + 1/4.0952546322… = 4.33943969272…
4.3394396927… + 1/4.3394396927… = 4.56988419035…
4.5698841903… + 1/4.5698841903… = 4.78870811637…
4.7887081163… + 1/4.7887081163… = 4.99753270449…
4.9975327044… + 1/4.9975327044… = 5.19763144503…
[…]

But you can tie the function down, as it were, by changing it to this:

x = 1 + 1/x

x = 1
1 + 1/1 = 2
1 + 1/2 = 1_1/2 = 1.5
1 + 1/1_1/2 = 1_2/3 = 1.66666…
1 + 1/1_2/3 = 1_3/5 = 1.6
1 + 1/1_3/5 = 1_5/8 = 1.625
1 + 1/1_5/8 = 1_8/13 = 1.615384615384615384…
1 + 1/1_8/13 = 1_13/21 = 1.619047619047619047619047619…
1 + 1/1_13/21 = 1_21/34 = 1.617647058823529411764705882…
1 + 1/1_21/34 = 1_34/55 = 1.6181818…
1 + 1/1_34/55 = 1_55/89 = 1.617977528089887640449438202…
1 + 1/1_55/89 = 1_89/144 = 1.6180555…
1 + 1/1_89/144 = 1_144/233 = 1.618025751072961373390557940…
1 + 1/1_144/233 = 1_233/377 = 1.618037135278514588859416446…
1 + 1/1_233/377 = 1_377/610 = 1.618032786885245901639344262…
1 + 1/1_377/610 = 1_610/987 = 1.618034447821681864235055724…
1 + 1/1_610/987 = 1_987/1597 = 1.618033813400125234815278648…
1 + 1/1_987/1597 = 1_1597/2584 = 1.618034055727554179566563468…
1 + 1/1_1597/2584 = 1_2584/4181 = 1.618033963166706529538387946…
1 + 1/1_2584/4181 = 1_4181/6765 = 1.618033998521803399852180340…
1 + 1/1_4181/6765 = 1_6765/10946 = 1.618033985017357938973140873…
[…]

You could call the function “x = 1 + 1/x” a tie-phi, because it generates the golden ratio, a fascinating mathematical constant also known as phi or φ = 1.6180339887498948482… Note how the denominator (the lower part) of each fraction above becomes the numerator (the upper part) of the next fraction. The function is reproducing the Fibonacci sequence, which starts with “1, 1” and proceeds by adding the two previous numbers:

1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597…

Dividing each number by the previous number yields a better and better approximation of φ (but never reaches the exact value of φ, which is an irrational number, that is, it cannot be expressed as a ratio of two whole numbers). And what about the function x = 1 – 1/x? If you remember that subtracting a negative number is the same as adding a positive number, you can work it out like this:

x = 1 – 1/x

x = 2

1 – 1/2 = 1/2 = 0.5
1 – 1/1/2 = -1
1 – 1/-1 = 2
1 – 1/2 = 1/2 = 0.5
1 – 1/1/2 = -1
1 – 1/-1 = 2
1 – 1/2 = 1/2 = 0.5
1 – 1/1/2 = -1
1 – 1/-1 = 2
[…]

x = 3

1 – 1/3 = 2/3 = 0.66666…
1 – 1/2/3 = -1/2 = -0.5
1 – 1/-1/2 = 3
1 – 1/3 = 2/3 = 0.66666…
1 – 1/2/3 = -1/2 = -0.5
1 – 1/-1/2 = 3
1 – 1/3 = 2/3 = 0.66666…
1 – 1/2/3 = -1/2 = -0.5
1 – 1/-1/2 = 3 = 3
1 – 1/3 = 2/3 = 0.66666…
[…]

x = 73

1 – 1/73 = 72/73 = 0.98630136986301369863013…
1 – 1/72/73 = -1/72 = -0.01388888…
1 – 1/-1/72 = 73
1 – 1/73 = 72/73 = 0.98630136986301369863013…
1 – 1/72/73 = -1/72 = -0.01388888…
1 – 1/-1/72 = 73
1 – 1/73 = 72/73 = 0.98630136986301369863013…
1 – 1/72/73 = -1/72 = -0.01388888…
1 – 1/-1/72 = 73
[…]

The function falls into an endless loop of period 3. But what about using the two functions together, first x = 1 + 1/x, then x = 1 – 1/x, then repeating?

loop(x = 1 + 1/x, x = 1 – 1/x)

x = 1
1 + 1/1 = 2
1 – 1/2 = 1/2 = 0.5
1 + 1/1/2 = 3
1 – 1/3 = 2/3 = 0.666666…
1 + 1/2/3 = 2_1/2 = 2.5
1 – 1/2_1/2 = 3/5 = 0.6
1 + 1/3/5 = 2_2/3 = 2.66666…
1 – 1/2_2/3 = 5/8 = 0.625
1 + 1/5/8 = 2_3/5 = 2.6
1 – 1/2_3/5 = 8/13 = 0.615384615384…
1 + 1/8/13 = 2_5/8 = 2.625
1 – 1/2_5/8 = 13/21 = 0.619047619047619…
1 + 1/13/21 = 2_8/13 = 2.615384615384615384…
1 – 1/2_8/13 = 21/34 = 0.6176470588235294117647058824…
1 + 1/21/34 = 2_13/21 = 2.619047619047619047619047619…
1 – 1/2_13/21 = 34/55 = 0.6181818181818181818181818182…
1 + 1/34/55 = 2_21/34 = 2.617647058823529411764705882…
1 – 1/2_21/34 = 55/89 = 0.6179775280898876404494382022…
1 + 1/55/89 = 2_34/55 = 2.6181818…
1 – 1/2_34/55 = 89/144 = 0.618055555…
1 + 1/89/144 = 2_55/89 = 2.617977528089887640449438202…
1 – 1/2_55/89 = 144/233 = 0.6180257510729613733905579399…
1 + 1/144/233 = 2_89/144 = 2.618055555…
1 – 1/2_89/144 = 233/377 = 0.6180371352785145888594164456…
1 + 1/233/377 = 2_144/233 = 2.618025751072961373390557940…
1 – 1/2_144/233 = 377/610 = 0.6180327868852459016393442623…
1 + 1/377/610 = 2_233/377 = 2.618037135278514588859416446…
1 – 1/2_233/377 = 610/987 = 0.6180344478216818642350557244…
1 + 1/610/987 = 2_377/610 = 2.618032786885245901639344262…
1 – 1/2_377/610 = 987/1597 = 0.6180338134001252348152786475…

Phi and the Fibonacci sequence are back, but in a zig-zagging or two-steps-forward, one-step-back kind of way. Now adapt the two previous functions slightly. Here’s the plus function adapted:

x = 2 + 1/x

x = 1

2 + 1/1 = 3…
2 + 1/3 = 2_1/3 = 2.33333…
2 + 1/2_1/3 = 2_3/7 = 2.428571428571428571…
2 + 1/2_3/7 = 2_7/17 = 2.411764705882352941176470588…
2 + 1/2_7/17 = 2_17/41 = 2.414634146341463…
2 + 1/2_17/41 = 2_41/99 = 2.41414141…
2 + 1/2_41/99 = 2_99/239 = 2.414225941422594142259414226…
2 + 1/2_99/239 = 2_239/577 = 2.414211438474870017331022530…
2 + 1/2_239/577 = 2_577/1393 = 2.414213926776740847092605887…
2 + 1/2_577/1393 = 2_1393/3363 = 2.414213499851323223312518585…
[…]

This function is generating Pell numbers and approximating the value 1 + √2, where √2 = 1.414213562373095048801688724… Now try adapting the minus function:

x = 2 – 1/x

x = 2

2 – 1/2 = 1_1/2 = 1.5
2 – 1/1_1/2 = 1_1/3 = 1.33333…
2 – 1/1_1/3 = 1_1/4 = 1.25
2 – 1/1_1/4 = 1_1/5 = 1.2
2 – 1/1_1/5 = 1_1/6 = 1.166666…
2 – 1/1_1/6 = 1_1/7 = 1.142857142857142857…
2 – 1/1_1/7 = 1_1/8 = 1.125
2 – 1/1_1/8 = 1_1/9 = 1.11111…
2 – 1/1_1/9 = 1_1/10 = 1.1
2 – 1/1_1/10 = 1_1/11 = 1.09090909…
2 – 1/1_1/11 = 1_1/12 = 1.0833333…
2 – 1/1_1/12 = 1_1/13 = 1.0769230769230769230…
2 – 1/1_1/13 = 1_1/14 = 1.0714285714285714285…
2 – 1/1_1/14 = 1_1/15 = 1.0666666…
2 – 1/1_1/15 = 1_1/16 = 1.0625
[…]

Where x = 1 – 1/x falls into an endless loop, x = 2 – 1/x endlessly falls towards 1. Now try combining x = 2 + 1/x and x = 2 – 1/x. The result might be surprising:

loop(x = 2 + 1/x, x = 2 – 1/x)

x = 1

2 + 1/1 = 3
2 – 1/3 = 1_2/3 = 1.66666…
2 + 1/1_2/3 = 2_3/5 = 2.6
2 – 1/2_3/5 = 1_8/13 = 1.615384615384615384…
2 + 1/1_8/13 = 2_13/21 = 2.619047619047619047619047619…
2 – 1/2_13/21 = 1_34/55 = 1.618181818181818181818181818…
2 + 1/1_34/55 = 2_55/89 = 2.617977528089887640449438202…
2 – 1/2_55/89 = 1_144/233 = 1.618025751072961373390557940…
2 + 1/1_144/233 = 2_233/377 = 2.618037135278514588859416446…
2 – 1/2_233/377 = 1_610/987 = 1.618034447821681864235055724…
2 + 1/1_610/987 = 2_987/1597 = 2.618033813400125234815278648…
2 – 1/2_987/1597 = 1_2584/4181 = 1.618033963166706529538387946…
2 + 1/1_2584/4181 = 2_4181/6765 = 2.618033998521803399852180340…
2 – 1/2_4181/6765 = 1_10946/17711 = 1.618033990175597086556377393…
2 + 1/1_10946/17711 = 2_17711/28657 = 2.618033988205325051470844820…
2 – 1/2_17711/28657 = 1_46368/75025 = 1.618033988670443185604798401…
2 + 1/1_46368/75025 = 2_75025/121393 = 2.618033988780242682856507377…
2 – 1/2_75025/121393 = 1_196418/317811 = 1.618033988754322537608830406…
2 + 1/1_196418/317811 = 2_317811/514229 = 2.618033988748203621343798191…
2 – 1/2_317811/514229 = 1_832040/1346269 = 1.618033988749648101530971893…
2 + 1/1_832040/1346269 = 2_1346269/2178309 = 2.618033988749989097047296779…
2 – 1/2_1346269/2178309 = 1_3524578/5702887 = 1.618033988749908598925421458…
[…]

It’s a tie-phi again, with better and better aproximations to φ and φ + 1 = φ^2. Now another function that may be another surprise:

x = 5 – 5/x

x = 2

5 – 5/2 = 2_1/2 = 2.5
5 – 5/2_1/2 = 3 = 3
5 – 5/3 = 3_1/3 = 3.333333…
5 – 5/3_1/3 = 3_1/2 = 3.5
5 – 5/3_1/2 = 3_4/7 = 3.571428571428571428…
5 – 5/3_4/7 = 3_3/5 = 3.6
5 – 5/3_3/5 = 3_11/18 = 3.611111…
5 – 5/3_11/18 = 3_8/13 = 3.615384615384615384615384615…
5 – 5/3_8/13 = 3_29/47 = 3.61702127659574468085106383…
5 – 5/3_29/47 = 3_21/34 = 3.617647058823529411764705882…
5 – 5/3_21/34 = 3_76/123 = 3.617886178861788617886178862…
5 – 5/3_76/123 = 3_55/89 = 3.617977528089887640449438202…
5 – 5/3_55/89 = 3_199/322 = 3.618012422360248447204968944…
5 – 5/3_199/322 = 3_144/233 = 3.61802575107296137339055794…
5 – 5/3_144/233 = 3_521/843 = 3.618030842230130486358244365…
5 – 5/3_521/843 = 3_377/610 = 3.618032786885245901639344262…
5 – 5/3_377/610 = 3_1364/2207 = 3.618033529678296329859537834…
[…]

It’s a tie-phi with the Fibonacci sequence again. But only the Fibonacci sequence. The Lucas sequence too:

2, 1, 3, 4, 7, 11, 18, 29, 47, 76, 123, 199, 322, 521, 843, 1364, 2207, 3571, 5778…

The Lucas sequence is generated by the same rule as the Fibonacci sequence — add the two previous numbers — but it’s seeded with “2, 1” rather than “1, 1”.

Finally, if you’re wondering where cy-phi is, it’s here:

x = 1 – 1/x

x = φ

φ – 1/φ = 2 – φ = 0.3819660112501052…
2-φ – 1/(2-φ) = -φ = -1.6180339887498948…
-φ – 1/-φ = φ = 1.6180339887498948…
2-φ = 0.3819660112501052…
-φ = -1.6180339887498948…
φ 1.6180339887498948…
2-φ = 0.3819660112501052…
-φ = -1.6180339887498948…
[…]

That’s a cycling phi or cy-phi.

Hopping in Boundland

Shopping in Poundland. That’s what Brits do when they want cheap fills. Hopping in Boundland. That’s what rec-mathers do when they want deep thrills. As I’ve described previously, a point can create interesting geometry by jumping towards fixed vertices inside a polygon. But it can also create interesting geometry by jumping at fixed angles inside a polygon. Suppose a point jumps at 0°, 120° or 240° halfway towards the perimeter of a triangle. It’s bounded in its jumps, so you could say it’s hopping in Boundland. Or bounding in Hopland. Either way, it creates this pattern inside the polygon:

Jumping halfway towards perimeter of triangle at 0°, 120° or 240°


If you stretch the triangle-and-pattern into a circle, you get this (the graphics aren’t as good as they could be, but I’m working on it):

Triangle → circle, 1/2 at 0°, 120° or 240°


You can also introduce restrictions, like banning the point from jumping at the same angle twice in a row:

Ban on same angle twice in a row, 1/2 jump at 0°, 120° or 240°


Triangle → circle, ban j+0, 1/2 jump at 0°, 120° or 240°


If the jump is 2/3rds of the distance to the perimeter and the ban is on the same angle twice, the point generates this pattern by hopping in Boundland:

Triangle, 2/3 jump, ban j+0, 0°, 120° or 240°


Triangle → circle, 2/3 jump, ban j+0, 0°, 120° or 240°


Now try adjusting the angles. Swinging the angles 60° with the same 2/3rd jump and same ban, the point generates this:

Triangle, 2/3 jump, ban j+0, 60°, 180° or 300°


Triangle → circle, 2/3 jump, ban j+0, 60°, 180° or 300°


A point jumping 2/3rds at four angles inside a square generates this pattern:

Square, 2/3 jump, ban j+0, 45°, 135°, 225, 315°


Square → circle, 2/3 jump, ban j+0, 45°, 135°, 225, 315°


And what if the point jumps 5/7ths towards the center of the polygon, not just towards the perimeter? Then it generates this pattern inside a hexagon with a ban on jumping towards the angle adjacent clockwise to the angle it’s just jumped at:

Hexagon, 5/7 jump, ban j+1, 6 angles + center


The point can also jump inside a circle rather than a polygon. Here’s the pattern generating by a point jumping 2/3rds at three angles with a ban on the same jump twice in a row:

Circle, 2/3 jump, ban j+0, 3 angles


And if the point can jump towards the center of the circle too, it generates this pattern:

Circle, 2/3 jump, ban j+0, 3 angles + center


Elsewhere Other-Accessible

Controlled Chaos — a look at points jumping towards vertices, not perimeters

Angular Trerkel

Here’s the famous Sierpiński triangle, a fractal named after the Polish mathematician Wacław Sierpiński (1882-1969):

A Sierpiński triangle


You can create it by following all the possible paths of a point jumping half-way towards the vertices of the triangle. But what if the point can jump towards the center of the triangle too? Then you get another fractal, one that looks like this:

Sierpiński triangle when point can jump towards center of triangle too


Now, as a keyly committed core component of the trans-entitial community, I wondered whether triangles and triangular fractals might identify as other geometrical shapes…

I mean, what’s to stop a triangle identifying as a circle? Nothing. And obvs, if one of the Sierpiński triangles above identifies as a circle, it is a circle — trans-circles are circles (get over it). That is, there’s no need for Sierpiński surgery.

But what if a trans-circular Sierpiński triangle wanted to affirm its circularity with surgery? What would it look like then? Well, you can use elementary trig based on the angles of points within the triangle to stretch it into what might be called a trircle, i.e. a trans-circular triangle that has affirmed its inner circular identity:

A pre-op trans-circular Sierpiński triangle

🡇

A post-op trans-circular Sierpiński triangle or Sierpiński trircle


Sierpiński triangle → Sierpiński trircle (animated at EZgif)


On the other hand, the trircle might be a pre-op trans-triangular circle that has NOT affirmed its inner triangular identity with surgery. It’s complicated. But if we suppose it’s a post-op trans-circle rather than a pre-op trans-triangle, we could nickname it an Angular Trerkel, punning on the name of the great German Bundeskanzlerin Angela Merkel. Here’s the same Sierpiński surgery on the centered Sierpiński triangle (the second fractal looked at above):

A pre-op trans-circular centered Sierpiński triangle

🡇

A post-op trans-circular centered Sierpiński triangle or centered Sierpiński trircle


Centered Sierpiński triangle → centered Sierpiński trircle (animated at EZgif)


Again, the post-op trans-circular centered Sierpiński triangle might in fact be a pre-op trans-triangular centered Sierpiński circle. When it comes to the trans-entitial community, always remember: In dubio, interrogāte entitatem! — “In case of doubt, ask the entity!”

A Little Hextra


• 1, 2, 4, 8, 16, 31, 57, 99, 163, 256, 386, 562, 794, 1093, 1471, 1941, 2517, 3214, 4048, 5036, 6196, 7547, 9109, 10903, 12951, 15276, 17902, 20854, 24158, 27841, 31931, 36457, 41449, 46938, 52956, 59536, 66712, 74519, 82993, 92171, 102091, 112792, 124314, 136698 — A000127, “Maximal number of regions obtained by joining n points around a circle by straight lines”, at The Online Encyclopedia of Integer Sequences

Think Frink

Inky Bloaters (1987) is the name of an album by psycho-songstress Danielle Dax. Frinky growthers are those who are interested in frincremental growth. That’s growth by fractions, as in the equation x = x + 1/x. If the initial x = 1, its frincremental growth looks like this:

1
1 + 1/1 = 1 + 1 = 2
2 + 1/2 = 2_1/2
2_1/2 + 1/2_1/2 = 2_9/10
2_9/10 + 1/2_9/10 = 3_71/290
3_71/290 + 1/3_71/290 = 3_150911/272890
3_150911/272890 → 3_220789390391/264588959090 → 4_25570190327910692085061/268440386798659418988490 → 4_100170363026578204006507990129853967021051645381/295105036840595214385430531020664149472669868290

As you can see, the numerators and denominators of the fractional part of x get very large very quickly. So you can’t track the frincremental growth of x with perfect accuracy. Even the most compendious computer will run out of space. But representing x as a decimal is usually enough for us frinky growthers:

1 + 1 = 2
2 + 1/2 = 2 + 0.5 = 2.5
2.5 + 1/2.5 = 2.9
3.244827586206896551724137931…
3.553010370478947561288431236…
3.834461842815967366750790750…
4.095254632258778985771918456…
4.339439692724345181049239663…
4.569884190357676650018985962…
4.788708116379690742064597208…
4.997532704493448986664559639…
5.197631445038131469095668466…
5.390026771750770995914851381…
5.575554607204394029915651664…
5.754908962142979073283550015…
5.928673657045750549124213874…
6.097345447373015508408978797…
6.261351244425377152997703626…
6.421061179383957004641284553…
6.576798676981813718180627345…

The larger x gets, the slower it grows. But it never stops growing and will pass any finite integer in finite time. I was interested in the fractional part of x += 1/x (a shorthand for x = x + 1/x). Plainly, it’s almost unique for every integer seed (the fractional part is identical, just displaced by one step, for initial x = 1 = 2). I graphed the fractional part of x += 1/x for 1, 2, 3, 4, 5… and discovered some interesting patterns:

frac(x) of x += 1/x for x = 1, 2, 3, 4, 5…


Later frac(x) of x += 1/x





In time, the rounded patterns disappear for lower initial x. But you also get symmetrical patterns for x += sqrt(x), that is, x = x + square_root(x). And they last longer:

frac(x) of x += sqrt(x) for 1, 2, 3, 4, 5… #1


frac(x) of x += sqrt(x) for 1, 2, 3, 4, 5… #2


frac(x) of x += sqrt(x) for 1, 2, 3, 4, 5… #3


frac(x) of x += sqrt(x) for 1, 2, 3, 4, 5… #4


frac(x) of x += sqrt(x) for 1, 2, 3, 4, 5… #5


Here’s an animation of the first fifty steps of x += sqrt(x):

animated frac(x) of x += sqrt(x) for 1, 2, 3, 4, 5… (animated at EZgif) (click for larger image)


And what about x += ln(x), or x = x + natural_logarithm(x)? The patterns are both more dynamic and longer-lasting for lower initial x:

frac(x) of x += ln(x) for 1, 2, 3, 4, 5… #1


frac(x) of x += ln(x) for 1, 2, 3, 4, 5… #2


frac(x) of x += ln(x) for 1, 2, 3, 4, 5… #3


frac(x) of x += ln(x) for 1, 2, 3, 4, 5… #4


And two animations of x += ln(x), one slower, one faster:

animated frac(x) of x += sqrt(x) for 1, 2, 3, 4, 5… (EZgif) (click for larger)


faster animated frac(x) of x += sqrt(x) for 1, 2, 3, 4, 5… (click for larger)


Size Scatters

While I play New Order, let’s view order. Below are some rational fractions ordered by increasing size of denominator (the lower part of the fraction, e.g. the 7 in 3/7) and numerator (the upper part of the fraction, e.g. the 5 in 5/9). Note the positions of 1/2 and 1/7:

1/2, 1/3, 2/3, 1/4, 3/4, 1/5, 2/5, 3/5, 4/5, 1/6, 5/6, 1/7, 2/7, 3/7, 4/7, 5/7, 6/7, 1/8, 3/8, 5/8, 7/8, 1/9, 2/9, 4/9, 5/9, 7/9, 8/9, 1/10, 3/10, 7/10, 9/10

Now let’s plot fractions ordered like that on a fract-L, a graph whose axes represent numbers < 1. If both x and y = 1/2, 1/3, 2/3, 1/4, 3/4, 1/5…, you get a line at 45°:

fract-L for x = 1/2, 1/3, 2/3…, y = 1/2, 1/3, 2/3…


If the fractions went to infinity, you’d get a solid line. As it is, you get some interesting splits in the 45° line. And when you plot the fractions like that, it’s easy to see that each point, (x,y), has a unique x and a unique y. But there are other ways to order the rational fractions. Try the same set ordered by the size of the decimal, not the denominator and numerator. In the previous set, 1/2 came before 1/7. Now 1/2 comes after 1/7, because 0.5 = 1/2 > 0.142857… = 1/7:

1/10, 1/9, 1/8, 1/7, 1/6, 1/5, 2/9, 1/4, 2/7, 3/10, 1/3, 3/8, 2/5, 3/7, 4/9, 1/2, 5/9, 4/7, 3/5, 5/8, 2/3, 7/10, 5/7, 3/4, 7/9, 4/5, 5/6, 6/7, 7/8, 8/9, 9/10

Now let’s plot x as the first set of fractions, ordered by size of denominator-and-numerator, and y as the second set of fractions, ordered by the size of the decimal. You’ll see that this kind of size scatters:

fract-L for x = 1/2, 1/3, 2/3, 1/4, 3/4, 1/5…, y = 1/10, 1/9, 1/8, 1/7, 1/6, 1/5, 2/9…


Now the points aren’t compressed into a 1-d line, but beginning to spread in 2-d space. The more fractions you use, the more the points spread. They remind me of papillae on a fractal tongue:

x = 1/2, 1/3, 2/3, 1/4, 3/4, 1/5… < 1/26, y = sizesort(1/2..1/26)


Papillae on a human tongue (image courtesy chatGPT)


x = denumsort(1/2..1/51), y = sizesort(1/2..1/51)


x = denumsort(1/2..101/), y = sizesort(1/2..1/101)


And the points seem to be occurring at the same x or y value. But that’s an artefact of a screen with limited pixels. On an impossible screen with infinite pixels, each (x,y) still has a unique x and unique y. Here are more fract-Ls with more fractions:

x = denumsort(1/2..1/151), y = sizesort(1/2..1/151)


x = denumsort(1/2..1/201), y = sizesort(1/2..1/201)


x = denumsort(1/2..1/251), y = sizesort(1/2..1/251)


finer detail for x = denumsort(1/2..1/251), y = sizesort(1/2..1/251)


x = denumsort(1/2..37/406), y = sizesort(1/2..37/406)


x = denumsort(1/2..1/501), y = sizesort(1/2..1/501)


Finally, to the closing bars of New Order, let’s view order in an animated gif:

x = denumsort(a/b), y = sizesort(a/b) (animated at EZgif)


Post-Performative Post-Scriptum…

In fact, I wasn’t listening to New Order to view order. I’m not a fan of New Order, just a fan of assonance.

Middlemoth

I’ve never read Middlemarch (1871). But I have seen a middlemoth. It was when I was looking at a new way of creating fractLs. A fractL is what I call a graph shaped like a capital L, with the x- and y-axes representing values between 0 and 1, like 1/2 and 1/3 and 8/55. You can also use numbers > 1 to create numbers < 1: 73 → 0.73; 128719 → 0.128719; and so on. But I decided to reverse the integer before converting it: 73 → 0.37; 128719 → 0.917821; and so on. And use different bases for the x- and y-axes. So that’s what I did on a fractL: I mapped fractions converted from integers in one base against fractions converted from integers in another base. The results, as you can see, were spectacularly dull:

fractL for int→frac in base 2 and base 6


fractL for int→frac in base 3 and base 6


fractL b04, b06


fractL b06, b08


So I decided to try some perspectivision, mapping the integer-fractions not on a fractL but on a fractO instead. A fractO is a circle where you find a point inside the circle by using two fractions, fr1 and fr2, to create two radian values: θ1 = fr1 * 2 * π and θ2 = fr2 * 2 * π. Then you use θ1 and θ2 to find two points on the perimeter of the circle, (x1, y1) and (x2, y2), and then find their midpoint, (x3, y3) = ((x1, y1) + (x2, y2)) / 2. The results this time are much more pleasing on the eye:

fractO for integers in base 2 and base 6

fractL b02, b06, for fractO b02, b06


Here’s an animated gif showing the conversion from visually dull fractL to visually interesting fractO:

fractL b02b06 to fractO b02b06 (animated at EZgif)


When I was looking at more fractOs, I found one that was lepidopterally interesting too:

fractO b09, b12 with middlemoth


fractO b09, b12 (middlemoth in green)


You can try spotting more pareidolia in more fractOs from reversed fractintegers:

fractO b03, b15

fractL b03, b15 for fractO above


fractL b03b15 to fractO b03b15 (animated at EZgif)


fractO b02, b10


fractO b02, b12


fractO b02, b14


fractO b03, b06


fractO b03, b12


fractO b03, b21


fractO b04, b06


fractO b04, b20


fractO b06, b08


fractO b09, b15


fractO b10, b24


fractO b12, b16


fractO b15, b20


fractO b24, b28


fractO b42, b78


fractO b02, b18 (fr2 x 3)


fractO b02, b06 (fr2 x 3)

Altars of Mathness

What could be duller than digits? They just sit there on the page or screen, mindlessly marking mathematics:

1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100…

But perhaps they become more interesting as images. Let’s display the final digit of the integers, or counting numbers, on a graph. Running left-right and up-down, the graph represents the final or rightmost digit of 1, 2, 3, … 10, 11, 12, 13, … 100, 101, 102, 103, …, 1000, 1001, 1002, 1003, …:

Rightmost single digit of the integers (click for larger)


No, that’s still dull: the graph just generates endlessly repeating triangles. After all, the final digits fall into a cycle: 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3… So do the final two digits: 1, 2, 3, 4, 5, […] 94, 95, 96, 97, 98, 99, 00, 01, 02, 03… Here they are as a graph:

Rightmost two digits of the integers


Now the triangles look like waves sweeping to shore. That’s a bit more interesting, but not much. So let’s try something different. The trailing digits of the integers generate triangles, so let’s see what the triangular numbers generate. The triangular numbers — 0, 1, 3, 6, 10, 15, 21… — are very simple to form. You just sum the integers: 1, 3 = 1 + 2, 6 = 1 + 2 + 3, 10 = 1 + 2 + 3 + 4, 15 = 1 + 2 + 3 + 4 + 5, 21 = 1 + 2 + 3 + 4 + 5 + 6, 28 = 1 + 2 + 3 + 4 + 5 + 6 + 7, 36 = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8, 45 = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9, 55 = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10… Here are the final digits of the triangulars — 1, 3, 6, 0, 5, 1, 8, 6… — as a graph:

Final digit of triangular numbers in base 10 (click for larger)


Now something interesting has appeared. The final digits form a repeated palindromic pattern (counting 0 as the zero-th triangular number):

0, 1, 3, 6, 0, 5, 1, 8, 6, 5, 5, 6, 8, 1, 5, 0, 6, 3, 1, 0, 0, 1, 3, 6, 0, 5, 1, 8, 6, 5, 5, 6, 8, 1, 5, 0, 6, 3, 1, 0, 0, 1, 3, 6, 0, 5, 1, 8, 6, 5, 5, 6, 8, 1, 5, 0, 6, 3, 1, 0, 0, 1, 3, 6, 0, 5, 1, 8, 6, 5, 5, 6, 8, 1, 5, 0, 6, 3, 1, 0, …

An Altar of Mathness created by the final digit of triangular numbers in base 10


And those palindromic digits create symmetric shapes that remind me of little altars — let’s call them “altars of mathness” in tribute to Morbid Angel’s genre-defining album Altars of Madness (1989). And what about the final two digits of the triangular numbers? Here’s the graph (adjusted so that 99 fits into the same space as 9):

Final two digits of triangulars in b10


Final two triangular digits in b10 (horizontal scale compressed)


The final two digits form palindromes too. And this time we don’t get just triangles, but curves too. But that’s in base 10. What happens with the trailing triangular digits in other bases? Well, here’s the final triangular digit creating more altars of mathness in different bases (note that the altars are more elaborate in even bases):

Final triangular digit in base 4


Final triangular digit in b5


Final triangular digit in b6


Final triangular digit in b7


Final triangular digit in b8


Final triangular digit in b9


Final triangular digit in b14


And here’s the graph for the final triangular digit in base 100:

Final triangular digit in b100


The graph for final single digit in b100 should look familiar, because it’s identical to the graph for final double triangular digits in b10:

Final two digits of triangulars in b10


That’s because two digits in b10 are equivalent in one digit in b100, four digits in b10 are equivalent to two digits in b100, and so on. But b100 can’t capture three digits in b10 (the graph is again adjusted so that 999 fits into the same space as 9 and 99 above):

Final three triangular digits in b10


If you compress the x-axis for that graph, you can see how long the symmetries are:

Final three triangular digits in b10 (x-axis / 2)


Final three triangular digits in b10 (x-axis / 4)


The final four digits of the triangulars in b10 create even longer symmetries:

Final quadruple triangular digits in b10


Final quadruple triangular digits in b10 (x-axis / 2)


Final quadruple triangular digits in b10 (x-axis / 8)


Note how, as the length of the final digits rises, you need to compress the x-axis more and more to see the symmetries. But integer sequences obviously don’t end with the counting numbers and triangulars. What about squares and powers of n? What about primes and Fibonacci numbers? Here’s the final two digits of the squares — 1, 4, 9, 16, 25, 49, 64, 81, 100, 121, 144, 169… — in b10:

Final two digits of the squares in b10


It’s reminiscent of the triangular numbers (so are the final-digit graphs for other polygonal numbers). So what about the powers of 2? That’s 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024… Here’s the graph for final single digits of 2^p in b10:

Final single digits of 2^p in b10


This time there’s repetition, but not symmetry. Here’s the graph for final double digits, or 2-digits, of 2^p in b10:

Final 2-dig of 2^p in b10


Now the graph looks a little like a range of eroded mountains. Now try dig-4, the final four digits of 2^p in b10:

Final 4-dig of 2^p in b10


The patterns are similar to those of dig-2 and don’t need compressing in the x-axis. This similarity and lack of need for compression are true of any number of final digits in 2^p. The final 10 digits look like this:

Final 10-dig of 2^p in b10


And the final 20 and 30 digits like this:

Final 20-dig of 2^p in b10


Final 30-dig of 2^p in b10


Powers don’t behave like polygonals: the finals are fractals. That is, the final digits create similar patterns at all scales: 1-dig, 2-dig, 10-dig, 100-dig, 1000-dig and so on. That’s true in other bases:

Final 5-dig of 3^p in b2


But a glimpse of b2 is all you’re going to get of other bases. There are other fish to fry — Fibonacci fish. The Fibonacci sequence, whose terms are equal to the sum of the previous two numbers (after seeding with “1, 1”), starts like this: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811… And what about the graphs for final fib-digits? As you’ll see, final Fib-digits are fractal too. Indeed, Fibonacci final-graphs look like 2-power final-graphs (in a way, Fibonacci numbers are powers of φ = 1.6180339887498948482…). The patterns are similar at all scales. And they remind me of the skyline of a ruined city in an Oriental tale, with collapsed domes and crumbling minarets:

Final 1-dig of Fibonacci numbers in b10


Final 2-fibdig in b10


Final 3-fibdig in b10


Final 4-fibdig in b10


Final 5-fibdig in b10


Final 10-fibdig in b10


Final 15-fibdig in b10


Final 20-fibdig in b10


Final 25-fibdig in b10


So final fibdigs are fractal. But final prime digits aren’t:

Final 1-digit of primes in b10


Final 1-digit of primes in b5


Final 2-digit of primes in b10


Primes aren’t final-digitally fractal like Fibonaccis and powers of 2. But there’s occasional symmetry in the prime fin-digs. I’ve marked some palindromic patterns in red and green:

Palindromic patterns in final 1-digits of the primes in b10 (click for larger)


The palindromic patterns, or pal-pats, in the primes look like the altars of mathness in the triangulars. They’re created by digital palindromes like these:

19, 23, 29 (c=3)
347, 349, 353, 359, 367 (c=5)
937, 941, 947, 953, 967, 971, 977 (c=7)
1951, 1973, 1979, 1987, 1993, 1997, 1999, 2003, 2011 (c=9)
26423, 26431, 26437, 26449, 26459, 26479, 26489, 26497, 26501, 26513 (c=10)


Here are the first few pal-pats in the primes (note that 157, 163, 167 and 163, 167, 173 overlap):

2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607…

And are there palindromes among the final 2-digits, 3-digits and higher n-digits of the primes in different bases? Yes, you can easily find some. But I haven’t put them on a graph yet:

Base 10 (2-dig)

58789, 58831, 58889 (c=3)
286873, 286927, 286973 (c=3)
360649, 360653, 360749 (c=3)
404851, 404941, 404951 (c=3)
590437, 590489, 590537 (c=3)
623071, 623107, 623171 (c=3)
651517, 651587, 651617 (c=3)


Base 6 (2-dig)

300335, 300401, 300441, 300501, 300535 (c=5) (23459 to 23531 in base 10)
1030255, 1030331, 1030351, 1030431, 1030455 (c=5) (50651 to 50723 in b10)
1140451, 1140501, 1140521, 1141001, 1141051 (c=5) (59791 to 59863 in b10)
1402451, 1402545, 1403031, 1403045, 1403051 (c=5) (78367 to 78439 in b10)
1435431, 1435451, 1435505, 1435551, 1440031 (c=5) (82891 to 82963)
2400505, 2401001, 2401015, 2401101, 2401105 (c=5) (124601 to 124673)
2442235, 2442311, 2442351, 2442411, 2442435 (c=5) (130127 to 130199)
2444215, 2444225, 2444311, 2444325, 2444415 (c=5) (130547 to 130619)
2533105, 2533121, 2533215, 2533221, 2533305 (c=5) (136769 to 136841)


Base 4 (3-dig)

20013013, 20013133, 20020013 (c=3) (33223 to 33287 in base 10)
21031111, 21031303, 21032111 (c=3) (37717 to 37781)
22310011, 22310333, 22311011 (c=3) (44293 to 44357)
33030121, 33031001, 33031121 (c=3) (62233 to 62297)
102031333, 102032131, 102032333 (c=3) (74623 to 74687)
110013121, 110013311, 110020121 (c=3) (82393 to 82457)


Base 3 (3-dig)

112121020012, 112121021211, 112121022021, 112121100211, 112121101012 (c=5) (287393 to 287501 in base 10)
202002212002, 202002212101, 202002220001, 202002221101, 202010000002 (c=5) (395741 to 395849)
1001012111212, 1001012112202, 1001012121022, 1001012121202, 1001012122212 (c=5) (555143 to 555251)
1010112112012, 1010112112201, 1010112120222, 1010112121201, 1010112200012 (c=5) (601079 to 601187)
1011202211211, 1011202212212, 1011202220022, 1011202221212, 1011202222211 (c=5) (625369 to 625477)


Base 2 (5-dig)

101110001111101, 101110010000111, 101110010001001, 101110010100111, 101110010111101 (c=5) (23677 to 23741 in base 10)
10000001000111101, 10000001001011001, 10000001001110001, 10000001001111001, 10000001001111101 (c=5) (66109 to 66173)
10111100110011011, 10111100110011111, 10111100110111001, 10111100110111111, 10111100111011011 (c=5) (96667 to 96731)
11010000111110001, 11010001000001101, 11010001000011001, 11010001000101101, 11010001000110001 (c=5) (106993 to 107057)

And I conjecture that you’ll get palindromes for any number of final digits in all bases. And can these palindromes be of arbitrary length? Again, I conjecture so. There are infinitely many primes and very rare patterns can occur infinitely often in an infinite set of numbers.


Post-Performative Post-Scriptum

Here’s Dan Seagrave’s classic cover for Morbid Angel’s Altars of Madness (1989):


Morbid Angel — official website
Dan Seagrave — official website


Elsewhere Other-Accessible…

Formulas Focal to the Flesh — a pre-previous post paronomasizing the title of a Morbid-Angel album…