[text updated]
Having not yet studied Andrew's formulae, I just played around with the idea of iterated superroots.
In this case, instead of \( x=H_2(y),x=H_3(y), ... \) with x being the second, third superroot of some y, I reconsidered simply the iterated second superroot - which is easier to implement, because \( x=H_2(H_2(y)) = \exp( LW(LW( \log(y)))) \) and for LW (the Lambert-W) there are easy implementations in M'tica and Pari/GP.
Of course, for \( x=H_2(H_2(y)) \) we have, that \( (x\^x)\^{(x\^x)}= x\^x\^(x+1) = y \) - where x is a bit smaller than \( H_3(y) \) (of course the latter is what I tried to approximate by some iteration).
Now I found the following amazing procedure. Consider for example \( y=3\^3\^3 \) .
Then compute \( x_1=H_2(y) ,x_2=H_2(x_1), x_3=H_2(x_2) , ... \) up to some limit.
Then the inhomogenuous exponentialtower / "nested exponentiation" (wikipedia) \( x_1\^ ... \^x_{n-2} \^x_{n-1} \^ x_n \approx y \) .
Of course, a bit thinking about this makes it clear that this is a nearly trivial matter; but the amazing part of it is, to get a new intuition for a general/nested exponential tower, where the single stairs are not equal but follow some functional description... and, for instance, might be interpolated to give some fractional interpolation of the H2()-procedure ...
In Pari/GP:
Nice...
Here the vectorv vx (read from left to right, then top down):
Appendix: the code for Lambert-W, taken from wikipedia:
For y=27^27 we get the following vector vx of "stairs":
where we see by the first two or three entries, that they are the consecutively the (iterated) second-order superroot of each other: y=27^27; 27=3^3; 3=1.82...^1.82... ; and so on and
y = 27^27 = 27 ^ 3 ^ 1.82... ^ 1.49... ^...
Having not yet studied Andrew's formulae, I just played around with the idea of iterated superroots.
In this case, instead of \( x=H_2(y),x=H_3(y), ... \) with x being the second, third superroot of some y, I reconsidered simply the iterated second superroot - which is easier to implement, because \( x=H_2(H_2(y)) = \exp( LW(LW( \log(y)))) \) and for LW (the Lambert-W) there are easy implementations in M'tica and Pari/GP.
Of course, for \( x=H_2(H_2(y)) \) we have, that \( (x\^x)\^{(x\^x)}= x\^x\^(x+1) = y \) - where x is a bit smaller than \( H_3(y) \) (of course the latter is what I tried to approximate by some iteration).
Now I found the following amazing procedure. Consider for example \( y=3\^3\^3 \) .
Then compute \( x_1=H_2(y) ,x_2=H_2(x_1), x_3=H_2(x_2) , ... \) up to some limit.
Then the inhomogenuous exponentialtower / "nested exponentiation" (wikipedia) \( x_1\^ ... \^x_{n-2} \^x_{n-1} \^ x_n \approx y \) .
Of course, a bit thinking about this makes it clear that this is a nearly trivial matter; but the amazing part of it is, to get a new intuition for a general/nested exponential tower, where the single stairs are not equal but follow some functional description... and, for instance, might be interpolated to give some fractional interpolation of the H2()-procedure ...
In Pari/GP:
Code:
h2(x)= exp(LW(log(x))) \\ define h2(x), use Lambert-W-implementation
\\ gives the 2nd order superroot such that x=h2(z) then x^x = z
y= 3^3^3
x = h2(y)
vx=vectorv(32);
for(k=1,#vx, vx[k] = x; x=h2(x))
print(Mat(vx ) ) \\ show entries of vx
x=1
forstep(k = #vx,1,-1, x = vx[k]^x )
print(x, " err= ", y-x )
\\ 7625597484987 err= -7.16679172898 E-19Nice...
Here the vectorv vx (read from left to right, then top down):
Code:
11.9551115478 2.59837825984 1.73428401000 1.45860478939
1.32859289427 1.25423808991 1.20653347357 1.17350191467
1.14935596533 1.13097611094 1.11653974291 1.10491388712
1.09535875646 1.08737159082 1.08059919437 1.07478641134
1.06974445983 1.06533075563 1.06143565139 1.05797348186
1.05487637153 1.05208986123 1.04956976099 1.04727984662
1.04519014815 1.04327566018 1.04151535801 1.03989143819
1.03838872616 1.03699420970 1.03569666809 1.03448637486Appendix: the code for Lambert-W, taken from wikipedia:
Code:
LW(x, prec=1E-80, maxiters=200) = local(w, we, w1e);
w=0;
for(i=1,maxiters,
we=w*exp(w);w1e=(w+1)*exp(w);
if(prec>abs((x-we)/w1e),return(w));
w=w-(we-x)/(w1e-(w+2)*(we-x)/(2*w+2));
);
print("W doesn't converge fast enough for ",x,"( we=",we);
return(0);For y=27^27 we get the following vector vx of "stairs":
Code:
27.0000000000 3.00000000000 1.82545502292 1.49546396135
1.34791839460 1.26596744805 1.21434913533 1.17905692100
1.15349490568 1.13417277551 1.11907937973 1.10697800580
1.09706811520 1.08880952478 1.08182500080 1.07584339381
1.07066495590 1.06613938655 1.06215148458 1.05861150706
1.05544853130 1.05260578496 1.05003729703 1.04770545446
1.04557919154 1.04363262931 1.04184403978 1.04019504831
1.03867001262 1.03725553455 1.03594007272 1.03471363248
1.03356751591 1.03249411869 1.03148676386 1.03053956501
1.02964731291 1.02880538111 1.02800964680 1.02725642431
1.02654240873 1.02586462813 1.02522040273 1.02460730994
1.02402315427 1.02346594142 1.02293385576 1.02242524082
1.02193858225 1.02147249291 1.02102569984 1.02059703276
1.02018541391 1.01978984917 1.01940942003 1.01904327661
1.01869063135 1.01835075341 1.01802296368 1.01770663028
1.01740116452 1.01710601728 1.01682067577 1.01654466054
...y = 27^27 = 27 ^ 3 ^ 1.82... ^ 1.49... ^...
Gottfried Helms, Kassel

