Function Repository Resource:

FabiusF

Source Notebook

Evaluate the Fabius function

Contributed by: Jan Mangaldan

ResourceFunction["FabiusF"][x]

computes the Fabius function.

Details and Options

The Fabius function is an example of a nowhere-analytic, infinitely differentiable function.
For dyadic rational arguments, ResourceFunction["FabiusF"] automatically evaluates to exact values.
ResourceFunction["FabiusF"] is only defined for real arguments.
ResourceFunction["FabiusF"] can be evaluated to arbitrary numerical precision.
ResourceFunction["FabiusF"] automatically threads over lists.

Examples

Basic Examples (1) 

Plot the Fabius function:

In[1]:=
Plot[ResourceFunction["FabiusF"][x], {x, -1, 6}]
Out[1]=

Scope (7) 

Evaluate at an integer:

In[2]:=
ResourceFunction["FabiusF"][7]
Out[2]=

Evaluate at a dyadic rational (a rational number whose denominator is a power of two):

In[3]:=
ResourceFunction["FabiusF"][3/16]
Out[3]=

FabiusF does not automatically evaluate for arguments that are not a dyadic rational number:

In[4]:=
ResourceFunction["FabiusF"][Pi]
Out[4]=

Evaluate numerically:

In[5]:=
N[ResourceFunction["FabiusF"][Pi]]
Out[5]=

Evaluate to arbitrary precision:

In[6]:=
N[ResourceFunction["FabiusF"][Pi], 20]
Out[6]=

The precision of the output tracks the precision of the input:

In[7]:=
ResourceFunction["FabiusF"][3.14159265358979323846]
Out[7]=

FabiusF threads over lists:

In[8]:=
ResourceFunction["FabiusF"][{0, 1/4, 1/2, 3/4, 1}]
Out[8]=

Properties and Relations (3) 

The Fabius function for odd integer arguments can be expressed in terms of ThueMorse:

In[9]:=
Table[ResourceFunction["FabiusF"][n] == 1 - 2 ThueMorse[Quotient[n, 2]], {n, 1, 21, 2}]
Out[9]=

Functional differential equation for the Fabius function:

In[10]:=
ResourceFunction["FabiusF"]'[x] == 2 ResourceFunction["FabiusF"][2 x]
Out[10]=

Higher derivatives of the Fabius function can be expressed in terms of the function itself:

In[11]:=
D[ResourceFunction["FabiusF"][x], {x, 7}]
Out[11]=

Possible Issues (1) 

FabiusF is undefined for complex numbers:

In[12]:=
ResourceFunction["FabiusF"][I]
Out[12]=

Neat Examples (1) 

Plot a parametric function defined in terms of FabiusF:

In[13]:=
ParametricPlot[{2 ResourceFunction["FabiusF"][t], ResourceFunction["FabiusF"]'[t]}, {t, 0, 4}]
Out[13]=

Version History

  • 2.0.0 – 16 March 2020
  • 1.0.0 – 22 November 2019

Source Metadata

Related Resources

Author Notes

This submission is based on this original implementation on Stack Exchange: https://mathematica.stackexchange.com/a/154080.
The code is partly based on original code by Vladimir Reshetnikov.

License Information