07/10/2015, 08:58 PM
(This post was last modified: 08/14/2019, 09:58 AM by sheldonison.)
In addition to finally posting my pari-gp Abel(z)/slog(z) program which I call fatou.gp (see below), I've been thinking about a matrix method for bipolar Abel functions. Here is a flavor of the approach, where alpha(z) is the Abel function or slog. p(z) is a taylor series centered exactly between the two fixed points, L1 and L2. lamba is the multiplier at the fixed point. p(z) also has a singularity at L1, L2, but it is somewhat mild since p(z) and its first couple of derivatives are both continuous at the fixed points. I've been working with iterating \( z \mapsto \exp(z)-1+k\;\;\;b=\exp (\exp (k-1)) \)
\( \alpha(z)=\frac{\ln(z-L_1)}{\ln(\lambda_1)} + \frac{\ln(z-L_2)}{\ln(\lambda_2)} + p(z)\;\; \) Abel function
There is much much mathematics to post, when I have more time. The program I wrote iteratively solves for p(z), by noting that alpha(exp(z))=alpha(z+1), and also that alpha(ln(z))=alpha(z-1), sampling a set of points on a unit circle; taking care to avoid the fixed points. Today I figured out that one can approximate solve p(z) to any arbitrary precision with matrices! A 512x512 matrix gives results accurate to about 15-16 decimal digits for base(e), \( z\mapsto \exp(z) \). The fatou.gp pari-program uses theta mapping to iteratively solve p(z), to dramatically improve convergence. The program calls this function ct(z). But then I was thinking that maybe I can formalize the entire iteration process, including the theta mappings, with linear equations and matrices, so that solving a much small linear matrix equation might give results for p(z) accurate to 32 decimal digits... that would be pretty cool! Stuff for future. update Jan 7 2018: A 112x112 matrix using matrix_ir in the current version instead of iterating gives 35 decimal digits of precision within the sampling circle critical area. This matrix solution also includes a theta mapping.
I'm finally posting my new Abel/Fatou program yet, that I've been working on for at least 4 months. I think I have solved most of the boundary conditions. Here is the very complicated pari-program that will work for a very large range of complex tetration bases, generating the sexp(z) and the slog, accurate to arbitrary precision. At its core, it calculates and uses p(z) for the Abel approximation between the two primary fixed points, using the equations above ct(z)=p(z). It is fast, and accurate, and works over a very wide range of complex bases, and generates sexp(z) for arbitrary points in the complex plane, as well as slog(z). In addition to solving the Abel function for iterating \( z\mapsto \exp(z)+1=k \), it also solves the Abel function for iterating \( z\mapsto z^2+z+k \). The pretty pictures I posted in the Base-1 post were generated by earlier versions of this program.
fatou.gp (Size: 74.95 KB / Downloads: 1,172) Updated latest version Aug 14th 2019
matrix_ir(exp(1)) now works with the tetration base instead of log(log(b))+1;
matrix_ir(B,lctr,ltht,myctr,myir) so one can easily set the sampling circle relative radius, myctr, and the inner circle relative radius to the sampling circle radius, myir, as well as the number samples, myctr, and the number of theta mapping points, ltht. I also included uniquechart, which allows one to export data to a csv file. matrix_ir support for fast converging matrix solution exactly equivalent to this version of fatou; pentation and (early version) hexation is built in, support for base Ecalle solution eta slog/sexp, better support for 64 bit pari-gp.
fatou_backup_jan09_2016.gp (Size: 45.69 KB / Downloads: 1,129)
for reference: this is the original version from Jan 9th, 2016
fatou_backup_071015.gp (Size: 36.02 KB / Downloads: 1,215)
for reference: this is the original version from July 2015
My favorite sexp base is still sexp base=-0.135335283236613; -exp(-2); which corresponds to k=2.31484985600431 + 2.13770783173591i. This base is on the edge of what this new fatou.gp program will converge for, since the pseudo period is approximately 2. For bases near the Shell Thron boundary, where the imag(pseudo+period) is small, there is no theta mapping, so convergence is much slower. Some bases with a theta mapping, but near the Shell Thron boundary also benefit from "setmaxconvergence(); sexpinit(I);" this gives good convergence for sexp base(I).
[attachment=1210]
\( \alpha(z)=\frac{\ln(z-L_1)}{\ln(\lambda_1)} + \frac{\ln(z-L_2)}{\ln(\lambda_2)} + p(z)\;\; \) Abel function
There is much much mathematics to post, when I have more time. The program I wrote iteratively solves for p(z), by noting that alpha(exp(z))=alpha(z+1), and also that alpha(ln(z))=alpha(z-1), sampling a set of points on a unit circle; taking care to avoid the fixed points. Today I figured out that one can approximate solve p(z) to any arbitrary precision with matrices! A 512x512 matrix gives results accurate to about 15-16 decimal digits for base(e), \( z\mapsto \exp(z) \). The fatou.gp pari-program uses theta mapping to iteratively solve p(z), to dramatically improve convergence. The program calls this function ct(z). But then I was thinking that maybe I can formalize the entire iteration process, including the theta mappings, with linear equations and matrices, so that solving a much small linear matrix equation might give results for p(z) accurate to 32 decimal digits... that would be pretty cool! Stuff for future. update Jan 7 2018: A 112x112 matrix using matrix_ir in the current version instead of iterating gives 35 decimal digits of precision within the sampling circle critical area. This matrix solution also includes a theta mapping.
I'm finally posting my new Abel/Fatou program yet, that I've been working on for at least 4 months. I think I have solved most of the boundary conditions. Here is the very complicated pari-program that will work for a very large range of complex tetration bases, generating the sexp(z) and the slog, accurate to arbitrary precision. At its core, it calculates and uses p(z) for the Abel approximation between the two primary fixed points, using the equations above ct(z)=p(z). It is fast, and accurate, and works over a very wide range of complex bases, and generates sexp(z) for arbitrary points in the complex plane, as well as slog(z). In addition to solving the Abel function for iterating \( z\mapsto \exp(z)+1=k \), it also solves the Abel function for iterating \( z\mapsto z^2+z+k \). The pretty pictures I posted in the Base-1 post were generated by earlier versions of this program.
fatou.gp (Size: 74.95 KB / Downloads: 1,172) Updated latest version Aug 14th 2019
matrix_ir(exp(1)) now works with the tetration base instead of log(log(b))+1;
matrix_ir(B,lctr,ltht,myctr,myir) so one can easily set the sampling circle relative radius, myctr, and the inner circle relative radius to the sampling circle radius, myir, as well as the number samples, myctr, and the number of theta mapping points, ltht. I also included uniquechart, which allows one to export data to a csv file. matrix_ir support for fast converging matrix solution exactly equivalent to this version of fatou; pentation and (early version) hexation is built in, support for base Ecalle solution eta slog/sexp, better support for 64 bit pari-gp.
fatou_backup_jan09_2016.gp (Size: 45.69 KB / Downloads: 1,129)
for reference: this is the original version from Jan 9th, 2016
fatou_backup_071015.gp (Size: 36.02 KB / Downloads: 1,215)
for reference: this is the original version from July 2015
My favorite sexp base is still sexp base=-0.135335283236613; -exp(-2); which corresponds to k=2.31484985600431 + 2.13770783173591i. This base is on the edge of what this new fatou.gp program will converge for, since the pseudo period is approximately 2. For bases near the Shell Thron boundary, where the imag(pseudo+period) is small, there is no theta mapping, so convergence is much slower. Some bases with a theta mapping, but near the Shell Thron boundary also benefit from "setmaxconvergence(); sexpinit(I);" this gives good convergence for sexp base(I).
Code:
sexpinit(-exp(-2)); /* alternatively; loop(1+log(-2+Pi*I));*/
/* with default settings; this base barely converges */
setmaxconvergence(); /* converges better for some bases with periods close to 2 */
sexpinit(-exp(-2));
- Sheldon