Akima algorithm

You are given a single independent variable x. The approach uses a cubic fit between the data points, so the slope is required at each data point in addition to the value of the point itself. The interpolating polynomial is written between the ith and i + 1st data points as:

y = a0 + a1 (x − xi) + a2 (x − xi)2 + a3 (x − xi)3 , (1)

with coefficients defined by

a0 = yi

a1 = y'i

a2 = ( 3mi − 2y'i − y'i+1 ) / ( xi+1 − xi )

a3 = ( y'i + y'i+1 − 2mi ) / ( xi+1 − xi)2 ,

and,

mi = ( yi+1 − yi ) / ( xi+1 − xi ), (2)

which is the slope of the line segment passing through the points. The method of determining the derivatives, y', is what makes the Akima methods unique. The derivative is

y'i = ( Σ wkf'k ) / ( Σ wk ) (3)

where f'k is the computed derivative at Pi of a third-order polynomial passing through Pi and three other nearby points:

f'1 = F (Pi−3, Pi−2, Pi−1, Pi) (4)

f'2 = F (Pi−2, Pi−1, Pi, Pi+1) (5)

f'3 = F (Pi−1, Pi, Pi+1, Pi+2) (6)

f'4 = F (Pi, Pi+1, Pi+2, Pi+3). (7)

The weights are inversely proportional to the product of what Akima calls a volatility measure and a distance measure,

wk = 1 / vkdk. (8)

The distance factor is the sum of squares of the distance from Pi and the other three points:

d1 = (xi−3 − xi)2 + (xi−2 − xi)2 + (xi−1 − xi)2

d2 = (xi−2 − xi)2 + (xi−1 − xi)2 + (xi+1 − xi)2

d3 = (xi−1 − xi)2 + (xi+1 − xi)2 + (xi+2 − xi)2

d4 = (xi+1 − xi)2 + (xi+2 − xi)2 + (xi+3 − xi)2 .

The volatility factor, vk, is the sum of squares of deviation from a least-squares linear fit of the four points. (the same sets of four points appearing in Equations 4 through 7).

H. Akima. A method of univariate interpolation that has the accuracy of a third-degree polynomial. ACM Trans. on Math. Softw., 17, 1991. (as copied from http://acdl.mit.edu/mdo/mdo_06/Single-variable.pdf

See also: http://www.alglib.net/interpolation/spline3.php#header3

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
  • kvalobs/kvoss/system/qc2/requirements/algorithms/akima_splines.txt
  • Last modified: 2022-05-31 09:29:32
  • (external edit)