Simple recursive systems and fractal patterns
"It seems to me that more could be done to elicit ... the nature of associations, with computers providing the means for experimentation. Such a study would have to involve a gradation of notions, of symbols, of classes of symbols, of classes of classes, and so on, in the same way that the complexity of mathematical or physical structures is investigated.
There must be a trick to the train of thought, a recursive formula. A group of neurons starts working automatically, sometimes without external impulse. It is a kind of iterative process with a growing pattern. It wanders about in the brain, and the way it happens must depend on the memory of similar patterns." Stanislaw Ulam in "Adventures of a Mathematician", 1976
Note that the initial sequence is the bottom row of the sum matrix (top image) and the top row of the difference matrix (bottom image) and summ( 0 ) == S( 0 ) == 0. See difference and sum operator definitions.
Fibonacci word0;0;010
1->10 |
![]() ![]() |
Period-doubling
0;01
00 |
![]() ![]() |
Period-doubling
1;11
10 |
![]() ![]() |
Thue-Morse 0; |
![]() ![]() |
Thue-Morse 0; |
![]() ![]() |
|
diff_of_system( 0, [0 1], [0], [ng], [0,1], 1, 0, 1, true, true ); | [To Do: Considering the
diff matrix as wrapped on a cylinder,
left edge joined with right edge, how many triangles of each size fill
the plane?] diff_of_system( 0, [0 1], [0 0], [ng], [0,1], 1, 0, 1, true, true ); |
diff_of_system( 1, [1 1], [1 0], [ng], [0,1], 1, 0, 1, true, true ); | diff_of_system( 0, [0 1], [1 0], [ng], [0,1], 1, 0, 1, true, true ); | diff_of_system( 0, [1 0], [0 1], [ng], [0,1], 1, 0, 1, true, true ); | ||||
0;
0->011
1->00 |
![]() ![]() |
0;
0->011
1->01 |
![]() ![]() |
0;101
1->01 |
![]() ![]() |
0;
0->011
1->10 |
![]() ![]() |
||
|
diff_of_system( 0, [0 1 1], [0 0], [ng], [0,1], 1, 0, 1, true, true ); | diff_of_system( 0, [0 1 1], [0 1], [ng], [0,1], 1, 0, 1, true, true ); | diff_of_system( 0, [1 0 1], [0 1], [ng], [0,1], 1, 0, 1, true, true ); | diff_of_system( 0, [0 1 1], [1 0], [ng], [0,1], 1, 0, 1, true, true ); | |||||
0;
0->001
1->0 |
![]() ![]() |
||||||||
| diff_of_system( 0, [0 0 1], [0], [ng], [0,1], 1, 0, 1, true, true ); |
[To Do: Show how PD's differences can be seen as replacement systems.]








































| Fibonacci word (odd)
subsequences F(c*n) |
differences (top down), link to large image | every 8th of differences, link to every 4th of differnces | .......... | Fibonacci word (even)
subsequences F(c*n) |
differences (top down), link to large image | every 8th of differences, link to every 4th of differnces | |
| F( n ) | ![]() |
![]() |
F( 2*n ) | ![]() |
![]() |
||
| F( 3*n ) | ![]() |
![]() |
F( 4*n ) | ![]() |
![]() |
||
| F( 5*n ) | ![]() |
![]() |
F( 6*n ) | ![]() |
![]() |
||
| F( 7*n ) | ![]() |
![]() |
F( 8*n ) | ![]() |
![]() |
||
| F( 9*n ) | ![]() |
![]() |
F( 10*n ) | ![]() |
![]() |
||
| F( 11*n ) | ![]() |
![]() |
F( 12*n ) | ![]() |
|
||
| F( 13*n ) | ![]() |
![]() |
F( 14*n ) | ![]() |
![]() |
||
| F( 15*n ) | ![]() |
![]() |
F( 16*n ) | ![]() |
![]() |
||
| F( 17*n ) | ![]() |
![]() |
F( 18*n ) | ![]() |
![]() |
||
| F( 19*n ) | ![]() |
![]() |
F( 20*n ) | ![]() |
![]() |
||
| F( 21*n ) | ![]() |
![]() |
F( 22*n ) | ![]() |
![]() |
||
| F( 23*n ) | ![]() |
![]() |
F( 24*n ) | ![]() |
![]() |
||
| F( 25*n ) | ![]() |
![]() |
F( 26*n ) | ![]() |
![]() |
||
| F( 27*n ) | ![]() |
![]() |
F( 28*n ) | ![]() |
![]() |
||
| F( 29*n ) | ![]() |
![]() |
F( 30*n ) | ![]() |
![]() |
||
| F( 31*n ) | ![]() |
![]() |
F( 32*n ) | ![]() |
![]() |
||
| F( 33*n ) | ![]() |
![]() |
F( 34*n ) | ![]() |
![]() |
||
| F( 35*n ) | ![]() |
![]() |
F( 36*n ) | ![]() |
![]() |
||
| F( 37*n ) | ![]() |
![]() |
F( 38*n ) | ![]() |
![]() |
||
| F( 39*n ) | ![]() |
![]() |
F( 40*n ) | ![]() |
![]() |
||
| F( 41*n ) | ![]() |
![]() |
F( 42*n ) | ![]() |
|
||
| F( 43*n ) | ![]() |
![]() |
F( 44*n ) | ![]() |
![]() |
||
| F( 45*n ) | ![]() |
![]() |
F( 46*n ) | ![]() |
![]() |
||
| What's with these funny "crystal grains"? | |||||||
| F( 47*n ) | ![]() |
![]() |
F( 48*n ) | ![]() |
|
||
| F( 49*n ) | ![]() |
![]() |
F( 50*n ) | ![]() |
|
||
| F( 51*n ) | ![]() |
![]() |
F( 52*n ) | ![]() |
![]() |
||
| F( 53*n ) | ![]() |
![]() |
F( 54*n ) | ![]() |
|
||
| F( 55*n ) | ![]() |
![]() |
n
= 0 1 2 3 4 5 6 7 8 9 ...
summ(PD)
...
sum2(PD) =
[0,1] 0 0 1 0 0 1 1 1 0 1 1 1 1... sum1(PD) =
[0,1]
0 1 1 0 1 0 0 1 1 0 0 0 ...
PD
= [0,1]
1 0 1 1 1 0 1 0 1 0 1 ...diff1(PD)
=
1 1 0 0 1 1 1 1 1 1 ...diff2(PD) =
0 1 0 1 0 0 0 0 0 ...
...
diffm(PD)
where the
prefix [0,1] indicates either 0 or 1 for all
prefixes, not some mixture of both. These prefixes are not generally
shown in the diagrams.
![]() |
- | ![]() |
modulo 2 = |
![]() |
| sum( 0 ) == S(
0 ) == 0 |
or | sum( 0 ) == S( 0 ) == 1 | difference between two initializations |
summ(
n, S ) = diff-m( n, S )diffm( n, S ) = sum-m( n, S )
PD
= diff1(
TM ),
TM = sum1(
PD ), where
PD
is the morphism 1; 0
-> 0 1, 1 -> 0 0
TM is the morphism 0; 0 -> 0 1, 1 -> 1 0
for
the sum( 0 ) == S( 0 ) == 0 prefixs (left)
andTM is the
morphism 0; 0 -> 1 0, 1 -> 0 1
for the sum( 0 ) == S( 0 ) == 1 prefixs (center)
n
= 0 1 2 3 4 5 6 7 8 9 ...
summ(PD)
...
sum2(PD) =
[0,1] 0 0 1 0 0 1 1 1 0 1 1 1 1... sum1(PD) =
[0,1]
0 1 1 0 1 0 0 1 1 0 0 0 ...
PD
= [0,1]
1 0 1 1 1 0
1 0 1 0 1 ...diff1(PD)
=
[1,0]
1 1 0
0 1 1 1 1 1 1 ...diff2(PD) = [0,1] 0
1 0 1 0 0 0 0 0 ...diff3(PD) = [0,1]
1 1 1
1 0 0 0 0 ...diff4(PD) = [1,0] 0
0 0 1 0 0 0 ...diff5(PD) = [1,0] 0
0 1 1 0 0 ...diff6(PD) = [1,0] 0
1 0 1 0 ...diff7(PD) = [1,0]
1 1 1
1 ...diff8(PD) = [0,1] 0
0 0 ......diffm(PD)
For the assumed values of S(
0 ) == 0 or 1 the two sequences are
just complements (cyclic permutations over the 2-symbol field). Is
there an iterated morphism with this as the fixed point?
A030300
and A030301:R. Stephan, Some divide-and-conquer sequences ...
R. Stephan, Table of generating functions
R. Stephan, Divide-and-conquer generating functions. I. Elementary sequences
![]() |
- | ![]() |
modulo 2 = |
![]() |
| sum( 0 ) == S(
0 ) == 0 |
or | sum( 0 ) == S( 0 ) == 1 | difference between two initializations |
diffm(
1, TM ) = 1.1.0,1,0,0,0,1,0,0,0,0,0,0,0,1 ... (OEIS A036987)A036987:a(n) = (product of digits of n; n in binary notation) mod 2. This sequence is a transformation of the Thue-Morse sequence (A010060), since there exists a function f such that f(sum of digits of n) = (product of digits of n). - Ctibor O. ZIZKA (ctibor.zizka(AT)seznam.cz), Feb 12 2008
Moebius transform of A001511. [From Mats Granvik (mats.granvik(AT)abo.fi), Jan 03 2009]
a(n) is also the number of orbits of length n for the map x->1-cx^2 on [ -1,1] at the Feigenbaum critical value c=1.401155... [From Thomas Ward (t.ward(AT)uea.ac.uk), Apr 08 2009]
Sd
= diffm(
1, S )S
= diffm(
1, Sd
)[To Do: Fix up and post diff_of_system.m, and give an example here.]
>>diff_of_system( arrayInit, rules1, rules2, nG, bSum, nDecimate, nOffset, nOversampleOut, bShow, bWrite, strOutFileStem )
This
work is dedicated to the
Public
Domain.