Function Repository Resource:

Construct an interpolating polynomial approximation of a function using the Padua points

Contributed by: Jan Mangaldan
 ResourceFunction["PaduaInterpolation"][expr,{x,xmin,xmax},{y,ymin,ymax}] evaluates expr with x running from xmin to xmax and y running from ymin to ymax, and constructs a ResourceFunction["PaduaInterpolation"] object which represents an approximate bivariate function corresponding to the result. ResourceFunction["PaduaInterpolation"][…][x,y] evaluates the interpolating function with particular arguments x and y.

## Details and Options

The Padua points are a unisolvent point set that can be used to interpolate and integrate a bivariate function over a rectangular domain. ResourceFunction["PaduaInterpolation"] evaluates expr at the Padua points, and implicitly constructs an interpolating polynomial passing through them.
 InterpolationOrder 15 order of the interpolating polynomial generated "PaduaType" 1 type of Padua points to use WorkingPrecision MachinePrecision the precision used in internal computations
Possible types of Padua points are 1, 2, 3 and 4.

## Examples

### Basic Examples (3)

Construct the Padua interpolant corresponding to the function Sin[π x+Sin[π y]]:

 In[1]:=

See the value at zero:

 In[2]:=
 Out[2]=

Plot the Padua interpolant along with the original function:

 In[3]:=
 Out[3]=

### Scope (2)

See an interpolation function:

 In[4]:=
 Out[4]=

Get values for a few points:

 In[5]:=
 Out[5]=

A test function due to Franke:

 In[6]:=

Interpolate and plot over a rectangular domain:

 In[7]:=
 Out[8]=

### Options (3)

#### InterpolationOrder (1)

Construct a Padua interpolant of the Dixon–Szegö function of degree 25:

 In[9]:=
 Out[9]=

Use type 3 Padua points in interpolating the Dixon–Szegö function:

 In[10]:=
 Out[10]=

#### WorkingPrecision (1)

Use 25-digit precision in the interpolation:

 In[11]:=
 Out[11]=

### Properties and Relations (2)

If the input function is a polynomial of degree k, PaduaInterpolation reproduces the original polynomial as long as k is less than the setting for InterpolationOrder:

 In[12]:=
 Out[13]=

A test function due to Franke:

 In[14]:=

Use the resource function PaduaPoints with InterpolatingPolynomial to construct a Padua interpolant:

 In[15]:=
 Out[15]=

 In[16]:=

The interpolant constructed using InterpolatingPolynomial evaluates faster, but the interpolant generated by PaduaInterpolation gives a more accurate answer:

 In[17]:=
 Out[17]=
 In[18]:=
 Out[18]=

## Version History

• 1.1.0 – 22 April 2021