08/14/2021, 08:32 AM
I thought I'd post a bit more about the dynamics of this program. To start, we can make a good looking graph of what this tetration looks like, but it'll be only for low precision. In doing so, you have to flag to the program that you want to make less iterations.
Signals you are making the super-exponential with a maximum of four iterations when constructing the error between \( \beta(z) \) and \( \text{Sexp}(z) \). The zero, just signifies we're doing this point wise, and avoids taylor series. The first thing to happen is that we lose a lot of precision in the complex plane, but the real line is alright.
This creates a less accurate picture, but it constructs a smoother "general shape" of what the super-exponential looks like. Now when you construct a graph,
You get the pretty picture below (after a compile time)--which depicts \( \text{tet}_\beta(z) \) over \( -1 \le \Re(z) \le 3 \) and \( |\Im(z)| \le 2 \) to about, 2 digits of accuracy. It doesn't have such a distinct wave feature.
We can do this procedure with all the functions involved. So if you want to approximate the function,
\(
\rho_{\log(2)}(s) = \log(1 + \frac{\rho_{\log(2)}(s+1) - \log(1+2^{-s})}{\beta_{\log(2)}(s+1)})\\
\)
we can limit how many iterations we make by writing,
Which confirms the functional equation, even at 4 iterations. And the same thing works for the complex plane at only 4 iterations,
Things work a lot better in the periodic case; as these functions are only one top level of recursion, and have a nice error. The beta method is a bit more precarious--and requires a more difficult recursion. And by difficult, I just mean that we overflow everywhere.
We can also call taylor series for the beta method, In which we get:
Which means, the taylor series (at 100 series precision & numerical precision) of Sexp about 1 with maximally 30 iterations. Then, treating this as a polynomial,
Now you have a 100 digit/ 100 series precision expansion of the beta method about 1.
And a graph about \( |\Im(z)| \le 0.5,\, |\Re(z) - 1| \le 0.5 \) is given by:
I'm only posting this as further explanation of the code.
Regards, James
Code:
\r Abel_M.gp
func(z) = Sexp(z,0,4)Signals you are making the super-exponential with a maximum of four iterations when constructing the error between \( \beta(z) \) and \( \text{Sexp}(z) \). The zero, just signifies we're doing this point wise, and avoids taylor series. The first thing to happen is that we lose a lot of precision in the complex plane, but the real line is alright.
Code:
\p 9 //I set precision to 9 because this will only work for 2-3 digits in the complex plane anyway
func(0)
%19 = 1.00000000
func(1)
%18 = 2.71828183
exp(func(-2))
%18 = -5.03638294 E-100 + 6.12132106 E-110*I
func(-1)
%19 = -5.03638248 E-100
//but for complex values we lose this accuracy--and are at about 2-3 digits
func(-1+I)
%20 = 0.170050548 + 0.862081534*I
exp(func(-2+I))
%21 = 0.170050548 + 0.862081534*IThis creates a less accurate picture, but it constructs a smoother "general shape" of what the super-exponential looks like. Now when you construct a graph,
Code:
MakeGraph(150,150,-1,2,3,-2, Test)You get the pretty picture below (after a compile time)--which depicts \( \text{tet}_\beta(z) \) over \( -1 \le \Re(z) \le 3 \) and \( |\Im(z)| \le 2 \) to about, 2 digits of accuracy. It doesn't have such a distinct wave feature.
We can do this procedure with all the functions involved. So if you want to approximate the function,
\(
\rho_{\log(2)}(s) = \log(1 + \frac{\rho_{\log(2)}(s+1) - \log(1+2^{-s})}{\beta_{\log(2)}(s+1)})\\
\)
we can limit how many iterations we make by writing,
Code:
\r abel_M.gp
func(z) = rho(z,log(2),0,4)
func(1)
%18 = -0.200915768
log(1+(func(1)-log(1+exp(-log(2))))/(beta(1,log(2))))
%21 = -1.60376539
func(0)
%22 = -1.60376539Which confirms the functional equation, even at 4 iterations. And the same thing works for the complex plane at only 4 iterations,
Code:
log(1+(func(1+I)-log(1+exp(-log(2)*(1+I))))/(beta(1+I,log(2))))
%23 = 0.153095406 + 0.673438712*I
func(I)
%24 = 0.153095406 + 0.673438712*IThings work a lot better in the periodic case; as these functions are only one top level of recursion, and have a nice error. The beta method is a bit more precarious--and requires a more difficult recursion. And by difficult, I just mean that we overflow everywhere.
We can also call taylor series for the beta method, In which we get:
Code:
\r Abel_M.gp
Taylor = Sexp(1+z,z)
%17 = 2.718281828459045235360287471352662497757247093699959574966967627724076630353547594571382178525166426 + 2.873363009487209757463970123221135452135930128652219692711792128642820238497295275950120269935627141*z + 2.303702363376947785997995042808834440709591480862903961637698142614165371061176998647036514134593385*z^2 + 1.878755700524914559792586415642417016955871059279185828370978662306204499243472459275704128340506212*z^3 + 1.435721878020405597626749972262646502345127138244023653264442518522244195979320659821539788982504656*z^4 + 1.053776989246955792557719199136601105157259705262467183203868273540701070094703622048871713079110225*z^5 + 0.7472554979857475820655791214608954904917622284436155027332993983018964299970671487055971568325358462*z^6 + 0.5153974608134847199944048660316153052162886210524068315290447660480250957330119202376125773924158886*z^7 + 0.3472257069072358807228308861738909667482228381927792959668772963837890121348387868662010286381644710*z^8 + 0.2292609885295672965955746314930658731826167302805558647436449740774174708957797166810000433065445110*z^9 + 0.1487317418893029012756593564221537925892101410956603250248352100115971215306158109530796776327729498*z^10 + 0.09499868838909621004002458698111811621250560874691000752225186040046611377714546252114861582714204638*z^11 + 0.05983970557016409583519645262614347796388741971696867358729460549056841604226022697109769096784993613*z^12 + 0.03722310751735856494030155581614872341224595615537328832425716007026064511531159430248112782985015617*z^13 + 0.02289205250509664909870507359532911541369919842313167941873264273584032897155389869345486928003319678*z^14 + 0.01393247884400009464432323226396515959435324057772626184882205821763294393729813273059268260641493527*z^15 + 0.008398590550334757501513601700116382253383595168643613083789002612987512546104020412823114021475770290*z^16 + 0.005018029525141793960456831474719713981315982945309364836019203896442444709111096797360925919370387250*z^17 + 0.00297360709433493453[+++]Which means, the taylor series (at 100 series precision & numerical precision) of Sexp about 1 with maximally 30 iterations. Then, treating this as a polynomial,
Code:
func(z) = sum(j=0,99, polcoef(Taylor,j, x)*z^j)Now you have a 100 digit/ 100 series precision expansion of the beta method about 1.
And a graph about \( |\Im(z)| \le 0.5,\, |\Re(z) - 1| \le 0.5 \) is given by:
Code:
MakeGraph(150,150,-0.5,0.5,0.5,-0.5, SUM_Taylor)I'm only posting this as further explanation of the code.
Regards, James

