Aitken’s Graphical Construction for a Parabola

This paper presents a detailed demonstration of the exact nature of Aitken’s construction for generating points on a parabola.

It also introduces the FLINE, a function for generating points on a line, providing a direct way to encode Aitken’s construction.

It will be shown that points on a parabola generated by Aitken’s construction are identical to the points generated by a second order Lagrange polynomial.

Additional work shows how to construct tangents on the Parabola.

Please note: MathPix, GreenShot, Notepad++ proved to be extremely helpful in composing this paper.

Aitken, A. (1932). On Interpolation by Iteration of Proportional Parts, without the Use of Differences. 

Proceedings of the Edinburgh Mathematical Society, 3(1), 56-76. doi:10.1017/S0013091500013808

Introducing FLINE to evaluate points on the line defined by end points (X1, Y1) and (X2, Y2),

it is then easy to encode Aitken’s Construction

Expanding and collecting like terms:

reproduces the second order Lagrange polynomial.

A Side note:

Generating a point using Lagrange polynomial requires 3 divisions, 15 multiplications, 6 subtractions and 3 additions.

On the other hand, Aitken formulation only requires 3 divisions, 6 multiplications, 9 subtractions and 3 additions.

Extension of the Construction to Evaluate the Tangents at Defining Points of the Parabola

Using FLINE as a point of focus. Further examination of the Aitken Construction led to the realization that local tangents to the parabola could also be constructed.

The development of the construction will begin with the polynomial. Taking the first derivative of Lagrange Polynomial

and evaluating it at a particular point say (X2, Y2)


The Tangent at point (X2, Y2) can then be express in terms of FLINE

Continuing, all three tangents can then be evaluated

It should be noted that:

Showing how the tangent can be computed from the secants.

A User Controlled Demonstration of the Aitken-Lagrange Construction for Points on a Cubic.

Aitken Lagrange Cubic Construction

A few weeks ago Peter Bartholomew ( ) visited my blog. He made a very valuable suggestion – put up a demonstration for the construction of points on a cubic using the Aitken- Lagrange construction.
He sent me a sample workbook that demonstrated the point wise construction of a Bezier Cubic.
I have now re-engineered his workbook and have generated a user controlled demonstration for the Aitken-Lagrange construction of points on a cubic.
This workbook also demonstrates the technique of incorporating User Define Functions in Named Ranges. I believe that Bob Umlas ( ) was the first to discover this technique.
The User Defined Functions employed by this demonstration are:
Name Definition
X_Values =OFFSET(Aitken_Lagrange!$D1,0,0)

y_12_FLINE =(Y_P1*(X_P2-X_Values)+Y_P2*(X_Values-X_P1))/(X_P2-X_P1)
Y_23_FLINE =(Y_P2*(X_P3-X_Values)+Y_P3*(X_Values-X_P2))/(X_P3-X_P2)
Y_34_FLINE =(Y_P3*(X_P4-X_Values)+Y_P4*(X_Values-X_P3))/(X_P4-X_P3)

Y_123_FLINE =(y_12_FLINE*(X_P3-X_Values)+Y_23_FLINE*(X_Values-X_P1))/(X_P3-X_P1)
Y_234_FLINE =(Y_23_FLINE*(X_P4-X_Values)+Y_34_FLINE*(X_Values-X_P2))/(X_P4-X_P2)

Y_1234_FLINE =(Y_123_FLINE*(X_P4-X_Values)+Y_234_FLINE*(X_Values-X_P1))/(X_P4-X_P1)

Note well: The definition for the X_Values coming from Column D on Aitken_Lagrange Sheet enables the calculation of both the XStar lookup at the top of the sheet as well as the table of values at the bottom of the sheet.
The construction first evaluates Y_12_FLINE, Y_23_FLINE and Y_34_FLINE at XStar.
These results are the used to evaluate Y_123_FLINE and Y_234_FLINE at XStar.
And finally Y_1234_FLINE at XStar.

These steps can also be presented using the Functional Form for FLINE:
Function FLINE(ByRef XL As Double, _
ByRef YL As Double, _
ByRef XR As Double, _
ByRef YR As Double, _
ByRef XSTAR As Double) As Double
If Abs(XR – XL) > 0 Then
FLINE = (YL * (XR – XSTAR) + YR * (XSTAR – XL)) / (XR – XL)
FLINE = 0.5 * (YL + YR)
End If
End Function

y_12_FLINE =FLINE(X_P1,Y_P1,X_P2,Y_P2,XStar)
Y_23_FLINE =FLINE(X_P2,Y_P2,X_P3,Y_P3,XStar)
Y_34_FLINE =FLINE(X_P3,Y_P3,X_P4,Y_P4,XStar)


Y_1234_FLINE =FLINE(X_P1,Y_123_FLINE,X_P4,Y_234_FLINE,XStar)