C Program implementing Lagrange Interpolation Formula

In numerical analysis, Lagrange polynomials are used for polynomial interpolation. For a given set of distinct points Xi and numbers Yi, the Lagrange polynomial is the polynomial of the least degree that at each point Xj assumes the corresponding value Yj (i.e. the functions coincide at each point). The interpolating polynomial of the least degree is unique, however, and it is therefore more appropriate to speak of “the Lagrange form” of that unique polynomial rather than “the Lagrange interpolation polynomial”, since the same polynomial can be arrived at through multiple methods.

The Lagrange interpolating polynomial is the polynomial P(X) of degree <=(n – 1) that passes through the n points (x1, y1 = f(x1)),(x2, y2 = f(x2)) ,.., (xn, yn = f(xn)), , and is given by

(1)

where

(2)

Written explicitly,

(3)

The formula was first published by Waring (1779), rediscovered by Euler in 1783, and published by Lagrange in 1795 (Jeffreys and Jeffreys 1988).

Objective: To write a program in C to find the functional value of any value entered by user( using Lagrange’s Interpolation)

Algorithm for Lagrange’s Interpolation

Scan for the number of data available. (data)

Scan value for which f(x) – (datay[]) is to be calculated

loop for i=0 to number_of_data
scan datax[i], scan datay[i], next i

loop for i to number_of_data
factor[i] = 1.0
loop for j to number_of_data
if i != j
factor[i] = factor[i] * (value – datax[j])/(datax[i]-datax[j])
end if, next j, next i