07/31/2019, 01:40 PM
(This post was last modified: 08/02/2019, 05:46 PM by sheldonison.)

I made a lot more progress than I thought I would. This post concerns fatou.gp boundary conditions and how it works. First, I'm going to put out an experimental version of fatou.gp, along with some routines that may be helpful to Ember. I'm going to try to answer some of the questions that Ember has.

fatou_experiment.gp (Size: 74.73 KB / Downloads: 103)

Besides the sexpinit(B) routine that works mostly automatically, I have two other matrix based routines for initializing more difficult problems, with lots of parameters that effect speed, memory usage, and accuracy.

This pictures comes from an excel spreadsheet, by pasting in the circchart.csv file.

In this picture, with the theta mapping from l2 represented in green, and the theta mapping from l represented in purple. I am sampling 72 points around the middle circle with brown points paired with b^z, and yellow points paired with log_b(z). green point are generated from the theta mapping for the fixed point of l2, and pink points are generated from the fixed point of l. The function is centered between (l+l2)/2, and uses Jay's slog representation to accelerate convergence. The radius of the middle circle is (14/15)*radius of the outer circle, so the fixed points singularity doesn't prevent convergence, and there is some exponential convergence of approximately (14/15)^n bits plus the small accelerated convergence term. All of the points in the middle circle were generated from points inside the smaller circle whose radius is 21/23*radius of the outer circle. Compare this to base(e), where the middle circle is 0.8x the radius of the bigger circle and the inner circle is 0.56x the radius of the bigger circle, which gives much cleaner convergence properties.

Several interesting things about base=0.15

This matrix_ir approach also works for other difficult to converge bases like Ember's recent example of ~32000+5000i. Tetration bases 0.1i, 0.2i, 0.3i all converge with this algorithm, as do -0.1 and -0.2 etc.

The higher precision settings I tried were matrix_ir(B,400,90,14/15,45/46) which seems to provide about 20-21 decimal digits of accuracy for these examples, requires about 64meg of memory, and initializes in 20-25 seconds.

Tetration base 0.1 doesn't work with these settings though perhaps with myctr and myir both closer to 1, it might work. Bases (0.2,0.3,0.4) require a small I*1E-30 imaginary offset to converge; I'm not sure why. exp(-e)~=0.06599 can't converge since the fixed point has a period of exactly 2 and the upper fixed point doesn't have a Schrocder function, so there isn't a theta mapping; a different algorithm would be required.

I will post more when I have more time.

- How do I get better results for bases close to zero?

examples, 0.2*I, -0.2, 0.1*I, -0.1, 0.15

- Why there are bases for which it is so difficult to get convergence? real bases<0.15, bases exp(-e), 0.1

- This same method works to get results for larger bases, like b=30000+5000i

fatou_experiment.gp (Size: 74.73 KB / Downloads: 103)

Besides the sexpinit(B) routine that works mostly automatically, I have two other matrix based routines for initializing more difficult problems, with lots of parameters that effect speed, memory usage, and accuracy.

- matrix_ir(B,lctr,ltht,myctr,myir)

lctr is the number of sample points around a circle centered between the two fixed points

The radius is myctr*(l-l2)/2. myctr is a real number less than 1.

The closer to 1 myctr is, the worst the convergence, but sometimes the routine works on difficult bases.

myir is a second multiplier, also less than 1, that defines the inner circle where all the sample points are.

Again, the closer to 1, the slower the convergence is, but the better it works on difficult bases.

ltht is the number of sample points in the theta mapping, which is indirectly included in the main matrix. This should be a smaller number, usually half or one quarter of lctr. The "matrix" version of the base-e solution is "matrix_ir(exp(1),244,19,4/5,7/10)" which gives almost exactly the same approximation as sexpinit(exp(1))

- matrix_r(B,lctr);

similar without a theta mapping, so convergence improves more slowly. Originally I thought if this routine doesn't converge because he periodicity is too close to 2 for example, than there would be no hope using fatou.gp but it turns out there are some bases where the theta mapping in matrix_ir allows convergence and yet this routine, matrix_r, cannot converge. For example

matrix_ir(0.15,72,14,14/15,45/46); /* converges */

matrix_r(0.15,256); /* cannot converge no matter how many points there are */

- future work items

improve sexp/invabel routine, which has some difficulties for these bases

plot Henryk Trapmann's uniqueness sickles for some of these bases

why do bases 0.2, 0.3, 0.4 require an imaginary offset to converge? I*1E-30 is sufficient for convergence.

This pictures comes from an excel spreadsheet, by pasting in the circchart.csv file.

In this picture, with the theta mapping from l2 represented in green, and the theta mapping from l represented in purple. I am sampling 72 points around the middle circle with brown points paired with b^z, and yellow points paired with log_b(z). green point are generated from the theta mapping for the fixed point of l2, and pink points are generated from the fixed point of l. The function is centered between (l+l2)/2, and uses Jay's slog representation to accelerate convergence. The radius of the middle circle is (14/15)*radius of the outer circle, so the fixed points singularity doesn't prevent convergence, and there is some exponential convergence of approximately (14/15)^n bits plus the small accelerated convergence term. All of the points in the middle circle were generated from points inside the smaller circle whose radius is 21/23*radius of the outer circle. Compare this to base(e), where the middle circle is 0.8x the radius of the bigger circle and the inner circle is 0.56x the radius of the bigger circle, which gives much cleaner convergence properties.

Several interesting things about base=0.15

- the two fixed points are l=0.436708722498860; l2=-0.467424941870507 + 2.38182350871689i

the fixed points are "upside down" from where you might expect them, but if you follow a path from tetration base(e) to base(0.15) going counter clockwise from above, avoiding the singularities at 1 and eta, then that is what you get.

- The fixed point of l is weakly attracting with a Schroder function period of 1.99285186874753 - 0.119353117783046i

To me, it is surprising that we can get a workable theta mapping solution with the period so close to 2!

and the real part of the period is <2! Nearby is exp(-e), which has a period of exactly 2 can't converge.

- This base doesn't have great convergence at only 5.5 decimal digits with 72 sample points.

- Convergence is exponential and with 400 sample points, convergence improves to 16-17 decimal digits. Visually, the problem is the poorly behaved Schroder function ...

- This base cannot converge at all without a theta mapping since the sample points are outside of a circle!

- The sexp(z) invabel(z) functions don't work well enough to do a MakeGraph this base; but I can plot sexp(-2 ... 2.5)

This matrix_ir approach also works for other difficult to converge bases like Ember's recent example of ~32000+5000i. Tetration bases 0.1i, 0.2i, 0.3i all converge with this algorithm, as do -0.1 and -0.2 etc.

The higher precision settings I tried were matrix_ir(B,400,90,14/15,45/46) which seems to provide about 20-21 decimal digits of accuracy for these examples, requires about 64meg of memory, and initializes in 20-25 seconds.

Tetration base 0.1 doesn't work with these settings though perhaps with myctr and myir both closer to 1, it might work. Bases (0.2,0.3,0.4) require a small I*1E-30 imaginary offset to converge; I'm not sure why. exp(-e)~=0.06599 can't converge since the fixed point has a period of exactly 2 and the upper fixed point doesn't have a Schrocder function, so there isn't a theta mapping; a different algorithm would be required.

I will post more when I have more time.

- Sheldon