AkimaSpline

Contributed by: Robert B. Nachbar (Wolfram Solutions)

Smooth curve interpolation based on local procedures for a multiple-valued curve (x(u), y(u))

 ResourceFunction["AkimaSpline"][{{x1,y1}, {x2, y2}, …}] represents an Akima-spline function defined by the data {xi,yi}.

Details and Options

ResourceFunction["AkimaSpline"] returns an CompiledFunction object, which can be used like any other pure function.
ResourceFunction["AkimaSpline"][][u] gives a point {x[u], y[u]} on the spline in the xy-plane corresponding to the parameter u.
The interpolation function returned by ResourceFunction["AkimaInterpolation"][data] is set up so as to agree with data at every point explicitly specified in data.
The function arguments must be real numbers.
The interpolation works by fitting a third degree polynomial curve between successive data points.
The interpolation automatically makes use of local numerical derivatives, thus ensuring a smooth as well as continuous result.
If the data are periodic, only the data for a single fundamental period are required. The option PeriodicInterpolation is used.

Examples

Basic Examples

Construct an Akima-spline curve using a list of data points:

 In[1]:=
 In[2]:=
 Out[2]=

Apply the function to find a point on the curve:

 In[3]:=
 Out[3]=

Plot the Akima-spline curve with the data points:

 In[4]:=
 Out[4]=

Scope

Ordinate values can be repeated:

 In[5]:=
 In[6]:=

Plot the Akima-spline curve with the data points:

 In[7]:=
 Out[7]=

Options

PeriodicInterpolation

 In[8]:=
 In[9]:=
 Out[9]=

Plot the Akima-spline curve with the data points:

 In[10]:=
 Out[10]=

Applications

Interpolate random data:

 In[11]:=
 Out[11]=
 In[12]:=
 Out[12]=

Sort the points into a traveling salesman tour:

 In[13]:=
 Out[13]=
 In[14]:=
 Out[14]=
 In[15]:=
 Out[15]=

Neat Examples

Interesting knot-like figures can be drawn:

 In[16]:=
 Out[18]=

A “braided” spikey:

 In[19]:=
 In[20]:=
 Out[22]=
 In[23]:=
 In[24]:=
 Out[24]=