polyint#

Purpose#

Calculates an Nth order polynomial interpolation.

Format#

y = polyint(xa, ya, x)#
Parameters:
  • xa (Nx1 vector) – x values.

  • ya (Nx1 vector) – y values.

  • x (scalar) – x value to solve for.

Returns:

y (scalar) – result of interpolation or extrapolation.

Global Input#

_poldeg:

(scalar), the degree of polynomial required, default 6.

Global Output#

_polerr:

(scalar), interpolation error.

Examples#

Example 1: Extrapolate the cosine function#

// 0.1, 0.2, 0.3...0.8
x = seqa(0.2, 0.1, 8);

y = cos(x);

// Extrapolate 'y' value at x=0
y_hat = polyint(x, y, 0);

After the above code, y_hat will equal 1.0000003 which is near the actual cosine of 0 which is 1.

Example 2: Interpolate the cosine function#

// 0.2, 0.4, 0.6...1
x = seqa(0.2, 0.2, 5);

y = cos(x);

// Interpolate 'y' value at x=0.3
y_hat = polyint(x, y, 0.3);

After the above code, y_hat will equal 0.95534104 which is near the actual cosine of 0.3 which is 0.95533649.

Remarks#

Calculates an Nth order polynomial interpolation or extrapolation of x on y given the vectors xa and ya and the scalar x. The procedure uses Neville’s algorithm to determine an up to Nth order polynomial and an error estimate.

Polynomials above degree 6 are not likely to increase the accuracy for most data. Test _polerr to determine the required _poldeg for your problem.

Technical Notes#

Press, W.P., B.P. Flannery, S.A. Teukolsky, and W.T. Vettering. Numerical Recipes: The Art of Scientific Computing. NY: Cambridge Press, 1986.

Source#

polyint.src