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