function [Lnk] = LagrangePolynomial(x_data, k, x) %LagrangePolynomial evaluates a single Lagrange polynomial % % Input % - x_data: One-dimensional list of x-coordinates of poins through % which the interpolating polynomial will pass. The degree of the % interpolating polynomial, n, will be inferred from the number % entries in x_data % - k: The interpolating polynomial will equal one at x_data(k + 1) % and be zero for other entries in x_data. 0 <= k <= n % - x: One-dimensional list of values for which the Lagrange % polynomial will be evaluted % Output % - Lnk: Value of the Lagrange polynomial of degree n, index k, at x n = length(x_data) - 1; %Make x a row vector. As noted above, it is assumed to be a single row or %column x = x(:)'; Lnk = 1; for(m = 0:n) if(m ~= k) Lnk = Lnk.*(x - x_data(m + 1))/(x_data(k + 1) - x_data(m +1)); end end end