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