Function Repository Resource:

Tetration

Source Notebook

Compute the order-k tetration of a number

Contributed by: Siria Sadeddin

ResourceFunction["Tetration"][a,k]

computes the order-k tetration of the number a.

Details and Options

ResourceFunction["Tetration"][a,Infinity] gives a finite value if and only if a is in the convergence interval .
ResourceFunction["Tetration"][a,Infinity] diverges when .
k must be a non-negative integer or Infinity.
a must be a number different from 0.

Examples

Basic Examples (4) 

Tetration of 2 with order 3:

In[1]:=
ResourceFunction["Tetration"][2, 3]
Out[1]=

Symbolic tetration:

In[2]:=
ResourceFunction["Tetration"][a, 5]
Out[2]=

Infinite tetration of a real number:

In[3]:=
ResourceFunction["Tetration"][1.1, Infinity]
Out[3]=

Infinite tetration of :

In[4]:=
ResourceFunction["Tetration"][I, Infinity]
Out[4]=
In[5]:=
N[%]
Out[5]=

Scope (3) 

Compute infinite tetrations of real numbers inside the convergence interval:

In[6]:=
Table[ResourceFunction["Tetration"][y, Infinity], {y, (1/E)^(E), E^(1/E), 0.1}]
Out[6]=

Compute tetrations of real numbers within the divergence interval :

In[7]:=
Table[ResourceFunction["Tetration"][y, 4], {y, 0 + $MinMachineNumber, (1/E)^(E), 0.01}]
Out[7]=

Compute tetrations of real numbers within the divergence interval :

In[8]:=
Table[ResourceFunction["Tetration"][y, 4], {y, E^(1/E), 3, 0.1}]
Out[8]=

Properties and Relations (5) 

Behavior of the tetration of real numbers inside the divergence interval :

In[9]:=
GraphicsRow[
 Table[ListLinePlot[
   Table[ResourceFunction["Tetration"][x, n], {x, 0 + 0.0001, (1/E)^(E) - 0.0001, 0.0001}]], {n, {101, 200, 301, 400}}]]
Out[9]=

Behavior of infinite tetration of real numbers inside the convergence interval :

In[10]:=
GraphicsRow[
 Table[ListLinePlot[
   Table[ResourceFunction["Tetration"][x, n], {x, E^(\[Minus]E), E^(1/E), 0.01}]], {n, {2, 3, 4, 100, 1000, 10000}}]]
Out[10]=

Evolution and stabilization of the tetration curve inside the convergence interval for increasing k in a single plot:

In[11]:=
Table[Table[
   ResourceFunction["Tetration"][x, n], {x, E^(\[Minus]E), E^(1/E), 0.01}], {n, 2, 100}] // ListLinePlot
Out[11]=

Tetration convergence curve:

In[12]:=
Table[ResourceFunction["Tetration"][x, Infinity], {x, E^(\[Minus]E), E^(1/E), 0.01}] // ListLinePlot
Out[12]=

Behavior of the tetration of real numbers within the divergence interval :

In[13]:=
GraphicsRow[
 Table[ListLinePlot[
   Table[ResourceFunction["Tetration"][x, n], {x, (E)^(1/E), 4, 0.1}]], {n, {1, 2, 3}}]]
Out[13]=

The highly divergent property of tetration is easy to see from the previous plots.

Neat Examples (5) 

Real part plot of tetration order 3 for a range of complex values:

In[14]:=
xrange = Range[-4, 4, 0.1] // Select[# != 0 &];
yrange = Range[-4, 4, 0.1];
In[15]:=
ListPlot3D[
 Table[Re[ResourceFunction["Tetration"][x + I*y, 3]], {x, xrange}, {y,
    yrange}] , ColorFunction -> Function[{x, y, z}, RGBColor[x, y, 0.]], Mesh -> None]
Out[15]=

Imaginary part plot of tetration order 2:

In[16]:=
ListPlot3D[
 Table[Im[ResourceFunction["Tetration"][x + I*y, 2]], {x, xrange}, {y,
    yrange}] , ColorFunction -> Function[{x, y, z}, RGBColor[x, y, 0.]], Mesh -> None]
Out[16]=

Norm plot of tetration order 3:

In[17]:=
ListPlot3D[
 Table[Norm[ResourceFunction["Tetration"][x + I*y, 3]], {x, xrange}, {y, yrange}] , ColorFunction -> Function[{x, y, z}, RGBColor[x, y, 0.]], Mesh -> None]
Out[17]=

Imaginary part of tetration order 2 of a number ez, where z is a complex number:

In[18]:=
ListPlot3D[
 Table[Im[ResourceFunction["Tetration"][Exp[x + I*y], 2]], {x, xrange}, {y, yrange}] , ColorFunction -> Function[{x, y, z}, RGBColor[x, y, 0.]], Mesh -> None]
Out[18]=

Real part of tetration order 2 of a number ez, where z is a complex number:

In[19]:=
ListPlot3D[
 Table[Re[ResourceFunction["Tetration"][Exp[x + I*y], 2]], {x, xrange}, {y, yrange}] , ColorFunction -> Function[{x, y, z}, RGBColor[x, y, 0.]], Mesh -> None]
Out[19]=

Possible Issues (3) 

Tetration of a=0 is Indeterminate:

In[20]:=
ResourceFunction["Tetration"][0, 5]
Out[20]=

Computing tetration for large values of k within the divergence interval may cause overflow, because the tetration exceeded the maximum machine number. You can obtain the maximum k for a given a as such:

In[21]:=
MaxTetrationK[a_] := Module[{k, y},
  k = 0; (**init k**)
  y = 1;  (**init tetration**) Quiet[While[y != Overflow[],
    k = k + 1;
    y = ResourceFunction["Tetration"][N[a], k] ;
    ]];
  Return[k - 1]
  ]

Maximum tetration for a=12:

In[22]:=
n = MaxTetrationK[12]
Out[22]=

If you want to avoid long execution times, use the function N to get an approximated result:

In[23]:=
ResourceFunction["Tetration"][N[12], n]
Out[23]=

Large values of k cause an overflow:

In[24]:=
ResourceFunction["Tetration"][N[12], n + 1]
Out[24]=

Infinite tetration does not exists outside the convergence interval:

In[25]:=
ResourceFunction["Tetration"][5, Infinity]

Publisher

WolframSpecialProjects

Version History

  • 1.0.0 – 22 October 2020

Source Metadata

Related Resources

License Information